php 实现从其他网站拷贝的富文本内容并将里面的图片抓取到本地
<span style="white-space:pre"> </span>function getImgByReg($str) { $list = array(); $c1 = preg_match_all('/<img\s.*?>/', $str, $m1); for($i = 0; $i < $c1; $i++) { $c2 = preg_match_all('/(\w+)\s*=\s*(?:(?:(["\'])(.*?)(?=\2))|([^\/\s]*))/', $m1[0][$i], $m2); for($j = 0; $j < $c2; $j++) { $list[$i][$m2[1][$j]] = !empty($m2[4][$j]) ? $m2[4][$j] : $m2[3][$j]; } } return $list; }
<span style="white-space:pre"> </span>function replaceImg($list, $url) { $newImgTags = array(); $newImgUrls = array(); foreach ($list as $key => $val) { $imgTag = '<img '; foreach ($val as $attr => $v) { if ($attr === 'src') { $imgTag .= $attr . '="' . $url . $v . '" '; $newImgUrls[] = $url . $v; } else { $imgTag .= $attr . '="' . $v . '" '; } } $imgTag .= ' >'; $newImgTags[$key] = $imgTag; } return array('newImgTags' => $newImgTags, 'newImgUrls' => $newImgUrls); }
// 模拟使用
//你想要保存图片的目录
$dist = '/User/www/img/' . date('/Y/m/d');
!is_dir($dist) && mkdir($dist, 0777, true);
define('<span style="font-family: Arial, Helvetica, sans-serif;">URLHOLDER', </span><span style="font-family: Arial, Helvetica, sans-serif;">'{{urlholer}}');</span><span style="font-family: Arial, Helvetica, sans-serif;"> </span>// 你的图片服务器或目录地址 $url = URLHOLDER . '/img/' . date('/Y/m/');
<p class="p1"><span class="s1">// 这是模拟你需要替换的用户提交的富文本内容 里面包含图片地址</span></p><p class="p1"><span class="s1">$content = </span>'<p>Push Pop Pressè?´å??äº?å??é€ ä¸€ä¸ªé€¼ç??ç??ã€?充满物ç??æ??å<img class="mm" src="http://cms.csdnimg.cn/article/201406/04/538edd87c1b25.jpg">º”ç??体éª?ã€?POPå°±æ?¯å?¨è¿?个ç??念ä¸?å?¬ç”?å?ºæ?¥ç??新一代æ??æ??ã€?</p><p>POP使用Objective-C++ç¼–å??ã€?Objective-C++æ?¯å¯¹C++ç??扩å±?ï¼?å°±å??Objective-Cæ?¯Cç??扩å±?ä¸€æ ·ã€?è€?è?³äº?为什ä¹?他们用Objective-C++è€?ä¸?æ?¯çº¯ç²¹ç??Objective-Cï¼?å??å? å?¨äº?他们æ?´å–?欢Objective-C++ç??è¯æ³?特性所æ??ä¾?ç??便å?©ã€?</p><p><strong>POPç??æ?¶æ??</strong></p><p>POPç?®å‰?ç”±å??个é?¨å??ç»?æ??ï¼?å¦?å?¾1所示)ï¼?å?³Animationsã€?Engineã€?Utilityã€?WebCoreã€?</p><p>å?¾1 POPæ?¶æ??å?¾</p><p><img src="http://cms.csdnimg.cn/article/201406/04/538edd54d9240.jpg" />POPå?¨ç”»æ??为æµ?ç?…ï¼?å…¶ç§?å¯?å°±å?¨äº?è¿?个å¼?æ“?ä¸ç??POPAnimatorã€?POPé€?è¿?CADisplayLink让å?¨ç”»å®?ç?°äº?60 FPSç??æµ?ç?…æ??æ??ï¼?æ‰“é€ äº?一个游æ??级ç??å?¨ç”»å¼?æ“?ã€?</p><p>CADisplayLinkæ?¯ç±»ä¼¼NSTimerç??å®?æ—¶å?¨ï¼?ä¸?å??ä¹?å¤?å?¨äº?ï¼?NSTimer用äº?æ?‘们å®?义任å?¡ç??执</p>'<span class="s1">;</span></p> $res = saveImgFromList($content, $dist, $url);
$param = array();
// 你想要的内容 $param['content'] = $res['content'];
// 内容里面图片url组成的数组
$param['image_urls'] = $res['image_urls'];
这时你的内容就可以入库了
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。