-1

これが私が現在コードに使用しているもので、正しく機能していません。

私は文学を理解しようとしましたが、クリックしません

<?php
$con = mysql_connect("localhost","----","----");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("----", $con);

$result = mysql_query("SELECT * FROM posts");

while($row = mysql_fetch_array($result))
  {

$str = 'post_content';

$str = preg_replace_callback('#(?:https?://\S+)|(?:www.\S+)|(?:\S+\.\S+)#', function($arr)
{
    if(strpos($arr[0], 'http://') !== 0)
    {
        $arr[0] = 'http://' . $arr[0];
    }
    $url = parse_url($arr[0]);

    // images
    if(preg_match('#\.(png|jpg|gif)$#', $url['path']))
    {
        return '<img src="'. $arr[0] . '" />';
    }
    // youtube
    if(in_array($url['host'], array('www.youtube.com', 'youtube.com'))
      && $url['path'] == '/watch'
      && isset($url['query']))
    {
        parse_str($url['query'], $query);
        return sprintf('<iframe class="embedded-video" src="http://www.youtube.com/embed/%s" allowfullscreen></iframe>', $query['v']);
    }
    //links
    return sprintf('<a href="%1$s">%1$s</a>', $arr[0]);
}, $str);

echo $str;
echo "<br />";
}

mysql_close($con);
?>

問題が $str = 'post_content'; にあることはわかっています。明らかに、post_content だけを含む mysql の各行の行を表示するだけです。

私がやりたいのは、MySQL の行 post_content のすべての値を表示し、リンクを links として表示し、YouTube ビデオを youtube vids や画像などとして表示することですが、変換していません。

誰が私が欠けているものを見ることができますか? 木がそれをどのように呼んでいるかについても説明していただければ、私はあなたをとても愛しています.

4

1 に答える 1

0

列がpost_contentあり、それを取得したい場合は、割り当てを$str = 'post_content';使用する代わりに次を使用します。

 $str = $row['post_content'];
于 2012-06-16T19:00:49.300 に答える