Php 重定向到URL时抛出错误
我有一个函数,我用来测试URL是否有效,然后再将其存储到数据库中Php 重定向到URL时抛出错误,php,Php,我有一个函数,我用来测试URL是否有效,然后再将其存储到数据库中 function url_exists($url) { ini_set("default_socket_timeout","5"); set_time_limit(5); $f = fopen($url, "r"); $r = fread($f, 1000); fclose($f); return strlen($r) > 1; } if( !url_exists($tes
function url_exists($url)
{
ini_set("default_socket_timeout","5");
set_time_limit(5);
$f = fopen($url, "r");
$r = fread($f, 1000);
fclose($f);
return strlen($r) > 1;
}
if( !url_exists($test['urlRedirect']) ) { ... }
它工作得很好,但是今天我的一个用户报告了一个问题,当我测试时,确实以下URL被标记为无效:
因此,我试图删除页面名,只使用域,但仍然得到了错误。我的脚本被这个领域的什么东西噎住了?你试着在那里用瑞士刀喝汤 PHP支持
文件中的URL包装器\u存在
:
if (file_exists("http://www.artleaguehouston.org/charge-grant-survey")) {
// URL returns a good status code for your IP and User Agent "PHP/x.x.x"
}
卷曲:
(主要取自,只是为了给予正确的评价)。可能重复的我认为有更好的解决方案,也许您需要检查这些问题。许多服务器设置为不允许尝试从脚本(如PHP脚本)访问。当试图从PHP访问时,该URL返回403禁止。你需要用一些更复杂的东西,比如卷发。让我来试一试。只有一件事,$curl是从哪里来的?是不是应该是$ch?@santa你也应该看看不同的状态代码,有些网站会重定向,然后代码是
302
或301
,但这并不意味着无法访问URL。只需谷歌http状态码
。基本上,当给出任何状态代码时,站点都会启动,因为如果主机关闭,就会导致错误。在这里还可以查看卷发选项:
$ch = curl_init('http://www.artleaguehouston.org/charge-grant-survey');
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_USERAGENT,
'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0'
);
curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($statusCode == 200) {
// Site up and good status code
}