Maison > développement back-end > tutoriel php > Exemple de code pour php pour explorer les images et les enregistrer localement

Exemple de code pour php pour explorer les images et les enregistrer localement

不言
Libérer: 2023-04-04 21:26:01
avant
3955 Les gens l'ont consulté

Le contenu de cet article concerne des exemples de code pour explorer des images avec PHP et les enregistrer localement. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Revoir l'utilisation de plusieurs fonctions php à travers un exemple simple

Fonctions utilisées ou points de connaissances

  • curl envoie des requêtes réseau

  • preg_match match régulier

code

$url     = 'http://desk.zol.com.cn/bizhi/7386_91671_2.html';
$headers = [
    'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
];
$ch      = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     //将curl_exec()获取的信息以字符串返回,而不是直接输出。
curl_setopt($ch, CURLOPT_HEADER, $headers);
$output = curl_exec($ch);
curl_close($ch);
$str = mb_convert_encoding($output, 'utf-8', 'gb2312');
//或$str = iconv('gb2312//IGNORE', 'utf-8', $output);

preg_match(&#39;!<img id="bigImg" src="(?<src>http.*\.(?<ext>jpg|png))".*>!&#39;, $str, $m);
file_put_contents(&#39;./meinv.&#39; . $m[&#39;ext&#39;], file_get_contents($m[&#39;src&#39;]));
Copier après la connexion

effet

Exemple de code pour php pour explorer les images et les enregistrer localement

Explication

curl envoie une requête

Les étapes pour établir une connexion curl en php sont généralement : l'initialisation, la définition des options, l'exécution des opérations et la libération de la connexion.

$ch = curl_init();
curl_setopt($ch, CURLOPT, $opt);
$out = curl_exec($ch);
curl_close();
Copier après la connexion

Paramètres CURLOPT couramment utilisés, plus de documents de référence http://php.net/manual/zh/function.curl-setopt.php

CURLOPT_URL, string //设置url必须
CURLOPT_HEADER, array //设置请求header
CURLOPT_RETURNTRANSFER, bool //为true时,以字符串返回响应,不包含header
CURLOPT_SSL_VERIFYPEER, bool //为false时,不验证https证书,用于请求https的url
CURLOPT_POST, int //为1时配合CURLOPT_POSTFIELDS使用post请求,默认使用get
CURLOPT_POSTFIELDS, array //post数据数组
Copier après la connexion

Sortie directe tronquée des caractères ont été trouvés dans $output. En vérifiant le code source, nous avons constaté que la page Web utilise le codage gb2312. Utilisez mb_convert_encoding ou iconv pour la convertir en codage utf-8 pour la sortie.

preg_match Match régulier

En consultant le code source, nous avons constaté que la balise d'image dont nous avons besoin est

Expression régulière

<img id="bigImg" src="(?<src>http.*\.(?<ext>jpg|png))".*>
Copier après la connexion

.* Correspond à tout, (?) En utilisant le regroupement, vous pouvez facilement utiliser $match['name'] pour obtenir la partie souhaitée

Enfin $ match['src '] Obtenez la véritable URL de l'image et enregistrez-la via file_put_contents, même si elle est complétée


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!

Étiquettes associées:
php
source:cnblogs.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal