2012-04-16 4 views
0

私は、フォルダのパスを示すためにdefineを使用する必要があるサム生成スクリプトを持っています...私は/images/galleries/name/imagem.jpgの形式でmySQL fildからピックしますこの乱雑な可能性のある最良の代替手段はどれですか?

私はこれをnoobの方法でやっていると思います...これを行うにはより良い方法が必要です!

while($r3 = mysql_fetch_array($e3)){ 
    $path = $r3['pathURLMult']; 
    $ped = explode("/", $path); 
    $path2 = $ped[0] . "/" . $ped[1] . "/" . $ped[2] . "/"; 
    define("FOLDER_IMAGES","$path2"); 
    $imagem = $ped[3]; 
    echo "<img src=\"getimage.php?img=$imagem&w=280&h=180\" width=\"280\" height=\"180\" />"; 
} 

誰かが助けることができますか?事前に感謝します

答えて

2

pathinfo()を使用してください。

これを試してみてください:

while($r3 = mysql_fetch_array($e3)){ 
    $pathinfo = pathinfo($r3['pathURLMult']); 
    define("FOLDER_IMAGES",$pathinfo['dirname']); 
    echo "<img src=\"getimage.php?img=".$pathinfo['filename']."&w=280&h=180\" width=\"280\" height=\"180\" />"; 
} 
+0

ありがとう!私が望むように働き、コードを多く簡略化しました!私はpathinfo関数も知らなかった!非常に便利。再度、感謝します! –

4

そのコードは非常に奇妙に見えますが、私がそれについてコメントしないと思っています。

実際の質問に対しては、dirnamebasenameを使用することができます。

$path = dirname($r3['pathURLMult']); 
$imagem = basename($r3['pathURLMult']); 
1

これは間違っています。変数定義を持つループ内で定義することができます。定義は一度だけ行う必要があります。変数$ r3 ['pathURLMult']の値の例は何ですか? (btw、$ r3、$ e3、$ ped ...より良い変数名が見つかるはずです)

+0

ちょうど1つのレコードの可能性が実行されたクエリ、私が見てきた経験の浅いプログラマはしばらく()を使用して何度もとにかく多くの彼らのために構築します。 –

+0

私は知っています...しかし、この場合、私は本当にこの変数を複数回定義する必要があります! –

+0

いいえ、私が意味することは、定義済みのものを再定義できないということです。 PHPはNOTICEを投げ、定数はあなたが割り当てた最初の値を保持します。定義はスクリプトの最後まで永続的です。 – smassey