2013-02-26 75 views
0

我有一个表在MySQL中包含的情侣,我想传递给表达式preg_replace正则表达式从MySQL

我的代码:

$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:# 
+0

是每一行一个数据库条目或整个bloock是? – 2013-02-26 20:40:11

+0

整块是。我做爆炸,然后foreach – 2013-02-26 20:52:07

回答

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:#, 
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

+0

谢谢,但它仍然给我一个错误 – 2013-02-26 20:26:14

+0

什么是错误?你有什么尝试?你是否简单地在答案中对代码进行了复制/过去? – mimipc 2013-02-26 20:28:45

+0

@MohamedAtef:那个错误是什么? – 2013-02-26 20:32:45