?当我们的织梦网站内容比较多时需要更新或替换两个内容时,常用的就是正则表达式替换了,但是织梦网站给我们提供的数据库替换,有很多限制,比如替换两个元素之间的内容,该怎么办呢?下面给大家一个利用php正则表达式获取替换两元素之间的内容的案例,供大家参考。
正则:https://www.xxxx.com([^\'\"]*)(?=(\/.*jpg))? ?获取网址后 图片名前的路径
<?php
echo '成功:<span id="message"></span>----失败:<span id="message1"></span>';
require_once (dirname(__FILE__) . "/include/common.inc.php");
$i=1;
$u=1;
for ($x=8690; $x<=15882; $x++) {
$id=$x;
$proinfo=$dsql->GetOne("select body from `#@__archives` as a inner join `#@__addonarticle` as b on a.id=b.aid where a.id={$id} limit 1");
//输出文body字段内容
$weigeti=$proinfo[body];
//echo $weigeti;
//修改文章中的内容
$body = preg_replace('#https://www.xxxx.com([^\'\"]*)(?=(\/.*jpg))#','/uploads/allimg/210903',$weigeti);
//转义字符
$body = addslashes($body);
//把修改过的内容重新插入数据库
$rs = $dsql->ExecuteNoneQuery("UPDATE `#@__addonarticle` SET body='{$body}' where aid={$id}");
if($rs){
echo '<script>document.getElementById("message").innerHTML="'.$i.'";</script>';
$i++;
}else{
echo '<script>document.getElementById("message1").innerHTML="'.$u.'";</script>';
$u++;
}
}
|