За последние 24 часа нас посетили 56777 программистов и 1786 роботов. Сейчас ищут 2245 программистов ...

file_get_contents($url) - $url не найден, но он есть!

Тема в разделе "Прочие вопросы по PHP", создана пользователем mFrance, 21 июл 2015.

  1. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    Реальный пример:
    запрос: http://www.landkit.ru/index.php
    ответ: Warning: file_get_contents(http://www.landkit.ru/item.php?block=header) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/landkit/domains/landkit.ru/public_html/index.php on line 74

    Но если вставить в адресную строку броузера сам url - http://www.landkit.ru/item.php?block=header - видим, что скрипт есть и он отработал.

    P.S. В .htaccess прописано: php_flag allow_url_fopen on. Права всех файлов 777 и владелец всех файлов один. На другом хостинге работает.

    В какую сторону копать? Как эта настройка называется? :)
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Не знаю, что у тебя за замысел, но...ты парсишь свой собственный сайт, чтобы вставить форму в страницу? О_о
     
  3. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    Вот не знаете замысел - и не критикуйте.

    Сайт-дубликат http://lp.webvertex.ru - промытвая вниз, обратите внимание на адресную строку - в ней меняется адрес и следующие блоки подгружаются скриптом. Это выполнение заказа.

    Можно, пожалуйста, сюда писать только ответы на больной вопрос? Сижу уже несколько дней...
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    На lp подгружается через AJAX.
    Когда делаешь запрос на landkit через PHP, то к какому IP идёт обращение?
    И зачем такое извращение, легче сделать include( item.php ) и его подправить чтобы возвращал нужные данные.
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Не знаете, что делаете, не обижайтесь на тех, кто знает как такое сделать. Допустим, у вас заработает гет-контент, что дальше? Будете каждый раз обновлять страницу, добавляя кусок за куском? А как состояние будете хранить, что загрузилось, а что нет? Кукой? Больше индусского кода индусским богам?

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

    Что там происходит:
    Слушается скролл, если значение скролла достигло минимума, дергается AJAX-запрос, который просто обращается к скрипту и просто вытягивает еще кусок сайта на страницу. И все. При этом JS продолжает слушать скролл и, при вхождении в определенные интервалы, меняет адрес в строке.

    Прототип этой хрени пишется на коленке за 20 минут.
     
  6. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    2 denis01:

    Вот спасибо за совет! Заработало!!! :)

    Не знаю, наверно, какое-то затмение - нужно было получить результат скрипта item.php - вот и пришла мысль получить его функцией file_get_contents...

    Добавлено спустя 2 минуты 20 секунд:
    2 Fell-x27:

    > Слушается скролл, если значение скролла достигло минимума, дергается AJAX-запрос, который просто обращается к скрипту и просто вытягивает еще кусок сайта на страницу. И все. При этом JS продолжает слушать скролл и, при вхождении в определенные интервалы, меняет адрес в строке.

    Точно так и сделано :)

    Добавлено спустя 3 минуты 3 секунды:
    Нет, ну всё-таки интересен сам философский смысл вопроса? :)

    Почему $url открывается в броузере, но не открывается функцией file_get_contents? :)
    Причём этот же код прекрасно работает на другом хостинге.

    Ответ: дело всё же в настройках хостинга или php... Только в каких?...

    Найду - расскажу :)
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Не совсем в тему, но выключи magic_quotes.
     
  8. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    2 Fell-x27:
    Спасибо! :) Уже :)
     
  9. mFrance

    mFrance Активный пользователь

    С нами с:
    4 сен 2013
    Сообщения:
    14
    Симпатии:
    0
    Вот один человек ответил на вопрос так:
    "На хостинге - доноре что то не отдает, если нет хидеров браузера. Блин, сталкивался же, но не помню нюансов."

    Имеется в виду такой хидер?
    header('User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:34.0) Gecko/20100101 Firefox/34.0');
     
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну да. Бывает такое.