【问题标题】:PHP Syntax ErrorPHP 语法错误
【发布时间】:2009-06-02 13:24:56
【问题描述】:

我正在尝试找出为什么会出现此错误

"Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/idgcca/public_html/web-design-samples-testing.php on line 64"


echo ' 
<div style="float:left; width: 180px; margin: 20px 0px 10px 0px;"><a rel="lightbox[web]" title="'. $post->title .'" onmousedown="this.title='<a target=\'_blank/\' href=\'http:www.google.ca/\'>Google</a>';" onmouseout="this.title='';" href="'. $post->url . '">

<img src="' . $post->thumb . '" border="0"/></a> <div class="design-sample-txt">'. $post->author.'</div></div>

';

我是一个 PHP 新手,只是想自己理解它,但我的头在转动。非常感谢您的帮助...

【问题讨论】:

    标签: php


    【解决方案1】:

    这是你的问题:

    this.title='<
    

    你应该避开这句话。以及结束 a 标记处的那个。像这样:

    echo '<div style="float:left; width: 180px; margin: 20px 0px 10px 0px;">
        <a rel="lightbox[web]" title="'. $post->title .'"
           onmousedown="this.title=\'<a target=\'_blank/\' href=\'http:www.google.ca/\'>Google</a>\';"
           onmouseout="this.title=\'\';" href="'. $post->url . '">    
        <img src="' . $post->thumb . '" border="0"/></a>
        <div class="design-sample-txt">'. $post->author.'</div>
    </div>';
    

    【讨论】:

    • 好的..我很困惑...你能复制并粘贴确切的代码吗?
    【解决方案2】:

    您在该行上有一个未终止的字符串。你应该用这样的斜杠转义你的引号 \"

    echo "

    【讨论】:

      【解决方案3】:

      您需要在单引号字符串中转义单引号。

      echo '<div style="float:left; width: 180px; margin: 20px 0px 10px 0px;"><a rel="lightbox[web]" title="'. $post->title .'" onmousedown="this.title=\'<a target=\'_blank/\' href=\'http:www.google.ca/\'>Google</a>\';" onmouseout="this.title=\'\';" href="'. $post->url . '">';
      

      【讨论】:

        【解决方案4】:

        为了便于阅读,我建议您将代码分成多行。

        这将有助于调试这种线。

        查看echo operator 示例

        为了回答您的问题,您的代码中有一些引号被误用。你需要逃离他们。

            echo '<div style="float:left; width: 180px; margin: 20px 0px 10px 0px;">
        <a rel="lightbox[web]" title="'. $post->title .'" onmousedown="this.title=\'<a 
        target=\'_blank/\' href=\'http:www.google.ca/\'>Google</a>\';" 
        onmouseout="this.title=\'\';" href="'. $post->url . '"><img src="' . $post->thumb . '" 
        border="0"/></a> <div class="design-sample-txt">'. $post->author.'</div></div>';
        

        【讨论】:

          【解决方案5】:

          假设您准确粘贴了代码,first 错误就在开头,当您结束第一个引号时。它希望阅读:

          echo ' title .';
          

          相邻的两个引号没有任何意义。

          【讨论】:

            【解决方案6】:

            您从 SilentGhost 得到了答案。

            我会使用HEREDOC 来处理这些事情。

            【讨论】:

              【解决方案7】:

              您应该在这些属性值上使用htmlspecialchars

              function html($str, $charset=null) {
                  if (!is_null($charset)) {
                      return htmlspecialchars($str, ENT_QUOTES, $charset);
                  } else {
                      return htmlspecialchars($str, ENT_QUOTES);
                  }
              }
              
              echo '
                  <div style="float:left; width: 180px; margin: 20px 0px 10px 0px;">
                      <a rel="lightbox[web]"
                         title="' . html($post->title) . '"
                         onmousedown="' . html('this.title=\'<a target="_blank" href="http://www.google.ca/">Google</a>\'') . '"
                         onmouseout="' . html('this.title=""') . '"
                         href="' . html($post->url) . '">
                          <img src="' . html($post->thumb) . '" border="0"/></a>
                      <div class="design-sample-txt">' . html($post->author) . '</div>
                  </div>
              ';
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-03-13
                • 2018-12-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多