我正在尝试使用 php 构建一个基本的“状态”页面,它会告诉我的用户各种服务(我们使用的网页)是否至少提供页面(这不是 100% 的工作保证,但它的指标非常好)
我想做的是
www.domainname.com/mediawiki/index.php 并确保返回页面与否
我对 php 很陌生,所以我什至不确定我在寻找什么功能。
谢谢
有一些方法可以使用内置的 PHP 函数来执行此操作(例如 file_get_contents),但它们不是很好。我建议你看看优秀的 cURL 库。这可能会为您指明正确的方向:Header only retrieve in php via curl
由于您只想查看页面是否“启动”,因此您不需要请求整个页面,您可以使用 HEAD 请求来获取页面的标题。
它将网页源作为字符串返回。这样,如果需要,您甚至可以在字符串中搜索特定值,以获得更好的结果。如果内容仍然返回但是某种错误消息,这可能非常有用。
$somePage = file_get_contents('http://www.domainname.com/mediawiki/index.php');
// $somePage now contains the HTML source or false if failed
确保allow_url_fopen = On
在您的 php.ini
如果需要检查响应头,可以使用$http_response_header
另一种选择是查看套接字是否响应。(我不记得我最初是从哪里得到的,但它让我知道端口 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;
尝试这个:
<?php
$_URL = "http://www.domainname.com/mediawiki/index.php";
if (! @file_get_contents($_URL))
{
echo "Service not responding.";
}
?>
请注意,您php.ini
必须激活allow_url_fopen
祝你好运