PHP中检查url是否可以正常访问

Web2018年12月22日 am12:43发布6年前 (2018)更新 91es.com站长
31 0 0
目录

一个链接是否可以正常访问: 方法一:array get_headers( string $url[, int $format = 0] )

url: 目标 URL。
format: 如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。
返回:

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

方法二:fopen — 打开文件或者 URL

resource fopen( string $filename, string $mode[, bool $use_include_path = false[, resource $context]] )

fopen() 将 filename 指定的名字资源绑定到一个流上。

成功时返回文件指针资源,如果打开失败,本函数返回 FALSE。

如果打开失败,会产生一个 E_WARNING 错误。可以通过 @ 来屏蔽错误。

'r' 只读方式打开,将文件指针指向文件头。

function varify_url($url)
{
    $check = @fopen($url,"r");
    if($check)
        $status = true;
    else
        $status = false;

    return $status;
}

方法三:curl检测

public function httpcode($url)
    {
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_URL, $url);
        //忽略证书,不然的话https会返回0
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_exec($ch);
        $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        return $httpcode;
    }

url检查这种方式比较多人使用

补充:检测是否是有效的url

  public function validateActiveUrl($value)
    {
        if (! is_string($value)) {
            return false;
        }

        if ($url = parse_url($value, PHP_URL_HOST)) {
            try {
                return count(dns_get_record($url, DNS_A | DNS_AAAA)) > 0;
            } catch (Exception $e) {
                return false;
            }
        }

        return false;
    }

 

原文:https://blog.csdn.net/zhezhebie/article/details/80361115

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com[备用域名]
3、 本站内容: 部分来源于网络,仅供站长学习和参考,若侵权请留言
4、 本站打赏: 打赏站长一杯冰可乐 打赏站长一杯冰可乐

暂无评论

暂无评论...

随机推荐

老舍:理想的生活,不是房子车子票子

我的理想家庭要有七间小平房:一间是客厅,古玩字画全非必要,只要几把很舒服宽松的椅子,一二小桌。 一间书房,书籍不少,不管什么头版与古本,而都是我所...

刘瑜:被梦想俘虏的人生

你肯定有这样一个朋友吧:在银行工作,长得一般,业务凑合,有老婆孩子,勤勤恳恳养家糊口,不爱说话,但如果开口说话,说的话也多半无趣无味——总之形象非常...

ARGB 颜色取值与透明度对照表

什么是ARGB ARGB 依次代表透明度(alpha)、红色(red)、绿色(green)、蓝色(blue)。 Android颜色值格式 Android中的颜色值一般格式是:#AARRGGBB。 AA就是透...

[摘]字符乱码之特征

前言 开发中,遇见乱码是难免的,看到网上有大牛整理的《字符乱码之特征》,因此摘抄于此,方便自己查阅。 好记性不如烂笔头 正文 这里有介绍古文码、口字码...