0

小さな問題があります。画像の色カスタマイズ コードがあり、RewriteRule を使用して短くします。

RewriteRule ^cc-(.*?)-(.*?)\.png$ cc.php?col1=$1&col2=$2 [L]

localhost/Gen/cc-1122ff-ffffff.png と入力すると、正常に開きます。しかし、この生成された画像に PHP でテキストを追加したい場合は、別の RewriteRule を使用します。

RewriteRule ^sig,(.*?),(.*?),(.*?),(.*?),([^,]+),(.*?),([^,]+)\.png$ test.php?nam=$6&font=$5.ttf&bg=$7.png&gn=$1&badg=$2&typ=$3&itm=$4 [L]

そして、次のリンクにアクセスします: localhost/Gen/sig,y,y,mem,no,Pixel,test,cc-1122ff-ffffff.png 次のエラーが表示されます:

Warning: imagecreatefrompng(cc-1122ff-ffffff.png): failed to open stream: No such file or directory in D:\Xampp\htdocs\Gen\test.php on line 31

2 番目の RewriteRule は、通常、localhost/Gen/sig,y,y,mem,no,Pixel,test,white.png で機能します。2 番目の RewriteRule は、最初の RewriteRule では機能しません。なんで?

4

1 に答える 1

1

imagecreatefrompngcc-1122ff-ffffff.pngURL が相対 URL の場合 ( など) 、HTTP 要求を作成しません。ファイルパスとして扱います。

のように絶対 URL にlocalhost/Gen/sig,y,y,mem,no,Pixel,test,http%3A%2F%2Flocalhost%2FGen%2Fcc-1122ff-ffffff.pngすると、imagecreatefrompng はそれをファイル パスではなく URL として扱います。

于 2012-10-10T18:36:19.330 に答える