2012-08-09 44 views
1

我想要的圖像從目錄顯示兩個隨機選擇圖像如何在div內顯示隨機選擇的圖像?

相反,img.names顯示

$dir = 'memb_area/captcha/imgs/'; 
$files = scandir($dir); 
$rand_keys = array_rand($files, 2); 
echo $files[$rand_keys[0]] . "\n"; 
echo $files[$rand_keys[1]] . "\n"; 

也試過:

echo '<img src="memb_area/captcha/imgs">' + 'echo $files[$rand_keys[0]] . "\n";' 

而且 - 這可能打印這些圖片在一個單獨的div在一個頁面上?

回答

3

+是不是一個有效的PHP連接字符。 .是。通過使用+,你是有效加入這兩個字符串,當其轉換爲整數,等同於0

這條線:
echo '<img src="memb_area/captcha/imgs">' + 'echo $files[$rand_keys[0]] . "\n";'

應該是:(更新)
echo "<img src=\"memb_area/captcha/imgs/".$files[$rand_keys[0]]."\">".PHP_EOL;

更新01:(OP的評論:但刷新後,經過兩次或三次 - 什麼都不顯示下一次刷新 - 圖像顯示...等等。

Scandir php.net(實施例#1)表示,:

Array 
(
    [0] => . 
    [1] => .. 
    [2] => bar.php 
    [3] => foo.txt 
    [4] => somedir 
) 

所以,也許你的scandir($foo)與具有無形目錄因爲它們的值的兩個鍵返回的數組。

試試這個代碼,讓我知道:

$dir = 'memb_area/captcha/imgs/'; 
$files = scandir($dir); 

if($files[0] == ".") unset($files[0]); 
if($files[1] == "..") unset($files[1]); 

$files = array_values($files); // reset array keys back to 0,1,2.. 

$rand_keys = array_rand($files, 2); 
echo $files[$rand_keys[0]] . "\n"; 
echo $files[$rand_keys[1]] . "\n"; 

echo "<img src=\"memb_area/captcha/imgs/".$files[$rand_keys[0]]."\">".PHP_EOL; 
+0

'警告:在輸入非預期的字符: ''」(ASCII = 39)的狀態= 1 ...' – Alegro 2012-08-09 12:31:34

+0

嘗試更新的代碼。我修復了單引號和雙引號錯誤匹配。 – DavChana 2012-08-09 12:35:10

+0

@ Dawinder,你的代碼現在部分工作。圖像顯示,但刷新後 - 每隔兩秒 - 沒有任何顯示。 – Alegro 2012-08-09 12:43:12

1

我覺得可能在路徑出錯。
試試這個:
echo '<img src="memb_area/captcha/imgs/">' + 'echo $files[$rand_keys[0]] . "\n";'

+0

@桑迪普,結果是「0」 – Alegro 2012-08-09 12:24:01

+0

你確定你使用了正確的路徑。檢查路徑中使用瀏覽器 – sandeep 2012-08-09 12:26:43

+0

有效@Alegro:嘗試前綴路徑以「/」 .. – sandeep 2012-08-09 12:27:43