2012-04-16 63 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函數!很有用。再次感謝! – 2012-04-16 19:03:39

4

該代碼似乎很奇怪,但不知道更多,我想我不會評論它。

對於實際的問題,你可以使用dirnamebasename

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

這是不對的。你有一個循環的變量定義,定義應該只發生一次。什麼是變量$ r3 ['pathURLMult']的示例值? (btw,$ r3,$ e3,$ ped ...我確定你可以找到更好的變量名稱;)

+0

執行可能僅僅是1個記錄的查詢,我見過經驗的程序員使用,而()構建反正他們不止一次。 – 2012-04-16 14:11:41

+0

我知道......但在這種情況下,我真的需要多次定義這個變量! – 2012-04-16 18:23:05

+0

不,我的意思是你不能重新定義你已經定義的東西()。 PHP會發出通知,並且常量將保留您分配給它的第一個值。定義是永久的,直到腳本結束。 – smassey 2012-04-17 09:17:36