1
<?php

error_reporting(E_ALL);

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

?>

これは常に出力しerrorます。img.phpPHPで生成された画像を正常に返しますが、上記のコードでは読み取ることができません。私のphp.iniは典型的なようで、エラーは表示されません。何が欠けていますか?

注記 allow_url_fopenはすでに および に設定されていOnます1

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);
4

1 に答える 1

1

php.ini を確認してください: URL を開くには、 allow_url_fopenを有効にする必要があります。ファイルが localhost にある場合、URL ラッパーは必要ありません。ファイルシステムのパスを指定するだけです。

次に、php を実行しているユーザー (mod_php を使用する場合は通常は apache ユーザー、(f)cgi、fpm の場合は php プロセス) がファイルを読み取れるようにする必要があります。

于 2012-11-01T17:42:01.567 に答える