PHP:两台机器,不同的结果和简单的PHP脚本

时间:2011-02-17 12:35:04

标签: php file fopen

问题:我们有大量的代码库无法正常工作。我们通过淘汰过程认为以下几行引起了这个问题。

我们在两台机器上有一个相同的小脚本(访问密钥已被修改)。

$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 :(得分:0)

尝试从两台计算机的命令行访问URL(使用curl或wget)。它可能是网络(或防火墙)问题。

答案 1 :(得分:0)

这些参数中的任何一个仅供一次使用吗?尝试使用第二台机器加载相同的URL FIRST,然后使用第一台机器加载。

哦,而且,即使只是为了简单起见,你也可以重构

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

使用file_get_contents($ url)来进一步简化此事