【问题标题】:INSERT Flash Object Into MySql with PHP使用 PHP 将 Flash 对象插入 MySql
【发布时间】:2011-05-19 12:39:21
【问题描述】:

我为此头疼。

我正在尝试插入可嵌入的视频代码,例如 youtube/viddler/etc.. 它们都以对象标签开头:

<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 />";
}   ?>

更新:这是嵌入代码在 DB 中的样子:

<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 代码提取了这个数据,没有斜线,它把嵌入代码完美地显示为文本,但实际的视频不是从那里形成的。有没有办法让显示的代码充当代码并显示视频而不是文本?

【问题讨论】:

    标签: mysql flash youtube embed


    【解决方案1】:
    $var = embed code
    
    echo htmlspecialchars_decode($var);
    

    【讨论】:

      【解决方案2】:

      您为什么要这样做,为什么不简单地保存各种参数值并在您的 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>
      

      【讨论】:

      • 经过大量研究,我得以将其保存为 TEXT。现在我将它从表格中拉出来,它只将整个内容显示为文本,而不是显示实际的视频。我们怎样才能让视频本身现在在 php 中显示,而不是它的文本值?
      • 与上面的答案相同 :) 使用变量设置嵌入代码,从 Mysql 加载变量,视频将显示!仍然可以将所有这些数据保存为字符串,只需使用 JSON。
      • 我实际上是通过 POST 将 textarea 的值与嵌入代码一起传递到 MySQL 并将其保存为 $video。 JSON 对我来说似乎太复杂了,无法将整个 textarea 结果分解为多个部分,保存它们,然后将它们放回去。我对 JSON 或任何 JS 都不太流利,刚开始学习 MySQL。问题还在于文本区域不仅有youtube,而且可以放6个以上的嵌入代码,并保存到数据库中。我不知道如何分解所有这些并为用户部分保存。我只是将嵌入代码的样子粘贴到数据库中,还有其他更简单的方法可以将其拉出吗?
      【解决方案3】:

      在数据库中插入这个字符串应该与插入任何其他字符串没有什么不同。只需使用准备好的语句或正确转义字符串。但是,在页面上嵌入该字符串时,不要转义它,因为它包含原始 HTML 代码。

      在这种情况下,尽管您似乎可以简单地保留视频 ID Ahg6qcgoay4,因为无论视频如何,嵌入代码本身都应该相同。

      【讨论】:

        猜你喜欢
        • 2016-05-04
        • 2016-08-21
        • 1970-01-01
        • 2019-09-11
        • 2010-11-11
        • 2012-05-18
        • 1970-01-01
        • 2014-05-14
        相关资源
        最近更新 更多