问题标签 [get-headers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何知道本地 URI/URL 是否存在?
假设我的 URL 是mysite.com/myuri。全世界都知道有很多方法可以知道我的站点mysite.com上是否存在本地 uri myuri 。
- 最简单、最快的方法是:
$uri_exists = file_exists($_SERVER['DOCUMENT_ROOT']."/myuri")
. - 下一个方法是:
$headers = @get_headers("http://mysite.com/myuri");
$uri_exists = ($headers[0] == "HTTP/1.1 404 Not Found");
- 另一种(比前一种快一点)方法是:
$curl = curl_init('http://mysite.com/myuri');
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_exec($curl);
$info = curl_getinfo($curl);
$uri_exists = ($info['http_code'] == 200);
curl_close($curl);
这些是我知道的方法。第一种方法精确检查文件是否存在,而不是 URI 是否存在。如果mod_rewrite
使用,这种方法是非常不准确的。
接下来的两种方法是准确的(即使mod_rewrite
使用时也是如此),但速度较慢,因为它们对自己的站点执行远程 GET 请求。它们也是低效的,因为只要知道 URI 是否存在,mysite.com 上的脚本就会不必要地执行它们自己。此外,它们会对mysql 服务器造成不必要的流量。
谈到我要问的问题,我希望 mysite.com 上的 PHP 脚本使用比上述三种方法更有效和准确的方法检查 URL mysite.com/myuri是否存在。
谢谢
和平...
php - 检查数组php中的键
我正在使用 get_headers() 并且我想返回内容长度。在下面的数组中,内容长度是密钥号 9,但是我发现内容长度并不总是密钥号 9。我不确定为什么它并不总是相同的密钥?如何搜索数组并始终返回内容长度,无论它是什么键?因为我在函数中使用它,所以文件的实际文件大小不会每次都不同。我的示例代码如下。提前致谢。
php - 比 get_headers() 更快的东西
我正在尝试制作一个 PHP 脚本,以尽快检查网站的 HTTP 状态。
我目前正在使用 get_headers() 并在来自 mysql 数据库的 200 个随机 URL 的循环中运行它。
检查所有 200 个 - 平均需要 2m 48s。
我能做些什么来让它(很多)更快?
(我知道 fsockopen - 它可以在 20 年代检查 200 个站点上的端口 80 - 但它与请求 http 状态代码不同,因为服务器可能会在端口上响应 - 但可能无法正确加载网站等)
这是代码..
c++ - 如何使用 C++ 自动化在 Word 文档中插入页眉或页脚
我想使用 word 自动化在 word 文档中插入页眉或页脚。
但代码部分是“Range MyRange = Hf.GetRange();” 失败,如何使用 C++ 在 Word 文档中插入页眉或页脚?
c# 中的以下代码可以正常工作:
php - 查明网站是否返回 200
我正在使用以下代码来检查用户提供的链接是否真的指向现有网站:
作为测试,我使用了 img http://cdn.thegloss.com/files/2012/04/stormtr.jpg
只要我在本地主机上使用它,它就可以正常工作 - 即它说 url 是有效的并且没有回显“not valid1” - 现在它在不同的服务器上并且它回显“not valid1”。怎么来的?有人知道吗?
谢谢!丹尼斯
php - file_get_contents, curl, get_headers, .. 什么都不返回
file_get_contents()
我正在尝试获取我第一次尝试使用和 curl的外部文件(youtube json feed)的内容。他们都没有给我任何回应。
在 php.iniallow_url_fopen
中设置为 On。我还尝试关闭安全模式。
可能出了什么问题?
php - php get_headers 异常处理
我正在运行以下命令并遇到异常:
$headers = get_headers(" http://www.moneysupermarket.com/mortgages/ ", 1);
如何处理此异常(在我的情况下,请忽略此 url,因为它会导致异常)。
我试过了:
- 试着抓
- 此链接中的代码:https ://stackoverflow.com/a/6184127/1486303
但是,我仍然会出现此错误(我想忽略它)。
谢谢!
rest - Promise 响应适用于 GET,但不适用于 XHR 中的 POST
我正在尝试通过 DOJO 1.8 上的 XHR.post 调用 URL。我需要从承诺响应中捕获 STATUS 属性和 getHeader() ,但问题是,当我使用 POST 调用我的 URL 时,我没有任何承诺,而当我使用 GET 调用时,我拥有我需要的所有属性,但我只能将请求作为 POST 发送。
最奇怪的是我在 AngularJS 中有另一个运行良好的代码,这个代码做同样的事情。我正在测试 DOJO 和 AngularJS。
我需要捕获 STATUS 信息以检查它是否为 201(已创建),如果为真,我需要捕获 getHeader('location') 并调用从 getHeader('location') 获取的 URL。
看看我在 Dojo 1.8 中的方法:
php - 什么环境变化导致 get_header 返回不同的输出?
就像标题一样,我在两个不同的 PHP 版本上运行相同的脚本。
- 我的服务器 1- 5.2.17
- 我的服务器 2- 5.3.19
get_headers($url, 1);
$url 是带有 http 和 .co.uk 的 google(没有 www)——或者使用任何返回 404 的 url 不同输出的示例是:
我的服务器 1-
[Server] => gws
[从标题中收集]
我的服务器 2-
[服务器] => 数组 [从标题中收集]
/li>
我假设服务器 2 遵循 301 的位置并将其添加到标题中,其中服务器 1 在数组中只有 301 标题。
所以服务器 2 将转到“ http://google.co.uk ”(返回 301);然后跟随它到“ http://www.google.co.uk/ ”并将两个响应添加到相同的输出中。
我的问题是——是什么导致了这种变化?我检查了 PHP 频道日志,但看不到对 get_headers 的提及,所以我一定遗漏了一些东西。
如果您知道导致不同输出的原因,并且更好地知道如何恢复更改(无需更改回旧的 PHP 版本),我将不胜感激。我知道我可以使用 cURL,但我真的不想这样做。
完整的代码(没有验证等)
在 PHP 5.2 中 - 如果我回显 $server 它会类似于“Apache”。
在 PHP 5.3 - 如果我回显 $server 它将是“数组”(如果它达到 301)。
最后,我计划将 $sever 存储在数据库中。我不能/不想将“数组”存储在那里。
谢谢。
php - 如何在加载整个内容/页面/文件之前使用 PHP 获取标题?
背景资料:
- 我正在从各种在线来源动态收集一些 URL。
- 如果它是 HTML 页面或图像,我想获取 URL 的内容。
- 我不想加载大文件(如下载的 zip、pdf 或其他文件)——只是为了意识到目标对我来说并不有趣。
有没有办法在实际获取内容之前使用 PHP 检查响应类型/格式?(避免浪费我自己和目标服务器的资源和带宽)
(我get_headers()
在 PHP 文档中找到,但我不清楚该函数是否实际获取整个内容并返回标头,或者以某种方式仅从服务器获取标头,而不先下载内容。我还找到了解决方案带有 CURL 和 fsocketopen 的标头,但问题仍然存在,如果我可以在不加载实际内容的情况下做到这一点)