2011-05-25 111 views
0

這裏是我的代碼:PHP有問題包括JavaScript和報價?

$buffer .= '<legend>'.$thisField.'</legend><input type="text" name="'.$thisField.'" id="'.$thisField.'"/> <a href="javascript:;" onClick="mcImageManager.browse({fields : 'url_abs'});">[Pick file]</a><br /><small>360px W x 240px H</small><br /><br />'; 

這是打破語法錯誤,意想不到的T_STRING

我已經嘗試每一種類型的單引號的組合,雙引號和逃避的?

我不知所措,我在想什麼?

謝謝!

回答

2

在這種情況下,它的最好求助於HEREDOC串,也爲可讀性:

$buffer .= <<<END 
    <legend>$thisField</legend> 
    <input type="text" name="$thisField" id="$thisField"/> 
    <a href="javascript:;" onClick="mcImageManager.browse({fields : 'url_abs'});">[Pick file]</a> 
    <br /><small>360px W x 240px H</small><br /><br /> 
END; 

這可避免必須轉義任何引號。你可以直接在這個塊內寫入$變量。

+0

說實話,我認爲這是接近使用真正模板的建議,但HEREDOC仍然是一個很好的建議。 – lonesomeday 2011-05-25 21:39:12

3

只是逃避你的引號用反斜槓裏面的字符串:

$buffer .= '<legend>'.$thisField.'</legend><input type="text" name="'.$thisField.'" id="'.$thisField.'"/> <a href="javascript:;" onClick="mcImageManager.browse({fields : \'url_abs\'});">[Pick file]</a><br /><small>360px W x 240px H</small><br /><br />'; 

the PHP manual

要指定一個單引號,用反斜槓(\)進行轉義。

0

問題是圍繞url_abs的單引號。

1

正如熒光筆告訴你的,php會在{fields : 'url_abs'}附近失敗。你是一個單引號字符內,所以你必須逃脫字符串中的單引號: {fields : \'url_abs\'}