images/tipsというディレクトリが1つあります。PHPを使ってディレクトリから画像をランダムに取得する方法
このディレクトリには、変更できる画像がたくさんあります。
私は、PHPスクリプトがディレクトリを読んで、画像を見つけて、ランダムな画像を選ぶために見つかった画像から探して欲しいです。
これはどのように行うのですか?
images/tipsというディレクトリが1つあります。PHPを使ってディレクトリから画像をランダムに取得する方法
このディレクトリには、変更できる画像がたくさんあります。
私は、PHPスクリプトがディレクトリを読んで、画像を見つけて、ランダムな画像を選ぶために見つかった画像から探して欲しいです。
これはどのように行うのですか?
$imagesDir = 'images/tips/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)]; // See comments
あなたは便利な場合は間違いなくあなたのためにそれを使用して、このコードに複数1.
$images = glob('images/tips/*');
return $images[rand(0, count($images) - 1)];
ただし、同じ画像が連続して2回選択されないことは保証されません。
保険を追加すると、ランダム性が損なわれます。バグを導入する可能性もあります。 – wallyk
私はglob()関数が存在するという手がかりがありませんでした。ニース。 – keithjgrant
ロードフォルダは:ディレクトリからファイル/画像のうち
$folder = opendir(images/tips/);
ビルドテーブル:
$i = 0;
while(false !=($file = readdir($folder))){
if($file != "." && $file != ".."){
$images[$i]= $file;
$i++;
}
}
ランダムピックアップ:
$random_img=rand(0,count($images)-1);
表示をページ上:
echo '<img src="images/tips'.$images[$random_img].'" alt="" />';
希望すると助かります。もちろん<?php ?>
に同封してください。
2つの問題。 'ヒント 'の後に別のスラッシュは必要ないのですか? なぜ、 '$ images [] = $ file'だけでなく、カウンタを忘れるのですか? – mpen
<?php
foreach (glob("gallery/*") as $filename) {
echo '<li><a href="'.$filename.'" title=""><img src="'.$filename.'" alt="" /></a> </li>';
}
?>
外観を得るためにarray_rand()
に第2引数を送信することができます。フォルダからすべてのファイルを読み込み、上記の形式で出力します。私はこのコードをライトボックスで使うようにしました。
function get_rand_img($dir)
{
$arr = array();
$list = scandir($dir);
foreach($list as $file)
{
if(!isset($img))
{
$img = '';
}
if(is_file($dir . '/' . $file))
{
$ext = end(explode('.', $file));
if($ext == 'gif' || $ext == 'jpeg' || $ext == 'jpg' || $ext == 'png' || $ext == 'GIF' || $ext == 'JPEG' || $ext == 'JPG' || $ext == 'PNG')
{
array_push($arr, $file);
$img = $file;
}
}
}
if($img != '')
{
$img = array_rand($arr);
$img = $arr[$img];
}
$img = str_replace("'", "\'", $img);
$img = str_replace(" ", "%20", $img);
return $img;
}
echo get_rand_img('images');
フォルダと '画像' を交換してください。
アレクサとの合意。 シンプルな機能を使用してください。
function RandImg($dir)
{
$images = glob($dir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)];
return $randomImage;
}
$the_image = RandImg('images/tips/');
echo $the_image;
実際には、 $ randomImage = $ images [array_rand($ images)];を実行する必要があります。 マニュアルから: "array_rand()はランダムなエントリのキーを返します。" – JAL
おかげさまで、完璧に働いてくれてありがとうございます このwebisteは助けを得るのに最適です。 コメントが投稿されたときや回答が与えられたときに3つの答えがあり、メールが届かなかったので通知ボックスをチェックしてもメールが届かないというオプションがありますか? –
@ Mirror51 on meta.stackoverflow.com – alex