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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖

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

[复制链接]
 楼主| kissdp2 发表于 2010-1-11 15:27:53 | 显示全部楼层
本帖最后由 kissdp2 于 2010-01-11 15:38 编辑

回复 9# lidq.jingwu


    哦, 我理解错了, 你说的是图片地址吧:http: //img3.cache.netease.com/lady/2010/1/7/20100107141127fc746.jpg
最好也能匹配cgi脚本的地址:
http://b27.photo.store.qq.com/http_imgload.cgi?/rurl4_b=59a79d5f93a271887f70f31c748662fd05677dbd89ca39c6843485bf2a2b16959218a6f6184ca71cec21bfea8920cb810bde066d00de1fde5ae0a742fc14d5b92825a96a170731cb83779c8bd7832c759999c351&a=26&b=27,
就是不一定以"jpg"结束
回复

使用道具 举报

lidq.jingwu 发表于 2010-1-12 11:04:31 | 显示全部楼层
回复 6# kissdp2

用下面这段代码来做吧,在正则替换中用自定义函数,即我写的getattac()函数。
这个正则可以将图片的url匹配出来,匹配后会经过函数getattac的处理,图片是否是本地的,非本地图片进行下载操作。
你说你已经有下载的代码了,函数中的处理就由你自己来写吧。

  1.         preg_replace("/<img src=\\\\"(.*?)\\\\"/ies", "'<img src="'.getattac('\\1').'"'",$str);
  2.         function getattac($str){
  3.                 //所有获取到的图片的url都要经过这个函数的处理
  4.                 //此函数用于判断是否为本站的图片,是本站的,返回原值,不是本站的,进行图片下载的处理
  5.                 //下面的事情要与你的代码结合了
  6.                 return $return;
  7.         }
复制代码
下面一段代码是我做测试时的例子:
  1. <html>
  2.         <head><meta http-equiv="Content-Type" charset="gb2312" /></head>
  3.         <body>
  4. <?php
  5.         $handle = fopen("a.txt",r);
  6.         $str = fread($handle,filesize("a.txt"));
  7.         fclose($handle);
  8.         preg_replace("/<img src=\\\\"(.*?)\\\\"/ies", "'<img src="'.getattac('\\1').'"'",$str);
  9.         function getattac($str){
  10.                 echo $str;
  11.                 echo '成功<br/>';
  12.         }
  13. ?>
  14. <body></html>
复制代码
a.txt文件中放的是你给出的测试代码,
我测试时出来的结果是:
  1. http://img3.cache.netease.com/lady/2010/1/7/20100107141127fc746.jpg成功
  2. attachment/201001/8/1_12629343785Ppi.jpg成功
复制代码
符合你的要求。
回复

使用道具 举报

 楼主| kissdp2 发表于 2010-1-12 13:10:10 | 显示全部楼层
哦, 谢谢官方的帮助.. 我测试一下!
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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