当前位置: 首页 > 面试题库 >

检查PHP中是否存在URL的最佳方法是什么?

花欣然
2023-03-14
问题内容

查看URL存在并且响应不是404的最佳方法是什么?


问题答案:

您可以使用 get_headers($url)

手册中的示例2

<?php
// By default get_headers uses a GET request to fetch the headers. If you
// want to send a HEAD request instead, you can do so using a stream context:
stream_context_set_default(
    array(
        'http' => array(
            'method' => 'HEAD'
        )
    )
);
print_r(get_headers('http://example.com'));

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

第一个数组元素将包含HTTP响应状态代码。您必须解析它。

请注意,get_headers示例中的函数将发出HTTP HEAD请求,这意味着它将不会获取URL的正文。这比使用GET请求(也将返回正文)更有效。

还要注意,通过设置 默认 上下文,任何使用http流上下文的后续调用现在都将发出HEAD请求。因此,确保完成后将默认上下文重置为再次使用GET。

PHP还提供了变量$
http_response_header

$http_response_header数组类似于该get_headers()函数。使用HTTP包装器时,$http_response_header将使用HTTP响应标头填充。$http_response_header将在本地范围内创建。

如果要下载远程资源的内容,则不需要执行两个请求(一个请求查看资源是否存在,另一个请求获取该资源),而不仅仅是一个。在这种情况下,请使用类似的方法file_get_contents来获取内容,然后检查变量中的标题。



 类似资料:
  • 问题内容: 在Java / Android中检查字符串是否包含URL的最佳方法是什么?最好的方法是检查字符串是否包含| .com |。.net | .org | .info | .everythingelse |?还是有更好的方法呢? 该网址是在Android中输入到EditText中的,它可以是粘贴的网址,也可以是手动输入的网址,用户不希望输入http://…。我正在开发一个网址缩短应用程序。

  • 问题内容: 哪种方法可以更好地检查属性是否存在? Jarret Hardie提供了以下答案: 我看到它也可以通过以下方式完成: 一种方法通常比其他方法使用更多吗? 问题答案: 没有“最佳”方法, 因为您永远不会仅仅检查属性是否存在;它始终是某些较大程序的一部分。有几种正确的方法,一种值得注意的不正确的方法。 这是演示此技术失败的演示: 输出: 大多数情况下,您不想惹恼。这是用于执行特殊操作的特殊属

  • 问题内容: 我正在尝试检查某一个是否为元音。这样做的最佳方法是什么? 问题答案: 这是我使用了一段时间的解决方案,但它并没有让我失望: 对于我的应用程序,它相当快。

  • 问题内容: 我有这样的示例列表: 现在,我检查它是否具有空字符串,如下所示: 这可以正常工作,因为它可以打印True,但是是否需要更多的pythonik方法? 问题答案: 您可以使用: 万一如果内部列表更大(超过100个项目),则与生成器一起使用的速度将比上面的示例更快,因为这样,使用Python for循环的速度代价将由快速操作来补偿: 时序比较:

  • 问题内容: 使用PHP(给定URL),如何确定它是否是图像? URL没有上下文-它只是在纯文本文件的中间,或者可能只是一个字符串。 我不希望开销很大(例如,读取URL的内容),因为页面上的许多URL都可以调用此方法。鉴于此限制,识别所有图像并不是必需的,但是我想作一个很好的猜测。 目前,我只是在看文件扩展名,但是感觉应该有比这更好的方法。 这是我目前拥有的: 编辑: 如果对其他人有用,这里是使用E

  • 我试图检查某个是否为元音。做这件事最好的方法是什么?