用php处理一段html代码中的所有img标签有一段html代码,里面包含很多标签,同时包含有很多的img标签,现在,需要用php语言将所有的img标签的src图片地址提取出来后,经过我的一段程序处理生成自己服务器下的图片地址,将原先的src图片地址替换成我程序处理后的地址。 并且保证图片地址替换后的img标签与原先的img标签在html代码中的位置是一样的。 PHP HTML 图片 分享到: ------解决方案--------------------这个用正则可以实现 $url="http://www.ggggggg.com"; //file_get_contents() 函数把整个文件读入一个字符串中 $string=file_get_contents($url); //preg_match_all函数进行全局正则表达式匹配。 preg_match_all("/]*)\s*src=('------解决方案--------------------\")([^'\"]+)('------解决方案--------------------\")/", $string,$matches);//带引号 //preg_match_all("/]*)\ssrc=([^\s>]+)/",$string,$matches);//不带引号 $new_arr=array_unique($matches[0]);//去除数组中重复的值 foreach($new_arr as $key){ echo $key.""; } ?> 代码运行结果将显示所有抓取的图片。------解决方案--------------------$string='你的内容'; preg_match_all("/]*)\s*src=('------解决方案--------------------\")([^'\"]+)('------解决方案--------------------\")/", $string,$matches); $new_arr=array_unique($matches[2][0]);//去除数组中重复的值 foreach($new_arr as $key=>$val){ $picurl=get_name($val);//这里处理图片并得到处理后的地址 str_replace($val,$picurl,$string); } function get_name($pic_item,$path='upload/') { $pic_name = $path.get_unique().'.jpg';//改时微秒时间戳命名 $write_fd = @fopen($pic_name,"wb"); @fwrite($write_fd, CurlGet($pic_item)); @fclose($write_fd); return $pic_name; }