故障排除echo语句中的“解析错误:语法错误,意外的T_STRING”

时间:2012-06-09 23:24:59

标签: php echo

我回到php后5年了,我需要帮助以下请:)它一直告诉我错误:解析错误:语法错误,意外T_STRING,期待','或';'在header.php中(在第一个echo调用中)

<?php
$result = mysql_query("SELECT * FROM menu WHERE disabled=0 ORDER BY orderx ASC") or die(mysql_error());
$i=1;
while($row = mysql_fetch_array($result)) {

    echo "<li class='sddm'.$i.' '.$row[extra].'"><a href="'.link_text($row[link]).'" onmouseover=\"mopen('m2')\" onmouseout=\"mclosetime()\">'.link_text($row[link]).'</a>";
    echo "<div id='m2' onmouseover='mcancelclosetime()' onmouseout='mclosetime()'>";
    echo "<a href='#'>ASP Dropdown</a>";
    echo "<a href='#'>Pulldown menu</a>";
    echo "<a href='#'>AJAX dropdown</a>";
    echo "<a href='#'>DIV dropdown</a>";
    echo "</div>";
    echo "</li>";

    <!--echo '<li class="sddm'.$i.' '.$row[extra].'"><a href="'.link_text($row[link]).'">'.$row[title.langfix()].'</a>';-->
    echo'</li>';
    $i++;

}
?>

4 个答案:

答案 0 :(得分:4)

你的报价完全没有了:

echo "<li class='sddm'.$i.' '.$row[extra].'"><a href="'.link_text($row[link]).'"

应该是

echo '<li class="sddm"'.$i.' '.$row[extra].'"><a href="'.link_text($row[link]).'"

如果您希望在HTML中使用单引号,则可以相应地更换引号,但这应该会显示您的错误所在。

答案 1 :(得分:2)

echo '<li class="sddm'.$i.' '.$row[extra].'"><a href="'.link_text($row["link"]).'" onmouseover="mopen(\'m2\')" onmouseout="mclosetime()">'.link_text($row["link"]).'</a>';
echo '<div id=\'m2\' onmouseover=\'mcancelclosetime()\' onmouseout=\'mclosetime()\'>';
echo '<a href=\'#\'>ASP Dropdown</a>';
echo "<a href='#'>Pulldown menu</a>";
echo "<a href='#'>AJAX dropdown</a>";
echo "<a href='#'>DIV dropdown</a>";
echo "</div>";
echo "</li>";

echo '<li class="sddm'.$i.' '.$row["extra"].'"><a href="'.link_text($row[link]).'">'.$row["title"].langfix().'</a>';
echo'</li>';
$i++;

答案 2 :(得分:0)

如果要管理复杂的引号,请考虑使用printf()

printf(
  '<li class="sddm%d" %s><a href="%s" onmouseover="mopen(\'m2\')" onmouseout="mclosetime();">'
    , $i
    , htmlentities($row['extra'])
    , htmlentities(link_text($row['link']))
);

答案 3 :(得分:0)

echo <<<END换行内容换行符END;效果很好,并且会解析变量并忽略引号,直到END;