0

人々はオンラインにアクセスして、タイトルと説明を含む記事を送信します。そして、人々はしばしばリンクを含みますが、それらは基本的なテキストとして表示されます。人々がURLを含めるとき、それが機能するリンクとして認識される方法が欲しいです。コードを記述しましたが、1行しかスキャンせず、テーブルの外にエコーされるため、実際のテーブルでは機能しないようです。

基本的に...リンクが送信されたときにハイパーリンクが作成されるテーブルが必要です。何か案は?以下のこの更新されたコードは、同じことを続けています。

私のコードは以下の通りです:

      $query = "SELECT * FROM rumours ORDER BY id DESC";
     $query = mysql_query($query) or die('MySQL Query Error: ' . mysql_error( $connect ));
    while ($row = mysql_fetch_assoc($query)) {
$id = $row['id'];
$band = $row['band'];
$title = $row['Title'];
$description = $row['description'];

$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

// The Text you want to filter for urls
 // Check if there is a url in the text
  if(preg_match($reg_exUrl, $description, $url)) {
   // make the urls hyper links
   preg_replace($reg_exUrl, '<a href="'.$url[0].'">'.$url[0].'</a>', $description);

      }

   echo "<table border='1'>";
   echo "<tr>";
   echo "<td> $title  </td>";
   echo "</tr>";
   echo "<tr>";
   echo "<td class = 'td1'> $description </td>";
   echo "</tr>";
   echo "</table>";

}
4

2 に答える 2

0

$reg_exUrlどこにも響かない。だから、あなたa hrefは現れていません

于 2012-10-12T18:13:02.377 に答える
0

これは、置換を行う前に印刷するためですpreg_replace...

そのようにあなたのループの中にあなたのプレグを入れてください:

$query = "SELECT * FROM rumours ORDER BY id DESC";
$query = mysql_query($query) or die('MySQL Query Error: ' . mysql_error( $connect ));
while ($row = mysql_fetch_assoc($query)) {
    $id = $row['id'];
    $band = $row['band'];
    $title = $row['Title'];
    $description = $row['description'];

    $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

    // The Text you want to filter for urls

    // Check if there is a url in the text
    if(preg_match($reg_exUrl, $description, $url)) {
           // make the urls hyper links
           preg_replace($reg_exUrl, '<a href="'.$url[0].'">'.$url[0].'</a>', $description);

    }

    echo "<table border='1'>";
    echo "<tr>";
    echo "<td> $title  </td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td class = 'td1'> $description </td>";
    echo "</tr>";
    echo "</table>";

}

ところで、通常の mysql_ 関数の代わりに PDO または mysqli_ を使用してみてください。

于 2012-10-12T18:11:35.430 に答える