Nous devons maintenant copier le contenu avec les images des sites Web d'autres personnes sur notre propre site Web. Je dois donc télécharger les images des sites Web d'autres personnes, puis les enregistrer localement, puis remplacer les adresses des images dans le contenu par notre adresse locale. Ici, nous devons simplement utiliser les trois fonctions preg_match_all, file_get_contents et str_replace en php.
<script>ec(2);</script>
J'ai copié un article et j'ai découvert que les chemins d'images proviennent de sites Web d'autres personnes. Comment puis-je télécharger ces images en local en un seul clic et les modifier selon les chemins locaux ?
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy6124')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy6124>/** * 获取替换文章中的图片路径 * @param string $xstr 内容 采集网页的content * @param string $keyword 创建照片的文件名 我写upimg * @param string $oriweb 网址 一般写null * @return string * */ function replaceimg($xstr,$keyword, $oriweb){ $basedir = dirname(__FILE__); //保存路径 $d = date('Ym', time()); $dirslsitss = $basedir.'/../uploads/'.$keyword.'/'.$d;//分类是否存在 if(!is_dir($dirslsitss)) { @mkdir($dirslsitss, 0777); } //匹配图片的src preg_match_all('#<img.*?src="([^"]*)"[^>]*>#i', $xstr, $match); foreach($match[1] as $imgurl){ $imgurl = $imgurl; if(is_int(strpos($imgurl, 'http'))){ $arcurl = $imgurl; } else { $arcurl = $oriweb.$imgurl; } $img=file_get_contents($arcurl); if(!empty($img)) { //保存图片到服务器 $fileimgname = time()."-".rand(1000,9999).".jpg"; $filecachs=$dirslsitss."/".$fileimgname; $fanhuistr = file_put_contents( $filecachs, $img ); $saveimgfile = "/uploads/$keyword"."/".$d."/".$fileimgname; $xstr=str_replace($imgurl,$saveimgfile,$xstr); } } return $xstr; }</td> </tr> </table></td> </tr> </table>