Comment explorer le contenu Web et les images en php

不言
Libérer: 2023-04-02 15:02:02
original
3591 Les gens l'ont consulté

Cet article présente principalement la méthode d'exploration du contenu Web et des images avec PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Exemple 1 :

.
<?php
 include_once("curl.php");/*这个文件要自己配置好*/
 header("content-type:text/html;charset=utf8");
  $pattern_title ="/<title>(.+)<//title>/";//标题匹配
  $pattern_code = "/<tr><td><p>(.+)<//p><script/";//网页内容匹配
  $url="http://www.freewl.com/freezcm/2011/0413/3185.html";//根网址
  
 $DATA_CONTENT = CurlGet($url); 
 
 $num=preg_match_all($pattern_title, $DATA_CONTENT, $match_title);
 
 for($i=0;$i<$num;$i++){
  echo strlen($match_title[1][$i])."--".$match_title[1][$i]."<br />";
 }
 echo "<hr />";
 
 /*$trans = array("  "=>",", "<br />"=>"。");
 $TRANS_CONTENT = strtr($DATA_CONTENT, $trans);
 echo $TRANS_CONTENT;
 */
 
$DATA_CONTENT=preg_replace('//s(?=/s)/', ' ', $DATA_CONTENT);//(?=pattern) 正向预查
   $DATA_CONTENT=preg_replace('/[/n/r/t]/', '/r/n', $DATA_CONTENT);//回车换行
   $DATA_CONTENT=preg_replace('/ /', ' ', $DATA_CONTENT); 


 $num=preg_match_all($pattern_code, $DATA_CONTENT, $match_code);
 
 for($i=0;$i<$num;$i++){
  echo $match_code[1][$i]."<br />";  
 }
 
?>
Copier après la connexion

Exemple 2 :

 <?php
/*
author: ssh_kobe
date: 20110615
*/
set_time_limit(0);//抓取不受时间限制
function get_pic($pic_url) {
//获取图片二进制流
$data=CurlGet($pic_url);
/*利用正则表达式得到图片链接
$pattern_src = &#39;/<img.*?\"([^\"]*(jpg|bmp|jpeg|gif)).*?>/&#39;;*/
$pattern_src = &#39;/<img.*?src\=\"(.*\.jpg).*?>/&#39;;//只匹配jpg格式的图片
$num = preg_match_all($pattern_src, $data, $match_src);
$arr_src=$match_src[1];//获得图片数组
//get_name($arr_src);
get_name_2($arr_src);
echo &#39;End!!!<br>&#39;;
return 0;
}
function get_pic_2($pic_url, $base_site) {
//获取图片二进制流
$data=CurlGet($pic_url);
/*利用正则表达式得到图片链接*/
$pattern_src = &#39;/<img.*?\"([^\"]*jpg).*?>/&#39;;//只匹配jpg格式的图片
$num = preg_match_all($pattern_src, $data, $match_src);
$arr_src=$match_src[1];//获得图片数组
$arr_src=rev_site($arr_src, $base_site);
get_name($arr_src);
echo &#39;End!!!<br>&#39;;
return 0;
}
/* 将图片相对地址改为绝对地址 */
function rev_site($site_list, $base_site){
    foreach($site_list as $site_item) {
        if (preg_match(&#39;/^http/&#39;, $site_item)) {
            $return_list[] = $site_item;
        }else{
            $return_list[] = $base_site.$site_item;
}
    }
    return $return_list;
}
/*得到图片类型,并将其保存到与该文件同一目录*/
function get_name($pic_arr)
{
    //图片类型
$pattern_type = &#39;/(\.(jpg|bmp|jpeg|gif|png))/&#39;;    
    foreach($pic_arr as $pic_item){//循环取出每幅图的地址
        $num = preg_match_all($pattern_type,$pic_item,$match_type);
        $pic_name = get_unique().$match_type[1][0];//改时微秒时间戳命名
        //以流的形式保存图片
        $write_fd = @fopen($pic_name,"wb");        
        @fwrite($write_fd, CurlGet($pic_item));
        @fclose($write_fd);
        echo "OK..";
    }
    return 0;
}
function get_name_2($pic_arr)
{
    //图片编号和类型
$pattern_type = &#39;/.*\/(.*?)$/&#39;;    
    foreach($pic_arr as $pic_item){//循环取出每幅图的地址
        $num = preg_match_all($pattern_type,$pic_item,$match_type);
        //以流的形式保存图片
        $write_fd = @fopen($match_type[1][0],"wb");        
        @fwrite($write_fd, CurlGet($pic_item));
        @fclose($write_fd);
        echo &#39;OK..&#39;;
    }
    return 0;
}
//通过微秒时间获得唯一ID
function get_unique(){
list($msec, $sec) = explode(" ",microtime());
return $sec.intval($msec*1000000);
}
//抓取网页内容
function CurlGet($url){ 
$url=str_replace(&#39;&amp;&#39;,&#39;&&#39;,$url);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
//curl_setopt($curl, CURLOPT_REFERER,$url);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; SeaPort/1.2; Windows NT 5.1; SV1; InfoPath.2)");
curl_setopt($curl, CURLOPT_COOKIEJAR, &#39;cookie.txt&#39;);
curl_setopt($curl, CURLOPT_COOKIEFILE, &#39;cookie.txt&#39;);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
$values = curl_exec($curl);
curl_close($curl);
return $values;
}
?>
Copier après la connexion

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez prêter attention à. le site PHP chinois !

Recommandations associées :

Comment télécharger des images zip emballées en php

Traitement sécurisé des requêtes Web php

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:
source:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!