【问题标题】:PHP Syntax Error? - Create a MultiDimentional Array, Use a foreach loop - output HTMLPHP 语法错误? - 创建一个多维数组,使用 foreach 循环 - 输出 HTML
【发布时间】:2011-11-21 21:53:02
【问题描述】:

已回答的问题:

在搞砸了一些事情之后,我的最后一个数组元素的逗号组合以及没有正确输入图像源路径是问题所在。

一切都很好。我总是惊讶于一个简单的语法错误如何使一切变得混乱。

谢谢乔纳森和 tmsimont!你的答案组合解决了我的问题。

是时候获得一个好的 PHP 调试器了,可能是 Netbeans,因为 Dreamweaver 不适合我,而且我还不够精通编写代码!

编辑:

我将尝试通过显示我的输出源让自己更清楚一点:

<body>
<div id="main">
<div class="container">
<div class="sponsorInner">
<a href="'.$company[1].'">
<img src="img/sponsors/'.$company[0].'.png">
</a>
</div>
</div>
'; } ?&gt;
</div>
</body>

3 件事不起作用:我需要第一个带有 gold 类的 div 来渲染,并且需要数组中的 $'s 来填充图像链接和路径。

原始问题: 我正在尝试使用多维数组和 foreach 循环在页面上创建多个 div 排列,以使用在相对路径文件夹中以助记方式命名的图像填充 div 内容,并将图像作为超链接。

我的输出没有正确显示第一个,也没有填充数组 $'s。

这对我来说似乎是正确的,我是否缺少某种类型的转义或语法?

    <body>

    <?php   

        $sponsor = array(
            array('Allstate','http://www.allstateagencies.com/'),
            array('Arrowhead','http://www.arrowheadwater.com/'),
        );
    ?>  

<div id="main">

    <div class="container">     

        <?php           

            foreach($sponsor as $company)
            {
                echo '
                    <div class="gold">
                        <div class="sponsorInner">
                            <a href="'.$company[1].'"><img src="img/sponsors/'.$company[0].'.png"/></a>
                        </div>
                    </div>
                ';
            }
        ?>


    </div><!--.container-->

</div><!--#main-->

</body>

【问题讨论】:

  • 然后会发生什么?你得到什么错误?
  • 努力描述你的实际问题。
  • 我尝试通过显示我的输出源代码让我的问题更容易理解。我认真地认为这将首先尝试,似乎我没有转义引号。或者也许我需要在 HTML 之间插入和退出 PHP?
  • 您使用什么服务器来解析/测试 PHP?我从您的问题中复制/粘贴了代码,对我来说运行良好。

标签: php syntax multidimensional-array foreach


【解决方案1】:

一个总的猜测..因为这就是我能用你表达你的问题的方式做的所有......但如果你的问题是图像输出,请尝试在图像的 src 属性开头放置一个“/” :

  <a href="'.$company[1].'"><img src="/img/sponsors/'.$company[0].'.png"/></a>

这样,浏览器会从网站的底部而不是从您所在的任何子目录中查找 img 目录。

【讨论】:

  • 谢谢,我试图通过显示我的输出源代码让我的问题更容易理解。我尝试过使用相对路径和绝对路径、根文件夹等。我的输出仍然有问题。
  • 再次感谢,解决路径名问题,我修复了一个错误,它有帮助!
【解决方案2】:

为什么不这样做你的数组

$sponsor = array(
  'Allstate' => 'http://www.allstateagencies.com/',
  'Arrowhead' => 'http://www.arrowheadwater.com/'
);

以后

<?php
foreach($sponsor as $company_name => $company_site)
{
?>
  <div class="gold">
    <div class="sponsorInner">
      <a href="<?php echo $company_site ?>"><img src="img/sponsors/<?php echo $company_name ?>.png"/></a>
    </div>
  </div>
<?php
}
?>

编辑

请记住,您的文件名区分大小写。所以.png 在他们的名字中需要大写字母。如果需要小写字母,可以在 $company_name 周围添加 strtolower()

【讨论】:

  • 我确实为 png 文件命名,如果我最终处理大量图像,我会使用它。干杯!
  • 你的建议给了我一些关于未来的想法。感谢您的回复!
【解决方案3】:

你在这一行的末尾有一个你不需要的逗号:

array('Arrowhead','http://www.arrowheadwater.com/'),

发帖前请尝试做基本调试。

【讨论】:

  • 即使不需要它也不会破坏代码。
  • 很棒的提示,我见过两种方式编写的数组,我不知道哪个是“标准”。我是 HTML 高手,但对 PHP 很陌生。再次感谢。
  • 不,不幸的是这仍然是我的输出源:(请参阅上面原始问题中的源代码)
  • 是的,是的,这就是问题所在。我会研究一个好的调试程序。网豆可能。我试图在 Notepad++ 中提交代码并在 Dreamweaver 中检查语法。没有错误=我把头发拉出来,因为基本调试可能会发现。你是英雄!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 2011-08-30
相关资源
最近更新 更多