Проверьте, отвечает ли веб-страница через php - PullRequest
1 голос
/ 20 октября 2010

Я пытаюсь создать базовую страницу «статуса», используя php, которая сообщит моим пользователям, если различные сервисы (веб-страницы, которые мы используем) хотя бы обслуживают страницы (что не является гарантией 100% работы, но это довольно хорошоиндикатор)

я хотел бы сделать что-то вроде

www.domainname.com / mediawiki / index.php и убедиться, что страница возвращается или нет

IЯ довольно новичок в php, так что я даже не уверен, какую функцию я ищу.

Спасибо

Ответы [ 4 ]

5 голосов
/ 20 октября 2010

Есть способы использовать встроенные функции PHP для этого (например, file_get_contents), но они не очень хороши.Я предлагаю вам взглянуть на отличную библиотеку cURL.Это может направить вас в правильном направлении: Получение только заголовка в php через curl

Поскольку вы просто хотите увидеть, если страница "вверх", вам не нужно запрашивать всюстранице, вы можете просто использовать запрос HEAD, чтобы получить заголовки для страницы.

0 голосов
/ 20 октября 2010

Другой вариант - видеть, что сокет отвечает.(Я не могу вспомнить, откуда я это взял, но он дает мне знать, отвечает ли порт 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;
0 голосов
/ 20 октября 2010

Попробуйте это:

<?php
    $_URL = "http://www.domainname.com/mediawiki/index.php";

    if (! @file_get_contents($_URL))
    {
        echo "Service not responding.";
    }
?>

Обратите внимание, что ваш php.ini должен активировать allow_url_fopen

Удачи

0 голосов
/ 20 октября 2010

Извлечь file_get_contents

Возвращает источник веб-страницы в виде строки.Таким образом, вы можете даже искать в строке определенное значение, если хотите, для более точных результатов. Это может быть очень полезно в том случае, если содержимое все еще возвращается, но это своего рода сообщение об ошибке.

$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

...