2012-05-23 41 views
2

當我將保存的YouTube嵌入iframe到我的數據庫中時,它會添加一堆斜線。如下所示。如何在數據庫中存儲YouTube內嵌鏈接

<iframe width=\"560\" height=\"315\" src=\"http://www.youtube.com/embed/ycHXRWRKrdA?rel=0\" frameborder=\"0\" allowfullscreen></iframe> 

它被存儲在長文本類型中。什麼時候我記得從數據庫或防止斜線將消除斜線被存儲在第一時間

+0

你用什麼技術?您必須啓用一個安全選項,才能將這些字符串保存到數據庫中之前自動轉義字符串(實際上這並不錯)。一種選擇是使用正則表達式去除反斜線(例如'.replaceAll(「\\\\」,「」)')。 – sp00m

+1

與這個問題無關,但你爲什麼要以這樣一個討厭的方式存儲?你爲什麼不存儲視頻ID?! –

+0

我認爲這種情況正在發生,因爲你使用PHP的舊版本比5.3,並在那裏的配置標誌['magic_quotes_gpc'](http://www.php.net/manual/en/info.configuration.php#ini .magic引號-GPC)設置爲TRUE;,這使得PHP做自動報價轉義所有GET,POST和cookie的值。 – s1lence

回答

1

如果您使用PHP,你可以用stripslashes()。

或者,你可以base64編碼/解碼代碼。

+0

帶斜槓功能工作就像一個魅力。謝謝! – Mike

1

一勞永逸在你的.htaccess補充一點:

# disable the automatic-quote-removing from requests 
php_value magic_quotes_gpc off 

如果保存YouTube網址的JSON數據庫,你沒有說。 如果是,通過更換可能報價:

str_replace('\"','\\"',$url); 

也,當然它的更好的辦法是隻保存在YouTube代碼:

$eurl = explode("/",$url); 
$eurl[sizeof($eurl)-1];  // <-- to database 
相關問題