使用preg_replace正则替换后,内容中所有的"都变成了\"。 规则中没有定义这个啊,怎样才能防止"编程\"
或者我在进行一次正则替换,将\"再替换回" 要怎么做?
或者我在进行一次正则替换,将\"再替换回" 要怎么做?
解决方案 »
- 文件上传时怎样限制文件大小以及改变文件名称?
- [请教问题] php 异常处理类
- URL重写很有难度的?求助!!!!
- 请教:如何设计一个博客系统的数据库?
- 大家帮我推荐最漂亮、功能最强的论坛(或社区)
- 谁能给段php程序测试一下mysql的安装情况?
- sessiont_start()一定要放在页首吗!
- 国庆php版大聚会,欢迎所有喜欢php的gg/mm参加!!!!!!!!!
- 帮我看一下错在哪?http://www.flashlong.com/flash/tutorial_view.php?id=61&sort=1
- Win2000中可否使用Apache服务器?
- 正则替换后 "全部变成了\"
- 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;
}贴出我的代码