php正则表达式不包含http://开头的连接

我的代码是这样的:$source=preg_replace("/(<style.*?url\([\'\"]|<(?:link|script|img).*?(?:href|... 我的代码是这样的:
$source = preg_replace("/(<style.*?url\([\'\"]|<(?:link|script|img).*?(?:href|src)=[\"\'])([^\'\"]+)/i",'$1' . $theme_path . '/' . $theme . '/$2',$source);
这样出现一个问题是,会将以http://开头的图片地址也给修改掉,我希望它不修改,这代码应该怎样改呢?
展开
 我来答
tsotsi
2014-03-24 · TA获得超过940个赞
知道小有建树答主
回答量:1367
采纳率:55%
帮助的人:698万
展开全部
 preg_replace("/(<style.*?url\([\'\"]|<(?:link|script|img).*?(?:href|src)=[\"\'])(?!http:\/\/)([^\'\"]+)/i",'$1' . $theme_path . '/' . $theme . '/$2',$source);

这样?

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吃瓜Oe1
2019-06-14
知道答主
回答量:6
采纳率:0%
帮助的人:1906
展开全部
//取得指定位址的内容,并储存至text
$text=file_get_contents('http://www.zhix.net/');
$pregRule = "/<[img|IMG].*?src=[\'|\"](?!http:\/\/)([^\'\"]+)(.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/";
$content = preg_replace($pregRule, '<img src="http://www.zhix.net/${1}">', $text);
// print_r($content);
//取得所有img标识,并储存至二维阵列match
preg_match_all('#<img[^>]*>#i', $content, $match);
//印出match
print_r($match);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-24
展开全部
为什么不先匹配出
http://开头的连接,然后再php分支判断里面对其操作
追问
http开头的是网站产品的图片地址
非http开头的是网站模板里的图片地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式