PHP:根据加载的页面更改div中的图像?

PHP:根据加载的页面更改div中的图像?,php,Php,我对这些问题的措辞很糟糕,但我希望这能给我一个足够好的想法,让我知道我在努力做什么 我有7页和7幅图片,图片都是“瀑布01.jpg”,“瀑布02.jpg”等,最多7幅 到目前为止,我的代码很简单: <?php $cp = basename($_SERVER['PHP_SELF']); $cf = dirname($_SERVER['PHP_SELF']); ?> <img src="/img/waterfall_0<

我对这些问题的措辞很糟糕,但我希望这能给我一个足够好的想法,让我知道我在努力做什么

我有7页和7幅图片,图片都是“瀑布01.jpg”,“瀑布02.jpg”等,最多7幅

到目前为止,我的代码很简单:

    <?php 
        $cp = basename($_SERVER['PHP_SELF']);
        $cf = dirname($_SERVER['PHP_SELF']);
    ?>
    <img src="/img/waterfall_0<?php if ($cp == "about.php" || $cf == "/about"){ echo "1"; }?>.jpg" />

.jpg“/>
如何更改此代码以根据7个不同的页面(其中一些页面的文件夹下有下拉菜单中显示的文件夹)在1和7之间回显不同的数字

从技术上讲,我可以写一行很长的字:

    <img src="/img/waterfall_0<?php
        if ($cp == "home.php"){ echo "1"; }
        if ($cp == "about.php" || $cf == "/about"){ echo "2"; }
        if ($cp == "products.php" || $cf == "/products"){ echo "3"; }
        if ($cp == "services.php" || $cf == "/services"){ echo "4"; }
        if ($cp == "gallery.php" || $cf == "/gallery"){ echo "5"; }
        if ($cp == "faq.php"){ echo "6"; }
        if ($cp == "contact.php"){ echo "7"; }
    ?>.jpg" />
.jpg/>
我对PHP还不是很在行,我不确定上面的方法是否是最好或正确的方法,因此非常感谢所有的帮助

测试服务器是

提前谢谢


<?php

$requestedURI = $_SERVER['REQUEST_URI'];

$images = array(
    "/home" => "1",
    "/about" => "2",
    "/products" => "3",
    "/services" => "4",
    "/gallery" => "5",
    "/faq" => "6",
    "/contact" => "7",
);

?>

<img src="/img/waterfall_0<?= $images[$requestedURI]; ?>.jpg"/>
.jpg“/>

只需确保URL与数组键匹配。

否则需要使用

<?php
$cp = basename($_SERVER['PHP_SELF']);
$cf = dirname($_SERVER['PHP_SELF']);

if($cp == "home.php")
{
    $img_src = "1.jpg";
}
else if($cp == "about.php" || $cf == "/about"))
{
    $img_src = "2.jpg";
}
else if($cp == "products.php" || $cf == "/products")
{
    $img_src = "3.jpg";
}
else if($cp == "services.php" || $cf == "/services")
{
    $img_src = "4.jpg";
}
else if($cp == "gallery.php" || $cf == "/gallery")
{
    $img_src = "5.jpg";
}
else if($cp == "faq.php")
{
    $img_src = "6.jpg";
}
else if($cp == "contact.php")
{
    $img_src = "7.jpg";
}
?>
<img src="/img/waterfall_0<?php echo $img_src;?>" />

贾斯汀·沃克曼(Justin Workman)和萨蒂什·夏尔玛(Satish Sharma)的两个答案都是可行的解决方案。但为什么不在另一个选择中通过。切换语句

$url = $_SERVER['REQUEST_URI'];
switch ($url) {
    case '/about':
    case '/about.php':
        $img = 2;
        break;
    case '/contact':
    case '/contact.php':
        $img = 3;
        break;
    ......
    default:
        $img = '1';
}

然后将变量输出到你的IMG标签。< /p>它根本不起作用吗?你想做什么工作,你可能会考虑在有一个意想不到的引用页面时有一个<代码> Eclipse > /Cuth>语句。一个<代码>开关语句可能更优雅,但实际上不会做任何事情。different@TBI老实说,我没有测试到目前为止,我在写问题的时候想到了最后一部分,它工作得很好……网站的加载速度也是现在的3倍,而不是将html和img标记放在每个页面中。我觉得这对很多人都很有用。@anthonygore请告诉我更多!我真的不太知道如何编写PHP,这几乎是一种混合我在前一段时间得到了一些帮助。如果一个意外的引用页面链接到此链接,它将导致索引越界错误。您需要首先检查数组键是否存在。最好使用if/else或开关来避免处理这些问题。它们似乎只检查文件夹,而不是所有内容都在指定的文件夹中,即我的主7页中案例位于根文件夹中,随后的页面位于命名文件夹下。回答很好,谢谢你的时间=)你在PHP中包含.jpg有什么特别的原因吗?谢谢你的回答!我还假设我们不需要About行后面的第二个括号,hahamay可能是.png或.gif中的一些图像,或者是一些ot中的图像这是一个有效的选择,应该得到+1。这非常有趣!我以前从未见过这样的事情,我也不太明白这一点haha@mattroberts33这就像if/else语句一样,在运行之前,case必须等于true设置的值是break。基本上情况是“”:和break;是括号{}对于if语句。只允许对项目进行分组。我在编码中交替使用开关和if/else语句。@JamesWilliams我想我对if/else语句更满意,因为我习惯了JS。这确实很有趣,但与其他语句相比,使用它是否更好??@matthere不是更好的方法。你可以搜索性能更好的,你会看到双向的结果。最终它们大致相同。JS也有switch语句,结构也一样。