2012-05-23 43 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 
相关问题