PHP语法错误

时间:2009-06-02 13:24:57

标签: php

我想弄清楚为什么我会收到此错误

"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新手只是试图自己理解它,但我的头脑正在转向。非常感谢帮助...

7 个答案:

答案 0 :(得分:4)

这是你的问题:

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>';

答案 1 :(得分:1)

你在该行上有一个未终止的字符串。你应该用这样的斜杠来逃避你的报价\“

echo“&lt; div style = ** \”** float:left; .....“;

答案 2 :(得分:1)

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

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 . '">';

答案 3 :(得分:0)

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

这有助于调试这种线路。

查看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>';

答案 4 :(得分:0)

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

echo ' title .';

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

答案 5 :(得分:0)

你从SilentGhost得到了答案。

我会使用HEREDOC来做这些事情。

答案 6 :(得分:0)

您应该对这些属性值使用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>
';