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

Web  2018年12月22日 am12:43发布6年前 (2018)更新 91es.com站长
50 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、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

JS监听滚动条位置变化

有时候我们需要监听浏览器中上下滚动的位置来改变一些元素的属性隐藏或者显示,比如91易搜中下拉达到一定高度后搜索框会固定在顶部。(可以前去看看效果)如果我们要实现这效果,就需要监听滚动条的Y轴位置的变化,根据Y轴的位置来改变某些元素的属性值。闲话少说,直接附上代码(下面是改变类heade...

Android app换肤简单记录

前言记录一下换肤的思路,方便自己查阅正文Android换肤已经烂大街了,很多大厂应用都做了,比如QQ、网易云、哔哩哔哩等,这些都是需要VVIP才可以体验的。这里推荐GitHub开源的而且很受欢迎的Android-skin-support,很强大。下面我就整理一下我对换肤的简单理解。换...

service.te:57: ERROR: end of file in comment

前言Android 12添加服务后,在配置SELinux权限时,出现如下的编译错误。prebuilts/build-tools/linux-x86/bin/m4:device/sprd/mpool/sepolicy/system/public/service.te:57: ERROR: end...

[摘]Java IO流输入输出流

流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流字符...

村上春树:恰到好处,活着就好

我已经有了一定的年纪,但绝对不管自己叫“大叔”。是的,确实该叫“大叔”,或者该叫“老爹”了,毫无疑问就是这样的年龄,可我自己不这么叫。若问什么缘故,那是因为当一个人自称“我已经是大叔啦”的时候,他就变成真正的大叔了。女人也一样。当自己声称“我已经是大婶啦”的时候(哪怕是玩笑或者谦虚),她就变成真正...

[摘]Android 系统重启原因分析

重启原因分类1.上层造成重启system_server被杀watchdog重启重要线程阻塞2.kernel造成重启空指针非法地址3.kernel watchdog造成重启,原因不确定内存原因nand驱动log查看步骤及关键字1. 重启后的kernel.log或...