查看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
我试图检查某个是否为元音。做这件事最好的方法是什么?