2013-10-22 46 views
-1

我有在concating的PHP變量的一個問題,下面有如何連接單和雙引號

$attributes .= ' href="javascript:bookmarkscroll.scrollTo('.$varpost->post_name.')"'; 

一看我要像

javascript:bookmarkscroll.scrollTo('about-us'); 

感謝所有輸出。

+0

可以躲過varpost- $> POST_NAME;像(\''.blah。'\')。搜索谷歌關於如何轉義字符串在PHP – xlordt

+0

你不應該使用侵入性的JS。 – moonwave99

回答

2

就逃不出你的報價JS的功能裏面,

$attributes .= ' href="javascript:bookmarkscroll.scrollTo(\''.$varpost->post_name.'\')"'; 
+0

如果'$ varpost-> post_name'是:'「Mc'Donald」'?你必須逃避一切。 – Halcyon

+0

用'addslashes($ varpost-> post_name)替換'$ varpost-> post_name'' – Latheesan

+0

如果他知道自己在做什麼,他們應該首先逃脫。 –

0

使用json_encode。請記住,JSON編碼只能轉義"(而不是'),因此請確保您的輸出HTML僅使用'

$js = 'javascript:bookmarkscroll.scrollTo("' . $varpost->post_name . '");'; 
$attributes .= ' href="' . json_encode($js) . '"'; 

理想情況下,你會使用一個更可靠的方式來生成JavaScript的可變部分。在這種情況下,您仍然會使用json_encode

0

在這裏你去:

$attributes .= ' href="javascript:bookmarkscroll.scrollTo(\''. $varpost->post_name .'\')"'; 
+0

如果'$ varpost-> post_name'是:'「Mc'Donald」'?你必須逃避一切。 – Halcyon

+0

用'addslashes($ varpost-> post_name)替換'$ varpost-> post_name'' – Latheesan