2012-02-13 67 views
0

爲了正確執行javascript命令,我需要在PHP中執行三重嵌入引號,並且想知道是否有任何方法可以執行此操作。 例如,我試圖三重嵌入的事情是在PHP中嵌入行情

echo ("<tr id='regular' onMouseOver='highlight($emp,$job,$cust,$lat,$lng)' onMouseOut='unhighlight()'> 
        <td>$emp</td> 
        <td>$job</td> 
        <td>$cust</td> 
        <td>$lat</td> 
        <td>$lng</td> 
        </tr>\n"); 

的事情是,我需要把「$ EMP」,「$工作」和「$卡斯特」,但每當我把那些在第一個<td>之後的onMouseOver結束。

+0

曾聽說HEREDOC字符串? – mario 2012-02-13 20:57:59

+0

哇真的很快答案,所有這些都非常好,謝謝 – riqitang 2012-02-13 21:00:06

回答

1

你真的不能嵌套單引號內的單引號的方式。最簡單的解決方案是使用轉義雙引號。

echo ("<tr id='regular' onMouseOver='highlight(\"$emp\",\"$job\",\"$cust\",\"$lat\",\"$lng\")' onMouseOut='unhighlight()'> 
        <td>$emp</td> 
        <td>$job</td> 
        <td>$cust</td> 
        <td>$lat</td> 
        <td>$lng</td> 
        </tr>\n"); 
1

我不知道我理解你的問題,但我給它一個鏡頭:

  • 要嵌入在字符串中引號(帶引號),你需要逃避他們,所以,你可以這樣做:

    $string = "This is a string, and those: \"are quotes\""; 
    
  • 要嵌入一個字符串變量裏面沒有怪癖,請嘗試使用大括號{}

    $string = "onMouseOver='highlight({$emp},{$job},{$cust},{$lat},{$lng})'"; 
    
1

嘗試是這樣的:

echo ('<tr id="regular" onMouseOver="highlight(\'$emp\', \'$job\', \'$cust\', \'$lat\', \'$lng\');" onMouseOut="unhighlight();">'); 
    echo ("<td>$emp</td>"); 
    echo ("<td>$job</td>"); 
    echo ("<td>$cust</td>"); 
    echo ("<td>$lat</td>"); 
    echo ("<td>$lng</td>"); 
echo ("</tr>\n"); 

\字符從影響字符串逃脫'

1

你需要逃避'角色。

echo ("<tr id='regular' onMouseOver='highlight(\'$emp\',\'$job\',\'$cust\',\'$lat\',\'$lng\')' onMouseOut='unhighlight()'> 
        <td>$emp</td> 
        <td>$job</td> 
        <td>$cust</td> 
        <td>$lat</td> 
        <td>$lng</td> 
        </tr>\n"); 
2

HEREDOCS

echo <<<HTML 
<tr id="regular" onMouseOver="highlight('$emp','$job','$cust','$lat','$lng')" onMouseOut="unhighlight()"> 
    <td>$emp</td> 
    <td>$job</td> 
    <td>$cust</td> 
    <td>$lat</td> 
    <td>$lng</td> 
</tr> 
HTML;