2017-05-16 4 views
0

imagepngとimagecopyresizedを持つランダムなpngファイルを生成するphpファイル "builder.php"があります。すべてのリロードが異なるpngを生成しています。私は生成された写真のいくつかをhtmlで表示して、良いものと善していないものを表示したい。良いものはpngとして保存し、悪いものは保存しないでください。PHPでランダムなPNGを作成し、htmlで出力する

builder.php

<?php 

... 
$mix=getmix($link); 
header('Content-Type: image/png'); 

    $base = imagecreatefrompng("base.png"); 
    $logo = imagecreatefrompng("fs_logo_line.png"); 
    $nr1 = imagecreatefrompng("template_women_number_1.png"); 

    $pos1 = imagecreatefrompng($mix['jhjk']['img']); 
    $pos2 = imagecreatefrompng($mix['hkjh']['img']); 

    imagecopyresized($base,$pos1,0, 0, 0, 0, 501, 697, 501, 697); 
    imagecopyresized($base,$pos2,451, 0, 0, 0, 485, 697, 485, 697); 
    imagecopyresized($base,$nr1,20, 20, 0, 0, 39, 38, 39, 38); 
    imagecopyresized($base,$logo,0, 1136, 0, 0, 1200, 64, 1200,64); 

    imagepng($base); 
    imagedestroy($base); 
    imagedestroy($logo); 
?> 

$ミックスは、SQLデータを持つ変数の配列です。 evey reloadで$ mixがシャッフルされます。イメージがロードされるべき

htmlページ:

<!DOCTYPE html> 
    <head> 
    </head> 
    <body> 
    <img src="builder.php" /> 
    <img src="builder.php" /> 
    </body> 
</html> 

問題は、builder.phpはただ一度だけロードされているようですし、二度同じ写真を表示するということです。 builder.phpをスタンドアロンでロードすると、すべてのリロードが新しいピクチャを生成します。私はbuilder.phpを変更するためにget/postで作業することができますが、この場合は必要ないでしょうか?

答えて

4

考えてみましょう。PHPをサーバ上で実行するときに、builder.phpがリクエストされてキャッシュされているのは1つだけです。この問題を解決する一つの方法は、あなたのイメージの元の文字列にランダムな文字列を追加することです:

<img src="builder.php?t=<?php echo uniqid(); ?>" /> 

今builder.phpへの各呼び出しが一意であり、ランダムな画像を返す必要があります。

+0

かわいいです。それを考えなかったのです! – RiggsFolly

+0

私は、AJAXと同様のテクニックを使って、ランダムな返信を確実にするために、@ RiggsFolly –

+0

タイムスタンプとは異なる@swapfileですか? –

関連する問題