我为此伤透了脑筋。
我正在尝试插入可嵌入的视频代码,例如 youtube/viddler/等..它们都以对象标签开头:
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/Ahg6qcgoay4?fs=1&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Ahg6qcgoay4?fs=1&hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
使用 PHP 进入 MySQL。我查遍了互联网,但没有任何可靠的方法可以实现这一点。有谁知道如何将该代码成功插入数据库作为 $video 的值?
更新:我想出了如何存储它,但现在,我尝试在 php 中调用它,但只能返回文本值,基本上,整个嵌入代码作为文本显示,而不是视频本身。这是我显示文本的显示代码。我怎样才能让它显示实际的视频?
<?php
//assuming a connection to the database exists
$sql = "SELECT * FROM table";
$result = mysql_query( $sql );
while( $row = mysql_fetch_array( $result, MYSQL_ASSOC ) ) {
$html = array(); //create an array of html formated values.
$html['video'] = nl2br( stripslashes( htmlentities( $row['video'], ENT_QUOTES, 'UTF-8' ) ) );
echo "Video:<br />{$html['video']}<hr />";
} ?>
更新: 这是嵌入代码在数据库中的样子:
<object width=\"450\" height=\"380\"><param name=\"movie\" value=\"http://www.youtube.com/v/Z5j3CORfxmw&hl=en_US&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/Z5j3CORfxmw&hl=en_US&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"450\" height=\"380\"></embed></object>
其上方的 php 代码提取此数据,没有斜杠,并将嵌入代码完美地显示为文本,但实际的视频并不是由此形成的。有没有办法让显示的代码充当代码并显示视频而不是文本?
为什么要这样做,为什么不简单地保存各种参数值并在 PHP 脚本中重新创建嵌入代码?
这将更加灵活且面向未来。例如,让我们想象一下,明年嵌入代码格式发生更改,您必须完全修改数据库记录,而不是更新单个脚本。
//Assuming that you have saved a JSON string in Mysql
$video = json_decode($video_data);
<object width="<? = $video->width;>" height="<? = $video->height;>">
<param name="movie"
value="<? = $video->url;>"></param>
<param name="allowFullScreen"
value="true"></param>
<param name="allowscriptaccess"
value="always"></param>
<embed src="<? = $video->url;>"
type="application/x-shockwave-flash"
allowscriptaccess="always"
allowfullscreen="true"
width="<? = $video->width;>" height="<? = $video->height;>"></embed>
</object>
在数据库中插入此字符串应该与插入任何其他字符串没有什么不同。只需使用准备好的语句或正确转义字符串即可。但是,当将该字符串嵌入到页面上时,请勿对其进行转义,因为它包含原始 HTML 代码。
在这种情况下,您似乎可以简单地保留视频 ID
Ahg6qcgoay4
,因为无论视频如何,嵌入代码本身都应该相同。
$var = embed code
echo htmlspecialchars_decode($var);