Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已答复] 关于正则表达式, 高手帮忙

[复制链接]
kissdp2 发表于 2010-1-11 14:34:51 | 显示全部楼层 |阅读模式
我想让网络的图片本地化, 提交一篇日志的时候直接复制网页上的图片, 调用的是网络图片地址

[message] => <span class=\"Apple-style-span\" style=\"color: rgb(68, 68, 68); font-family: \'lucida grande\',tahoma,verdana,arial,sans-serif;\"><div style=\"word-wrap: break-word;\">在新思路模特选拔赛中,为了考验选手的耐力 ,大赛将耐力的首场比赛放在了顺义的乔波滑雪场。七月的北京,外面是30多度的桑拿天,而在滑雪场里却是只有零下5度的寒冷“冬天”。选手们要在寒冷的雪地里,身穿比基尼秀出自己的美。</div><div style=\"word-wrap: break-word;\"><img src=\"http://img3.cache.netease.com/lady/2010/1/7/20100107141127fc746.jpg\" style=\"margin: 0px 2px 0px 0px; word-wrap: break-word; vertical-align: middle; max-width: 520px;\"></div></span><div class=\"uchome-message-pic\"><img src=\"attachment/201001/8/1_12629343785Ppi.jpg\"><p></p></div>

高手请帮我把所有<img src="*******" /> 把里面的以http://开头的地址替换成随便一个地址,如:attachment/a.jpg

帮忙啊,正则不会
wapboy 发表于 2010-1-11 14:41:36 | 显示全部楼层
楼上的,广告!
回复

使用道具 举报

玻璃屋女孩 发表于 2010-1-11 14:44:02 | 显示全部楼层
是想把
  1. http://img3.cache.netease.com/lady/2010/1/7/20100107141127fc746.jpg
复制代码
替换为attachment/a.jpg吗?
回复

使用道具 举报

 楼主| kissdp2 发表于 2010-1-11 14:48:10 | 显示全部楼层
本帖最后由 kissdp2 于 2010-01-11 15:23 编辑

回复 4# 玻璃屋女孩
对, 应该怎么做啊...
回复

使用道具 举报

 楼主| kissdp2 发表于 2010-1-11 14:55:51 | 显示全部楼层
直接上代码,大家帮我改一下

  1.     // 匹配所有img标签
  2.     $search="/<img src=(.+?)>/is";
  3.     $rep=array();
  4.     $match=preg_match_all($search, $_POST['message'], $rep);

  5.     // 要保存的图片名称
  6.     $imgarr = array();

  7.     foreach($rep[0] as $key => $val) {
  8.         $imgarr[$key] = 'attachment/blog/'.md5(date("YmdHis").$val).'.jpeg';
  9.         $_POST['message'] = str_replace($val, '<img src="'.$imgarr[$key].'" />', $_POST['message']);
  10.     }
复制代码
结果有两个问题,
1: 本地上传过的图片地址也被替换了;
2: 把原来img标签的样式都去掉了;

我觉得正则表达式有问题~!
回复

使用道具 举报

lidq.jingwu 发表于 2010-1-11 14:59:03 | 显示全部楼层
回复 6# kissdp2


    替换掉没有问题,但是替换掉之后,这个图片就不能显示了,因为你本地没有这个图片的,你的程序中有直接下载网络图片的功能吗?
回复

使用道具 举报

 楼主| kissdp2 发表于 2010-1-11 15:01:00 | 显示全部楼层
这个没问题, 一个函数就搞定了, 我已经有那个功能了, 到时候就加上, 关键这个地址得不到啊 ~
回复

使用道具 举报

lidq.jingwu 发表于 2010-1-11 15:01:44 | 显示全部楼层
你的网址是?我来试一下这个正则。
回复

使用道具 举报

 楼主| kissdp2 发表于 2010-1-11 15:05:17 | 显示全部楼层
啊? 我现在在本地测试, 所以没有网址, 不好意思~ 呵呵
您写出什么代码发上来吧.. 我自己测试一下 谢谢了
回复

使用道具 举报

 楼主| kissdp2 发表于 2010-1-11 15:15:05 | 显示全部楼层
本帖最后由 kissdp2 于 2010-01-11 15:16 编辑

回复 9# lidq.jingwu
我现在在本地测试, 所以没有网址, 不好意思~ 呵呵
您写出什么代码发上来吧.. 我自己测试一下 谢谢了  或者PM给我
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-18 16:32 , Processed in 0.029246 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表