我正在尝试使用php构建一个基本的“状态”页面,它将告诉我的用户各种服务(我们使用的网页)是否至少提供页面服务(这不是100%保证工作,但它非常好指示器)
我想做的是像
www.domainname.com/mediawiki/index.php并确保返回页面
我对php很新,所以我甚至不确定我正在寻找什么功能。
由于
答案 0 :(得分:5)
有很多方法可以使用内置的PHP函数来执行此操作(例如file_get_contents),但它们并不是很好。我建议你看看优秀的cURL库。这可能会指向正确的方向:Header only retrieval in php via curl
由于您只想查看某个页面是否“up”,您不需要请求整个页面,您只需使用HEAD请求即可获取该页面的标题。
答案 1 :(得分:0)
它会将网页源作为字符串返回。这样,您甚至可以在字符串中搜索特定值(如果需要),以获得更精细的结果。 如果仍然返回了内容但是某种错误消息,这可能非常有用。
$somePage = file_get_contents('http://www.domainname.com/mediawiki/index.php');
// $somePage now contains the HTML source or false if failed
确保php.ini中的allow_url_fopen = On
如果您需要检查回复标题,可以使用$http_response_header
答案 2 :(得分:0)
试试这个:
<?php
$_URL = "http://www.domainname.com/mediawiki/index.php";
if (! @file_get_contents($_URL))
{
echo "Service not responding.";
}
?>
请注意,您的php.ini
必须激活allow_url_fopen
答案 3 :(得分:0)
另一种选择是看到套接字正在响应。 (我不记得我从哪里得到这个,但它让我知道端口80是否响应)。您可以随时将其指向其他端口。
function server($addr){
if(strstr($addr,'/')){$addr = substr($addr, 0, strpos($addr, '/'));}
return $addr;
};
$link = 'secure.sdinsite.net:';
$s_link = str_replace('::', ':', $link);
$address = explode (':',"$s_link");
$churl = @fsockopen(server($addrress[0]), 80, $errno, $errstr, 20);
if (!$churl) {
$status = 'dead';
} else {
$status = 'live';
};
echo $status;