Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 021 990 раз!

Форум

Добро пожаловать, Гость!

file_get_contents():

Обсуждение проблем в работе программного комплекса
Grand228
Сообщения: 1
C нами: 11 мес 23 дня

Непрочитанное сообщение Grand228 » 17 дек 2015, 16:48

Доброго времени суток! Возникла проблема - не выводятся отзывы с digiseller. Дело в том, что когда устанавливаю скрипт на хостинге, с горем по полам все выводятся, но на когда запускаю на локалке через open-server, не работает. Уже сравнивал php версии, на моем хостинге установлена 5.4, в open-server ставил такую же, в конечном результате ошибка

Warning: file_get_contents(): in D:\OpenServer\domains\localhost\goods_info.php on line 265

Warning: file_get_contents(http://localhost\/resp_block.php?id_goods=1900521): in D:\OpenServer\domains\localhost\goods_info.php on line 265


На хостинге такой ошибки нет, вот сам код, на который жалуется, и можно считать неработоспособным на OpenServer.

   <div id=\"con_d_tab3\" class=\"di_tabs\">
   <div class=\"info\">  --> \n";
   $result .= "<div class=\"digiseller-reviews_content\">\n";
   $opts = array(
   'http'=>array(
   'method'=>"GET",
   'header'=>"Accept-language: en\r\n" .
   "User-Agent: Opera\r\n"
   )
   );
   $context = stream_context_create($opts);                     
   if($resp_block = file_get_contents("http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"])."/resp_block.php?id_goods=".$_GET["id"], false, $context)){
   $result .= $resp_block;}
   $result .= "</div>\n";
   $result .=    "      
   </div>
   </div>
   </div>
 </div>\n";


Вот картинка, что бы можно было по строкам понять

Изображение


Подскажите пожалуйста, как быть в данной ситуации? Просто хостинг хостингом, но мне нужно что бы оно работало и на open-server.

Аватара пользователя
DelphinPRO
Сообщения: 637
C нами: 4 года 10 мес
Откуда: Самара
Контакты:

Непрочитанное сообщение DelphinPRO » 26 дек 2015, 17:49

dirname возвращает пусть в файловой системе. В windows разделителем директорий является символ '\', тогда как в unix - '/'. D.ybrct этот разделитель совпадает с разделителем в URI поэтому работает.

Перепишите этот код без использования любых функций работы с файловой системой. Это не правильно в принципе. URL и ФС - это совершенно не одно и то же.


Вернуться в «Ошибки Open Server»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей