Maison  >  Article  >  développement back-end  >  Explication détaillée de la correspondance régulière php des adresses d'images distantes dans les articles et du téléchargement d'images vers des instances locales

Explication détaillée de la correspondance régulière php des adresses d'images distantes dans les articles et du téléchargement d'images vers des instances locales

怪我咯
怪我咯original
2017-07-05 10:15:531752parcourir

Cet article présente principalement les techniques d'implémentation de php Regular faisant correspondre l'adresse de l'image distante dans l'article et téléchargeant l'image en local. Il peut réaliser la fonction de collecte et de sauvegarde d'images distantes. C'est une technique très pratique. pouvons y faire référence.

utilisons l'expression régulière de PHP pour obtenir :

$content = &#39;这里是文章内容,这里插入一张图片测试 <img src="XXXXXXXXXXXXXXXXXXXX">&#39;;
$content = stripslashes ( $content );
$img_array = array ();
// 匹配所有远程图片
preg_match_all ( "/(src|SRC)=["|&#39;| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png))/isU", $content, $img_array );
// 匹配出来的不重复图片
$img_array = array_unique ( $img_array [2] );
print_r($img_array);

Ce qui précède correspond à l'image distante, et nous devons la conserver localement. Deux points doivent être notés ici :
1. Chemin d'enregistrement de l'image (répertoire de stockage d'images)
2. Adresse réelle de l'image d'accès
Ce qui suit est un exemple complet : (vous pouvez l'enregistrer sur le serveur local et modifier le lieu correspondant pour les tests)





php保存远程图片到本地,php正则匹配文章中的图片地址


 $value ) {
 $value = trim ( $value );
 // 读取远程图片
 $get_file = @file_get_contents ( $value );
 // 保存到本地图片名称
 $imgname = date ( "YmdHis" ) . '_' . rand ( 10000, 99999 ) . "." . substr ( $value, - 3, 3 );
 // 保存到本地的实际文件地址(包含路径和名称)
 $fileName = $imgPath . '/' . $imgname;
 // 实际访问的地址
 $fileurl = $imgUrl . "/" . $imgname;
 // 文件写入
 if ($get_file) {
 $fp = @fopen ( $fileName, "w" );
 @fwrite ( $fp, $get_file );
 @fclose ( $fp );
 }
 // 替换原来的图片地址
 $content = ereg_replace ( $value, $fileurl, $content );
}
echo $content;
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn