ソースコードを貼り付けてください:
<?phprequire_once 'string.func.php';function verifyImage($type = 1, $length = 4, $pixel = 0, $line = 0, $session_name = 'verify') { session_start (); // 创建画布 $width = 80; $height = 28; $image = imagecreatetruecolor ( $width, $height ); $white = imagecolorallocate ( $image, 255, 255, 255 ); $black = imagecolorallocate ( $image, 0, 0, 0 ); // 用填充矩形填充画布 imagefilledrectangle ( $image, 1, 1, $width - 2, $height - 2, $white ); $chars = buildRandomString ( $type, $length ); $_SESSION [$session_name] = $chars; $fontfiles = array ( "ARIAL.TTF", "CALIBRI.TTF" ); for($i = 0; $i < $length; $i ++) { $size = mt_rand ( 14, 18 ); $angle = mt_rand ( - 15, 15 ); $x = 5 + $i * $size; $y = mt_rand ( 20, 26 ); $fontfile = "../fonts/" . $fontfiles[mt_rand(0, count($fontfiles) - 1)]; $color = imagecolorallocate ( $image, mt_rand ( 50, 90 ), mt_rand ( 80, 200 ), mt_rand ( 90, 180 ) ); $text = substr ( $chars, $i, 1 ); imagettftext ( $image, $size, $angle, $x, $y, $color, $fontfile, $text ); } // 判断是否加干扰点 if ($pixel) { for($i = 0; $i < $pixel; $i ++) { imagesetpixel ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $black ); } } // 判断是否加干扰线 if ($line) { for($i = 0; $i < $line; $i ++) { $color = imagecolorallocate ( $image, mt_rand ( 50, 90 ), mt_rand ( 80, 200 ), mt_rand ( 90, 180 ) ); imageline ( $image, mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), mt_rand ( 0, $width - 1 ), mt_rand ( 0, $height - 1 ), $color ); } } header ( "Content-Type:image/gif" ); imagegif ( $image ); imagedestroy ( $image );}
試してみたところ、画像のファイルをプロジェクトのサブフォルダーに移動すると表示できるようになりました。プロジェクトのルートディレクトリに直接配置したため、取得した画像が文字化けしていました。具体的な原因はわかりません。理由がわかる方教えていただけると嬉しいです!
verifyImage 関数が実行されていないか、スペルが間違っています
string.func.php のロードに失敗します
buildRandomString 関数名のスペルが間違っています
フォント ファイルが存在しません
verifyImage 関数が実行されていないか、スペルが間違っていますスペルが間違っています
string.func.php のロードに失敗します
buildRandomString 関数名のスペルが間違っています
フォント ファイルが存在しません
$fontfile = " ../fonts/" . $fontfiles[mt_rand(0, count($fontfiles) - 1)];
場所が変わるとファイルが見つからなくなります
フォントファイルを置くことができませんどこにでもあるの?
$fontfile = " ../fonts/" . $fontfiles[mt_rand(0, count($fontfiles) - 1)];
場所が変わるとファイルが見つかりません
フォントファイルを置くことができませんどこにでもいますか?
呪いを解くように神にお願いしてください!
数日経ちましたが、また誰も来なかったら、投稿をやめるつもりです。 ... ファイルはどこにでもありますか?
いいえ、私のフォント ファイルはすべて fonts フォルダーに配置されており、パスが間違っているはずはありません。
$fontfile = "../fonts/" であることがわかります。 $fontfiles[mt_rand(0, count($fontfiles) - 1)]; これは実際には相対パスですか? ...フォントファイルをあちこちに置いていませんか?
いいえ、私のフォント ファイルはすべて fonts フォルダーに配置されており、パスが間違っているはずはありません。