使用preg_replace正则替换后,内容中所有的"都变成了\"。 规则中没有定义这个啊,怎样才能防止"编程\"
或者我在进行一次正则替换,将\"再替换回" 要怎么做?
或者我在进行一次正则替换,将\"再替换回" 要怎么做?
解决方案 »
- thinkPHP页面跳转问题--回帖有分
- 这个字段要放到where中查询,是不是应该加入一般索引
- 求助PHP的INCLUDE
- php调用java的问题
- 急求一SQL语句?
- 唠叨大人请进!!!!!!!!! flush()问题!!!!!!!!!!! ~~~~~~~~~~~~~~~ 在线等待 ~~~~~~~~~~~~
- 字符串分割
- 我的SESSION!帮帮我
- fsockopen("udp://".$ServerIP, $ServerPort, &$errno, &$errstr,$timeout)
- 我想问下我的验证码路径哪里出错了
- 正则替换后 "全部变成了\"
- PHP+ORACLE的一个关于执行带OUT参数存储过程的问题
addslashes -- 使用反斜线引用字符串
stripslashes -- Un-quote string quoted with addslashes() 去掉反斜线
查一下手册
function ReplaceKey($newstext){
global $empire,$dbtbpre,$public_r;
global $rs,$s,$i;
$rs=$s=array();
$i=0;function r($newstext){
global $rs,$s,$i;
$i++;
$search="-]-$i-[-";
$s[$i]=$search;
$rs[$i]=$newstext;
return $search;
}
$newstext = preg_replace("/(<a(.*))(>)(.*)(<)(\/a>)/isU", '\\1-]-\\4-[-\\6', $newstext);
$newstext = preg_replace("/(<)(.*)(-\]-)/isU", '\\1-]-\\2-[-\\3', $newstext);
$newstext = preg_replace("/(<)(.*)(>)/isU", '\\1-]-\\2-[-\\3', $newstext);
$sql=$empire->query("select keyname,keyurl from {$dbtbpre}enewskey");
while($r=$empire->fetch($sql))
{
$newstext=preg_replace('/(-\]-.+?-\[-)/e',"r('\\1')",$newstext);
$newstext=empty($public_r[repkeynum])?str_replace($r[keyname],'<a href="'.$r[keyurl].'" target="_blank" class="infotextkey">'.$r[keyname].'</a>',$newstext):preg_replace('/'.$r[keyname].'/','<a href="'.$r[keyurl].'" target="_blank" class="infotextkey">'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
$newstext=str_replace($s,$rs,$newstext);
}
$newstext = preg_replace("/(<)(-\]-)(.*)(-\[-)(>)/isU", '\\1\\3\\5', $newstext);
$newstext = preg_replace("/(<)(-\]-)(.*)(-\[-)(-\]-)/isU", '\\1\\3\\5', $newstext);
$newstext = preg_replace("/(<a(.*))-\]-(.*)-\[-(\/a>)/isU", '\\1>\\3<\\4', $newstext); return $newstext;
}贴出我的代码