通过http在本地文件上的php file_get_contents

时间:2012-11-01 17:31:25

标签: php file-get-contents

<?php

error_reporting(E_ALL);

if(file_get_contents("http://localhost/antispam/img.php") == false)
    print 'Error';
else
    print 'Read successfully';

?>

这始终会打印errorimg.php返回一个php生成的图像,但上面的代码无法读取。我的php.ini似乎很典型,并且没有显示错误,我缺少什么?

注意 allow_url_fopen已设置为On1

img.php

$code = 'default';
header("Content-Type: image/jpeg");
$im = @imagecreate(200, 50) or die ("Cannot Initialize new GD image stream");
$bgColour = imagecolorallocate($im, 0, 0, 0);
$textColour = imagecolorallocate($im, 233, 14, 91);

$wSpace = 30; $hSpace = 20;
$prevW = 0;

for($i = 0; $i < strlen($code); $i++)
{
    $w = $prevW + rand(20, $wSpace);
    imagestring($im, 5, $w, rand(0,$hSpace),  substr($code, $i, 1), $textColour);
    $prevW = $w;
}

imagejpeg($im);
imagedestroy($im);

1 个答案:

答案 0 :(得分:1)

检查你的php.ini: allow_url_fopen 需要激活,以便打开网址。 如果文件在localhost上,则不需要URL Wrapper。只需提供文件系统路径。

然后,文件需要由用户正在运行的php(在使用mod_php时为normaly apache用户,或者 在(f)cgi,fpm ...)

的情况下的php进程