Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите получить ответ от сервера.
 
 автор: AlexDIXI   (11.07.2008 в 11:21)   письмо автору
 
 

Есть очень большой файл - который доступен по веб урл http://.....com/papka/file.txt

Качать весь файл мне не нужно. А лишь установить доступен он или нет. Т.е. если я правильно понял получить заголовок. 200 это успешно если что иное например 505 то файл не доступен..

Помогите пожалуйста осуществить проверку ответа от сервера..

Спасибо !

   
 
 автор: cheops   (11.07.2008 в 11:24)   письмо автору
 
   для: AlexDIXI   (11.07.2008 в 11:21)
 

Если вам доступен PHP 5, удобно воспользоваться функцией get_headers(), которая возвращает HTTP-заголовки с удаленного сервера, в том числе и код ответа.

   
 
 автор: AlexDIXI   (11.07.2008 в 11:41)   письмо автору
 
   для: cheops   (11.07.2008 в 11:24)
 

угу, но а если не доступно пхп5?

   
 
 автор: Trianon   (11.07.2008 в 12:09)   письмо автору
 
   для: AlexDIXI   (11.07.2008 в 11:41)
 

Вызов, предложенный cheops'ом, отправит GET-запрос.
В версии 5.1.3 и выше вроде как можно изменить контекст запроса, и то фиг знает, получится ли.
По умолчанию всяко пройдет GET.

HEAD придется брать ручками. Как - можно поглядеть в задачах (Задача N13 - )
http://www.softtime.ru/info/task.php?id_article=83

2 Administrartors : приведенного URL почему-то нет в общем списке задач....

   
 
 автор: cheops   (13.07.2008 в 09:30)   письмо автору
 
   для: Trianon   (11.07.2008 в 12:09)
 

>2 Administrartors : приведенного URL почему-то нет в общем списке задач....
Спасибо, поправили.

   
 
 автор: AlexDIXI   (13.07.2008 в 16:46)   письмо автору
 
   для: cheops   (13.07.2008 в 09:30)
 

Ребята низкий поклон! Что б я без вас делал.. Столько перспектив впереди..

   
 
 автор: mihdan   (11.07.2008 в 16:13)   письмо автору
 
   для: AlexDIXI   (11.07.2008 в 11:21)
 

<title>Просмотр заголовков</title>
<form action="?do" method="post">
    Введите адрес:<br><br><input type="Text" name="adress" size="40"><input type="Submit" value="Показать заголовки">
</form>

<?
if(isset($_GET['do']) && isset($_POST['adress']) && !empty($_POST['adress'])) {
    
$filepath trim($_POST['adress']);

    if (!
preg_match('/^https?|ftps?/si'$filepath)) $filepath 'http://' $filepath;


    
// Делим путь к файлу на хост и "хвост" (для сокетов)
    
preg_match('/\\b(?P<protocol>https?|ftp):\/\/(?P<domain>[-A-Z0-9.]+)(?P<file>\/[-A-Z0-9+&@#\/%=~_|!:,.;]*)?(?P<parameters>\\?[-A-Z0-9+&@#\/%=~_|!:,.;]*)?/i'$filepath$path_details);

    
// Проверяем, верен ли введённый адрес
    
if(isset($path_details['domain']) && !empty($path_details['domain'])) {
        
$filehost $path_details['domain'];
    } else {
        echo 
"Введённый адрес некорректен !";
        exit;
    }

    
// Если "хвост" пуст, заполняем пустоту слешем, что бы не сглючили сокеты
    
if(isset($path_details['file']) && !empty($path_details['file'])) {
        
$filepath $path_details['file']; 
    } else {
        
$filepath "/";
    }
    
    
// Подключаемся к файлу через сокеты
    
$fp = @fsockopen($filehost80, &$errno, &$errstr30) or die("Ошибка подключения к серверу");
    
$headers = array();
    
$headers[] = "HEAD $filepath HTTP/1.0\n";
    
$headers[] = "HOST: $filehost\n";
    
$headers[] = "Connection: close\n\n";
    
    
fputs($fpimplode(''$headers));
    
    
$tmp "";
   
    while (!
feof($fp)) {
        
$tmp .= fgets($fp4096);
    }

    echo 
'<hr />'.nl2br(implode(''$headers)).'<hr />'.nl2br($tmp);
    
    
fclose($fp);
}

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования