可能重复: 如何在PHP中获取有用的错误消息?
我从新年决议的一部分开始,并决定学习php,作为其中的一部分,我尝试在xml中解析事件,并回显封装在<a>标记中的事件名称,将它们链接回xml站点上的events页面。
我想我已经把一切都写好了,但我似乎不明白为什么这不管用,我只是得到了一页空白,如果有人能指出正确的方向,我会非常感激的,干杯
<?php
// F1 W/H xml feed
$xml = simplexml_load_file('http://whdn.williamhill.com/pricefeed/openbet_cdn?action=template&template=getHierarchyByMarketType&classId=5&marketSort=HH&filterBIR=N');
foreach ($xml->response->williamhill->class->type as $type) {
$type_attrib = $type->attributes();
echo "<h2>".$type_attrib['name']."</h2>"; //Title - in this case f1 championship
} ?>
<ul>
<?php
foreach($type->market as $event) {
echo "<li>";
echo "<a href="$event_attributes['url']">";
echo $event_attributes['name'];
echo "</a>";
echo "</li>";
}
?>
</ul>发布于 2013-01-22 22:11:28
echo "<a href="$event_attributes['url']">";试着把那一行改为
echo "<a href=\"".$event_attributes['url']."\">";Php解析器在这方面非常有趣。通常你选择一个,坚持它,或同时使用单引号和双引号,你喜欢。请记住,带有双引号的字符串被解析为变量。
$hello = "Hello";
echo "$hello master";是相同的
$hello ="Hello";
echo $hello.' master';发布于 2013-01-22 22:14:21
在测试PHP脚本时,您会发现打开错误是很有用的--然后PHP实际上会告诉您为什么它没有显示任何内容:
error_reporting(E_ALL);通常,您会错过一个;或错误输入一个变量名。
在您的例子中,错误出现在这里:
echo "<a href="$event_attributes['url']">";您不小心用双引号结束了字符串,因此PHP认为字符串在这里结束:
echo "<a href="这是使用单引号非常方便的地方,因为双引号之后不会关闭字符串。
echo '<a href="' . $event_attributes['url'] . '">';PHP中单引号和双引号的主要区别在于双引号有特殊的聪明的解析规则,而单引号没有。
$myVar = "BLAH";
echo "Example $myVar"; // Example BLAH
echo 'Example $myVar'; // Example $myVar发布于 2013-01-22 22:14:28
在无序列表中,应该使用点连接字符串,并转义双引号,如下所示:
echo "<a href=\"".$event_attributes['url']."\">";而不是
echo "<a href="$event_attributes['url']">";您的示例抛出并出错,因为您没有使用正确的字符串连接。但是,即使有正确的连接,它也将呈现为<a href=http://someurl>,并且您需要按照html标准添加双引号。因此,你必须双引号。
https://stackoverflow.com/questions/14468944
复制相似问题