Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Получить файл вместе с HTTP-заголовками
Форумы портала PHP.SU » » Работа с сетью » Получить файл вместе с HTTP-заголовками

Страниц (1): [1]
 

1. Abyrvalg - 24 Июня, 2011 - 11:43:42 - перейти к сообщению
Привет тебе, о несравненный All!

Есть, наверное, несложная задачка, в которой я затупил.
Надо получить по HTTP файл. Притом желательно одновременно с этим выяснить, какой Content-Type ему приписывает сервер-отправитель.

Для получения файла есть замечательная функция file_get_contents.
Для получения заголовков есть не менее замечательная функция get_headers.
Первая функция получает только содержимое файла и ничего не говорит о заголовках. Вторая функция получает только заголовки, но не файл. Но мне надо и то, и другое.

Как быть?

Перспектива изобретать велосипед путём обращения к серверу через сокет и парсинга сырых ответов как-то не радует.
Вызывать поочерёдно обе функции - заманчивый выход, но кривой. Вполне прокатит, если с помощью скрипта нужно получить 5-10 файлов. А если раз в тысячу больше? Ведь HTTP-запросов будет ровно в два раза больше, чем нужно, поскольку для получения каждого файла придётся отправлять два запроса.

Есть ли простое решение этой проблемы?
2. EuGen - 24 Июня, 2011 - 11:49:03 - перейти к сообщению
Есть. Называется curl
http://forum.php.su/topic.php?fo...=62&topic=31
3. Abyrvalg - 24 Июня, 2011 - 14:32:04 - перейти к сообщению
Спасибо, вроде всё доступно.

А не пробовал ли кто с помощью таких скриптов делать зеркала сайтов? Ну, к примеру, есть домен 1, на котором реально крутится сайт, и домен 2 (пустой). На хостинге домена 2 в .htaccess прописываем перенаправление типа:
Цитата:
ErrorDocument 404 /404.php

и в указанном скрипте обрабатываем все запросы на несуществующие файлы, подгружая вместо них реальные аналоги с сайта 1. По идее должно ведь такое сработать?
4. EuGen - 24 Июня, 2011 - 14:35:12 - перейти к сообщению
Можно и так, только зачем? Можно гораздо проще. mod-rewrite какой-нибудь.
5. Abyrvalg - 24 Июня, 2011 - 15:38:49 - перейти к сообщению
EuGen пишет:
Можно и так, только зачем? Можно гораздо проще. mod-rewrite какой-нибудь.


Дабы не плодить оффтоп, написал в личку. Сорри Улыбка
6. EuGen - 24 Июня, 2011 - 15:41:38 - перейти к сообщению
По поводу Вашего вопроса - для того, чтобы domain2.com отображался как domain1.com - не проще ли сделать альяс в определении соответствующего виртуального хоста?
Это, конечно, не совсем "зеркало" будет (в строгом смысле данные из одного места будут браться), но веб-сайт будет доступен как для domain1.com так и для domain2.com
7. Abyrvalg - 24 Июня, 2011 - 15:57:11 - перейти к сообщению
А какой URL при этом будет отображаться в адресной строке? С domain2.com или с domain1.com?
8. EuGen - 24 Июня, 2011 - 15:57:41 - перейти к сообщению
domain2.com (Вы же альяс сделаете)
9. Abyrvalg - 24 Июня, 2011 - 16:19:28 - перейти к сообщению
Вот я слепил директиву Alias в .htaccess, и она меня перебрасывает на domain1.com (основной сайт).
А если надо править свойства виртуального хоста (т.е. внутри секции VirtualHost), то кто ж мне такое даст...

 

Powered by ExBB FM 1.0 RC1