PHP: две машины, разные результаты с помощью простого скрипта PHP - PullRequest
1 голос
/ 17 февраля 2011

Проблема: у нас большая кодовая база, которая работает неправильно.В процессе устранения мы выяснили, что следующие несколько строк вызывают проблему.

У нас есть небольшой идентичный скрипт на двух машинах (ключ доступа был изменен).

$url = "http://images.shrinktheweb.com/xino.php?stwsize=xlg&stwaccesskeyid=82322b94fs1c912&stwu=bfbf5&stwinside=1&stwurl=http%3A%2F%2Fwww.digitalartistshandbook.org%2Fnode%2F35";    
$lines = file($url);
print implode("", $lines);

Машина 1:

  • Этот скрипт отлично работает и печатает ожидаемый ответ.

Машина 2 (проблема):

  • Этот скрипт не работает и ничего не печатает на терминал.Он завершается без ошибок в php.log или в терминале.

Теперь с другим скриптом:

$url = "http://images.shrinktheweb.com/xino.php?stwsize=xlg&stwaccesskeyid=82322b94fs1c912&stwu=bfbf5&stwinside=1&stwurl=";
$lines = file($url);
print implode("", $lines);

У нас был странный случай работы URL с stwurlустановить, но не надежно Мы вернулись и попробовали некоторые из них, которые успешно извлекли эскизы и не смогли заставить их работать.

Настройки ошибок и fopen:

;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On

; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
allow_url_include = Off

которая является одной и той же машиной.Ошибка конфигурации:

error_reporting = E_ALL

и оба успешно входят в /tmp/php.log

Ответы [ 2 ]

0 голосов
/ 17 февраля 2011

Является ли какой-либо из этих параметров одноразовым? Попробуйте загрузить тот же URL ПЕРВЫЙ со второго компьютера, а затем с первого.

О, а также, даже если ради простоты вы могли бы реорганизовать

$lines = file($url);
implode('',$lines);

вещь с file_get_contents ($ url) для дальнейшего упрощения дела

0 голосов
/ 17 февраля 2011

Попробуйте получить доступ к URL из командной строки обоих компьютеров (используя curl или wget).Это может быть проблема с сетью (или брандмауэром).

...