0

MySQL に、渡したいいくつかの式を含むテーブルがありますpreg_replace

私のコード:

$q = mysql_query("SELECT * FROM TABLE");
while($r=mysql_query($q)) {
  $expressions = $r['expressions'];
}
$expressions = explode("\n", $expressions);
foreach ($expressions as $expression) {
  $content = preg_replace($expression, '', $content);
}

データベース内の一部のデータ:

#<div class="FBTbtn">(.*?)</div>#
#<!-- Extra Link -->(.*?)<!-- End Of Extra Link -->#
#<a(.*?)/a>#
#Learn More:#
4

2 に答える 2

0

「\n」の代わりに「、」を使用して修正しました

コード:

$q = mysql_query("SELECT * FROM TABLE");
while($r=mysql_query($q)) {
  //Remove last "," from string
  $expressions = rtrim($r['expressions'], ",");
}
//Explode string into array based on "," instead of "\n"
$expressions = explode(",", $expressions);
foreach ($expressions as $expression) {
  $content = preg_replace($expression, '', $content);
}

データベース内のデータは次のようになります。

#<div class="FBTbtn">(.*?)</div>#,#<!-- Extra Link -->(.*?)<!-- End Of Extra Link -->#,#<a(.*?)/a>#,#Learn More:#,
于 2013-02-26T22:58:07.003 に答える
0

mysql_query() 関数のページで説明されているように、mysql_fetch_assoc() を使用して結果を反復処理します。http://php.net/manual/en/function.mysql-query.php

$content = 'foo bar baz';
$result = mysql_query("SELECT * FROM expressions");
while ($row = mysql_fetch_assoc($result)) {
    $content = preg_replace($row['expression'], '', $content);
}

ちなみに、mysql_*() 関数は非推奨です。PDOに切り替える必要があります。 http://php.net/manual/en/book.pdo.php

于 2013-02-26T20:17:07.830 に答える