+
は有効な PHP 連結文字ではありません。.
は。を使用する+
と、これら 2 つの文字列を効果的に追加できます。整数に変換すると、 と等しくなり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 のコメント:ただし、更新後、2、3 回後 - 何も表示されません。次の更新 - 画像が表示されます... など。 )
Scandir php.net (例 #1) は次のように述べています。
Array
(
[0] => .
[1] => ..
[2] => bar.php
[3] => foo.txt
[4] => somedir
)
したがって、値として非表示のディレクトリscandir($foo)
を持つ 2 つのキーを持つ配列を返している可能性があります。
このコードを試して、私に知らせてください:
$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;