大家好,又见面了,我是全栈君。
<img(.*)src=\"([^\"]+)\"[^>]+>
(4)、替换内容留空。
//获取替换条件
$condition = empty($condition) ? '' : " And $condition ";
//被替换内容,这里就是我们填写的正则
$rpstring = stripslashes($rpstring);
//简单的进行字符串转义替换
$rpstring2 = str_replace("\\","\\\\",$rpstring);
$rpstring2 = str_replace("'","\\'",$rpstring2);
//构造sql语句进行查询,注意这里的$rpstring2跟下面php用到的正则$rpstring实际上是一样的。
//那么问题就来了,网上很多正则标签在PHP下测试是可以的,不过到MySQL下就不行了。
//百度了一下发现,MySQL不支持正则的零宽断言,对正则的支持也很简单。
$dsql->SetQuery("SELECT $keyfield,$rpfield FROM $exptable WHERE $rpfield REGEXP '$rpstring2' $condition ");
$dsql->Execute();
$tt = $dsql->GetTotalRow();
if($tt==0)
{
ShowMsg("根据你指定的正则,找不到任何东西!","javascript:;");
exit();
}
$oo = 0;
while($row = $dsql->GetArray())
{
$kid = $row[$keyfield];
//通过PHP的正则替换把结果集中的数据替换
$rpf = preg_replace("#".$rpstring."#i", $tostring, $row[$rpfield]);
$rs = $dsql->ExecuteNoneQuery("UPDATE $exptable SET $rpfield='$rpf' WHERE $keyfield='$kid' ");
if($rs)
{
$oo++;
}
}
$dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`");
ShowMsg("共找到 $tt 条记录,成功替换了 $oo 条!", "javascript:;");
exit();
转载于:https://www.cnblogs.com/jkko123/p/6294621.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108690.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...