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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: file_get_contents срабатывает через раз

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Инсеин
Отправлено: 03 Августа, 2011 - 21:04:52
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Доброе время суток !
Возникла такая вот проблема, что функция file_get_contents через раз (образно говоря) оказываеться пустая.
Теперь по порядку ... есть базовый шаблон (basic.php)
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title><?=$title?></title>
  5. </head>
  6. <body>
  7. <?=$content?>
  8. </body>
  9. </html>
  10.  


Максимально упростил, так как проблема явно не в нём )
Есть так же файл с самим контентом (content.php) ... содержит только html так, что писать его думаю не имеет смысла. И есть так же третий файл который собирает всё это в кучу )

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $title = 'Hello, World !';
  4.  
  5. $content = file_get_contents ('http://mysite.ru/tpl/content.php');
  6.  
  7. include ('tpl/basic.php');
  8. ?>
  9.  


Так вот на локалхосте работает всё отлично и без проблем ... залил на хост тоже вроде всё работает нормально ... но сейчас уже второй день наблюдаю такую картину, что загружается только базовый шаблон, а $content получается остаётся пустым. При этом если обновить страницу ... ну или два - три раза обновить (когда как получаеться) то в итоге загружаеться страница как следует.
Ну и собственно сам вопрос ... какие могут быть причины такой вот рандомности в работе функции и возможные пути решения данной проблемы ?


-----
Судя по ходу мыслей, вас постоянно преследуют глупости.
 
 Top
Arni
Отправлено: 03 Августа, 2011 - 21:09:20
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


Помог: 2 раз(а)




Плохо работает сервер который http://mysite[dot]ru
 
 Top
Инсеин
Отправлено: 03 Августа, 2011 - 21:22:59
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Arni пишет:
Плохо работает сервер который http://mysite.ru


То есть проблема не в скрипте ? .. Хм ... всё на много хуже чем я думал ))


-----
Судя по ходу мыслей, вас постоянно преследуют глупости.
 
 Top
LIME
Отправлено: 03 Августа, 2011 - 21:28:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




если на локальной машине проблем не было значит точно не http://mysite[dot]ru виноват
попробуйте сами заходить на http://mysite[dot]ru/tpl/content.php через браузер
если и тут все хорошо то даже незнаю тогда
возможно в таймаут не укладываетесь
(Добавление)
вставьте вывод всех ошибок в начало скрипта возможно что-то выплывет
 
 Top
Arni
Отправлено: 03 Августа, 2011 - 21:48:32
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


Помог: 2 раз(а)




Инсеин пишет:
Arni пишет:
Плохо работает сервер который http://mysite.ru


То есть проблема не в скрипте ? .. Хм ... всё на много хуже чем я думал ))


Потому что вы не то делаете. php будет дожидаться когда file_get_contents полностью отработает, а это будет не быстро, еще как минимум 4 секунды. Если то что она получает, без изменений должно попасть в блок вашего сайта то я бы вам советовал например с помощью jquery сделать это легко и просто.

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $.post('http://mysite.ru/tpl/content.php',function(data){
  3.         $('#my_id').html();
  4. });
  5.  


И если поищете, то тут еще и таймаут можно сделать, и сообщить что мол так и так не получен ответ от сервера. А то что делаете вы во всех отношениях не правильно. Еще учтите тот факт что сервера на отдачу быстрый канал получают, а вот на прием канал гораздо хуже как правило.
 
 Top
Инсеин
Отправлено: 03 Августа, 2011 - 21:51:12
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Warning: file_get_contents(http://mysite.ru/tpl/content.php) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden

Пока не заглянул в хтмл кривой страницы не видел предупреждения )

Я так понимаю запрещён доступ к файлу !?! ... Но вот только теперь не ясно почему ... права на папку 755 и на файл 644 ... значит читать файл можно ... тем более, что временами всё-таки страница грузиться норм
(Добавление)
Arni пишет:
с помощью jquery сделать это легко и просто.


Ооо ... боюсь это будет ещё тяжелее )) ... ибо с jquery совсем не знаком ... пока что )


-----
Судя по ходу мыслей, вас постоянно преследуют глупости.
 
 Top
OrmaJever Модератор
Отправлено: 03 Августа, 2011 - 22:00:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Проблема в скрипте, file_get_contents не рекомендуется использовать с виртуальными адресами,нужно использовать curl


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
White
Отправлено: 03 Августа, 2011 - 22:04:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




Инсеин и все таки предпочтительней в таком случае импользовать file_get_contents с локальным путем, например (если из корневой папки сайта) file_get_contents(tpl/content.php).
и еще если вам надо вставить html файл целиком, почему бы не использовать include_once?


-----
if(time()>1356048000) die();
 
 Top
Arni
Отправлено: 03 Августа, 2011 - 22:12:31
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


Помог: 2 раз(а)




Инсеин пишет:
Ооо ... боюсь это будет ещё тяжелее )) ... ибо с jquery совсем не знаком ... пока что )


Я вам уже даже код дал. Как хотите, но вы там что-то не то делаете однозначно, а если этот файл еще и доступен вам в вашем хосте, то это вобще фиг знает что. Я думал вы с стороннего сайта хотите подгрузить.


Кстати может у хостера резолвит внутри сети хреновато? поробуйте через localhost чтоли. Если это ваш хост.

(Отредактировано автором: 03 Августа, 2011 - 22:13:08)

 
 Top
White
Отправлено: 03 Августа, 2011 - 22:17:57
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




Arni jquery для таких дел +100 килограмм лишнего трафика


-----
if(time()>1356048000) die();
 
 Top
Arni
Отправлено: 03 Августа, 2011 - 22:19:19
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


Помог: 2 раз(а)




White пишет:
+100 килограмм


89,4 КБ
 
 Top
OrmaJever Модератор
Отправлено: 03 Августа, 2011 - 23:01:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Arni пишет:
89,4 КБ

а теперь ещё добавим время парсинга javascript'а браузером и добавление в память кучи ненужных переменых, методов и это ради того чтобы использовать только 1 простенькую функцию.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Arni
Отправлено: 03 Августа, 2011 - 23:13:46
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


Помог: 2 раз(а)




OrmaJever пишет:
а теперь ещё добавим время парсинга javascript'а браузером и добавление в память кучи ненужных переменых, методов и это ради того чтобы использовать только 1 простенькую функцию.


Та будет вам, с таким подходом строить сайты образца прошлого века чтоли? Улыбка
 
 Top
White
Отправлено: 04 Августа, 2011 - 08:00:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




Arni JQuery - это фреймворк написанный на JS, любую из его функций возможно повторить на чистом JS, и если вы не используете хотя бы до 50% его функционала, то его использование вряд ли можно назвать оправданным.


-----
if(time()>1356048000) die();
 
 Top
Arni
Отправлено: 04 Августа, 2011 - 08:53:31
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


Помог: 2 раз(а)




White пишет:
Arni JQuery - это фреймворк написанный на JS, любую из его функций возможно повторить на чистом JS, и если вы не используете хотя бы до 50% его функционала, то его использование вряд ли можно назвать оправданным.


Как правило использую на всю катушку. И неоднократно убеждался, что попытки нагородить свои мемуары на js приводят к куда более большим временным затратам, тормозам, глюкам и весу.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB