在php语法中使用’和’

using ' and " in php syntax

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to get useful error messages in PHP?

香港专业教育学院开始我的新年决议的一部分,并决定学习PHP,作为它的一部分,我试图解析一个xml提要,并回显包含在标签中的事件的名称,将它们链接回事件页面 xml feed的网站。

我想我已经完成了所有这一切,但我似乎无法理解为什么这不起作用我只是得到一个空白页,如果有人可以指出我正确的方向,将非常感激,欢呼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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"".$type_attrib['name'].""; //Title - in this case f1 championship
} ?>



<ul>

  <?php
      foreach($type->market as $event) {
          echo"
<li>
"
;
          echo"";
          echo $event_attributes['name'];
          echo"";
          echo"
</li>
"
;
      }
  ?>

</ul>


1
echo"";

尝试将该行更改为

1
echo"";

Php解析器对此非常有趣。通常你选择一个并坚持下去,或者根据需要使用单引号和双引号。请记住,使用双引号的字符串会针对变量进行解析。

1
2
$hello ="Hello";
echo"$hello master";

是相同的

1
2
$hello ="Hello";
echo $hello.' master';


如果你不想在使用'"之间切换,我建议使用php替代语法php替代语法

使用给定的代码看起来像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?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"".$type_attrib['name'].""; //Title - in this case f1 championship
} ?>


<ul>

    <?php foreach($type->market as $event):?>
       
<li>

           ">
                <?php echo $event_attributes['name']; ?>
           
       
</li>

    <? endforeach;?>

</ul>

这将带来一个优势,它会产生更清晰的代码,因为你可以清楚地从你的html中解析你的php代码,这是代表所有其他的价格的表现部分,以及其他人声称的表现降解。这是你的选择


在你的无序列表中,你应该使用一个点来连接你的字符串,并转义你的双引号,如下所示:

1
echo"";

代替

1
echo"";

您的示例抛出并错误,因为您没有使用正确的字符串连接。但是,即使使用正确的concat,它也会呈现为,并且您需要根据html标准添加双引号。因此你必须加倍报价。


当您测试PHP脚本时,您会发现切换错误很有用 - 然后PHP会实际告诉您它为什么没有向您显示任何内容:

通常,您将错过;或错误输入的变量名称。

在你的情况下,错误在这里:

1
echo"";

你不小心用双引号结束了字符串,所以PHP认为字符串在这里结束:

1
echo"<a href="

这是使用单引号可以非常方便的地方,因为你的双引号不会关闭字符串。

1
echo '';

PHP中单引号和双引号之间的主要区别在于双引号具有特殊的巧妙解析规则而单引号则没有。例如:

1
2
3
$myVar ="BLAH";
echo"Example $myVar"; // Example BLAH
echo 'Example $myVar'; // Example $myVar

您错过了第二个echo中的句点,其中包含$event_attributes['url']

1
2
3
4
5
6
7
8
9
10
11
12
<?php
  foreach($type->market as $event) {
      echo"
<li>
"
;
      echo"";
      echo $event_attributes['name'];
      echo"";
      echo"
</li>
"
;
  }

?>

我建议您启用错误日志,它可以让您知道任何脚本中存在问题的行。


更改

1
echo"";

对于

1
echo"";