引号错误导致页面错误

时间:2011-01-22 13:06:42

标签: php javascript html

我真的希望有人可以帮助我。我一直用这个撞在墙上:(。

我有以下代码让我疯狂

在我的PHP文件中,我输入了以下代码以显示一系列A-Z链接:

<div>
 <ul id="AZList">
     <li><a id="LetterLink1" href="javascript:showonlyone('LetterList1');">#</a></li>
  <?php 



   $lettercounter=1;
   for ($i=65; $i<=90; $i++){

      $lettercounter=$lettercounter+1;
      $LetterLinkLbL="ListLetter".$lettercounter;
?>

          <li><a id="LetterLink<?php echo $lettercounter ?>" href="javascript:showonlyone('<?php echo $LetterLinkLbL ?>');"><?php echo chr($i) ?></a></li>         



  <?php } ?>
    </ul>

</div>

但是当我查看源文件时,它显示为

  <li><a id="LetterLink1"  href="javascript:showonlyone("LetterList1');">#</a></li>

      <li><a id="LetterLink2"  href="javascript:showonlyone("ListLetter2');">A</a></li>         




      <li><a id="LetterLink3"  href="javascript:showonlyone("ListLetter3');">B</a></li>

这导致页面出错

第一个应该是:

 <li><a id="LetterLink1"  href="javascript:showonlyone('LetterList1');">#</a></li>

有谁知道如何才能正确显示报价?


我刚刚将笔记本电脑上的文件上传到远程服务器,它正常运行,我没有对文件进行任何更改。

我确实通过在页面上写一个echo语句来确认我正在查看同一个文件。

为什么会在我的本地主机上显示这样的内容?有没有人知道他的问题是什么?

顺便说一下,谢谢你的所有评论

2 个答案:

答案 0 :(得分:1)

您的代码中的内容与输出应该给您的内容之间存在差异:

您的代码:

href="javascript:showonlyone('<?php echo $LetterLinkLbL ?>');"

必然会呈现:

href="javascript:showonlyone('ListLetter3');"

但你说它呈现(在开头有一个双引号,在结尾有一个):

href="javascript:showonlyone("ListLetter3');"

您提供的PHP代码不应该创建错误,因为它是正确的。 你确定你没有给我们另一个试验的输出吗?

使用相同的引号在PHP / javascript字符串中插入引号的规则只是在它之前添加\:

$Value = "Hello Johnny \"PHP\" Boy !!";

$Value = 'Hello Johnny \'PHP\' boy !';

答案 1 :(得分:0)

为什么不查看像htmlspecialentities()这样的函数,它们会转义并转换这些不明确的字符。如果需要,还可以通过在单引号中应用前面的反斜杠()来检查文本编辑器的字符集编码和转义引号。

如果您要转义引号,这也适用于PHP:

href="javascript:showonlyone(\"<?php echo $LetterLinkLbL ?>\");">

顺便说一下:<?php echo ... ?>可以用简写的方式编写,简化为<?= ... ?>,甚至没有结尾的分号(;)