• PHP获取网站图标(favicon.ico)文件


      有的网站源码中加入了这几行代码:

    1 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />

      或者是

    1 <link rel=" icon" href="/favicon.ico" type="image/x-icon" />

      这样可以指定图标位置存放。

      但现在的浏览器大多支持自动获取网站根目录下的.ico文件,所以源码中看不到那几行代码。

      可行的方法:

      

     1             //得到每一个url,获取其中的icon
     2             $url = $matches[1][$i];
     3             $contents = @file_get_contents($url); 
     4             preg_match('/<link rel=".*?icon".*?href="(.*?)".*?>/', $contents,$icon);
     5             if(!empty($icon)){
     6                 // print_r($icon[1]);
     7                 echo "<br/>";
     8                 $array = @get_headers($icon[1],1); 
     9                 if(preg_match('/200/',$array[0])){ 
    10                     // echo "<pre/>"; 
    11                     print_r($icon[1]);
    12                     echo "<img src='".$icon[1]."' style='16px;height:16px;'>";
    13                     // echo "string";
    14                     // print_r($array); 
    15                 }else{ 
    16                     //去掉多余的斜杠
    17                     $url = substr_replace($url,"",-1);
    18                     echo "无效url资源!".$url.$icon[1]; 
    19                     echo "<img src='".$url.$icon[1]."' style='16px;height:16px;'>";
    20                 }
    21 
    22             }else{
    23                 //这里笔者试了很多种方法,后来发现通过url可以入手,从url截取网址的根目录,由于习惯性的把文件名名为favicon.ico,所以可以直接访问类似这样的url得到图标文件,http://wenwen.sogou.com/favicon.ico
    24                 $url=substr($url,7);//去除前面
    25                 $position = strpos($url, '/');
    26                 $url=substr($url,0,$position);
    27                 echo "<img src='http://".$url."/favicon.ico' style='16px;height:16px;'><br/>";
    28                 // echo $url."/favicon.ico<br/>";
    29                 //判断网站的根目录是否存在.icon文件
    30                 // $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; 
    31                 // echo dirname($url);
    32                 // if(file_exists("favicon.ico"))
    33                 //     echo "<p>存在</p>";
    34             }

      思路:

        先判断源码中是否有那几行添加iocn的代码,如果有就直接抓取代码,再判断是否为有效的url,然后再判断显示,没有则获取根目录后显示。

       

  • 相关阅读:
    倒立摆
    Mybatis在oracle、mysql、db2、sql server的like模糊查询
    BUG系列:转让startActivityForResult()&amp;onActivityResult()没有反应
    建立地方Jekyll周边环境
    HDU 1535 Invitation Cards (POJ 1511)
    STM8S---IO复用配置(STVP方式)
    【菜鸟看框架】——EF怎样自己主动生成实体
    Keywords Search (ac 自己主动机)
    liGDX life_cycle (生命周期)
    html浏览器兼容性的 JavaScript语法
  • 原文地址:https://www.cnblogs.com/jhmydear/p/3915789.html
Copyright © 2020-2023  润新知