Menghasilkan nama gambar acak php

Misalkan kita memiliki direktori yang berisi beberapa gambar dan kita ingin menampilkan salah satu gambar tersebut di halaman web kita. Gambar yang akan ditampilkan di halaman web akan dipilih secara acak dari direktori. Kami akan melakukan ini di PHP

Fungsi PHP yang mudah digunakan untuk menampilkan gambar acak dari direktori tertentu

Mari ikuti langkah-langkahnya

Makan dulu, dapatkan nama direktori gambar dalam variabel dan inisialisasi array yang akan berisi semua nama gambar nanti. Setelah itu, periksa apakah direktori tersebut ada atau tidak menggunakan PHP file_exists dan fungsi is_dir

$dir = 'my_directory';
// Initiate array which will contain the image name
$imgs_arr = array();

// Check if image directory exists
if (file_exists($dir) && is_dir($dir) ) {
    // Run code if the directory exists
 }

Kode yang akan dijalankan jika direktori ada diberikan di bawah ini

// Get files from the directory
$dir_arr = scandir($dir);
$arr_files = array_diff($dir_arr, array('.','..') );

foreach ($arr_files as $file) {
  //Get the file path
  $file_path = $dir."/".$file;
  // Get extension
  $ext = pathinfo($file_path, PATHINFO_EXTENSION);

  if ($ext=="jpg" || $ext=="png" || $ext=="JPG" || $ext=="PNG") {
    array_push($imgs_arr, $file);
  }
  
}

$count_img_index = count($imgs_arr) - 1;
$random_img = $imgs_arr[rand( 0, $count_img_index )];
_

Pada kode di atas, kita telah menggunakan fungsi PHP scandir() untuk mengambil semua file dalam direktori. Kemudian kami menghapus indikator direktori induk dan anak menggunakan fungsi PHP array_diff

Kemudian kami menjalankan foreach loop untuk mendapatkan setiap nama file dari direktori kami. Di sini kita mendapatkan semua file yang mungkin juga bukan gambar. Jadi kami telah memeriksa ekstensi. Dalam kondisi kami, kami hanya mengambil file gambar tipe PNG dan JPG dan mendorongnya ke array kami yang kami mulai menggunakan fungsi array_Push

Fungsi PHP yang mudah digunakan untuk menampilkan gambar acak dari direktori tertentu

Daftar file dari direktori yang memiliki ekstensi tertentu di PHP

Semua file gambar sekarang disimpan di array kami. Kami telah mengurangi jumlah total indeks larik dalam larik dengan 1 sehingga angka indeks maksimum cocok dengan angka tersebut. Setelah itu, kami mengambil indeks array acak antara 0 dan jumlah maksimum untuk mendapatkan nama file gambar

Sekarang, di bawah ini adalah kode yang akan menampilkan gambar acak dari direktori di halaman web kita

<img src="<?php echo $dir."/".$random_img ?>">

Kode lengkap untuk menampilkan gambar acak dari direktori

Di bawah ini adalah kode lengkap yang akan menampilkan gambar di halaman web kita yang dipilih secara acak dari direktori tertentu

Baris kode ini memfasilitasi tampilan acak n jumlah gambar (image_1.png,

<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
0,
<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
1, dll. ) terletak di direktori target (
<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
_2). Bagi Anda yang mengerti cara kerjanya, bagus. Itu hampir seluruh tujuan artikel ini. Namun, bagi mereka yang menghargai penjelasan lebih lanjut, mari kita periksa teknik ini sedikit lebih detail (Anda telah diperingatkan. )

Memperbarui. Lihat tutorial terkait saya, Acak dengan PHP »

Langkah 1. Siapkan gambar Anda

Siapkan sejumlah gambar dari jenis file yang sama (mis. g. ,

<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
3,
<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
4,
<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
5, dll. ) dan beri nama secara numerik. Anda dapat menamai gambar Anda apa saja yang Anda suka, asalkan satu-satunya perbedaan antara setiap nama adalah satu digit angka. Selanjutnya, pastikan bahwa digit numerik dimulai dengan nol dan lanjutkan ke jumlah total gambar dalam kumpulan. Misalnya, dengan asumsi Anda memiliki tiga gambar
<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
_3, salah satu dari urutan nama berikut dapat diterima

  • image_1.png
  • <img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
    0
  • <img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
    1

atau

  • <img src="http://domain.tld/path/random/" />
    0
  • <img src="http://domain.tld/path/random/" />
    1
  • <img src="http://domain.tld/path/random/" />
    2

atau

  • <img src="http://domain.tld/path/random/" />
    3
  • <img src="http://domain.tld/path/random/" />
    4
  • <img src="http://domain.tld/path/random/" />
    5

atau apa saja, asalkan mengikuti pola umum ini. Dengan sedikit imajinasi, bahkan dimungkinkan untuk menggunakan gambar dari jenis file yang berbeda, tetapi saya akan membiarkannya sebagai latihan untuk pembaca saya. ;)

Langkah 2. Siapkan kodenya

Setelah Anda memiliki rangkaian gambar yang diberi nama dengan benar, unggah ke server Anda dan keluar dengan editor teks favorit Anda dan bersiap untuk menulis beberapa kode. Sekali lagi, berikut adalah contoh kode akhir yang akan kita gunakan untuk menampilkan gambar acak kita

<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />

Bagaimana kita bisa sampai ke sana dari sini? . Pertama, tentukan jalur direktori gambar acak Anda. Untuk tutorial ini, kami akan menganggap bahwa gambar berada di

<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />
2. Dengan informasi ini, kita dapat mulai menulis kode pengacakan kita sebagai berikut

<img src="http://domain.tld/path/random/" />

Itu yang kita ketahui selama ini. Sekarang, anggaplah kita menggunakan format “

<img src="http://domain.tld/path/random/" />
7” untuk nama file Anda, di mana ________ 35 ________ sama dengan nomor gambar tertentu. Dengan informasi ini, kami dapat melanjutkan kode kami sebelumnya

<img src="http://domain.tld/path/random/image_n.png" />

Tentu saja, kita sekarang dapat menggunakan PHP untuk mengganti n dengan angka yang dibuat secara acak, mulai dari

<img src="http://domain.tld/path/random/image_n.png" />
0 hingga jumlah total gambar dalam direktori, misalnya
<img src="http://domain.tld/path/random/image_n.png" />
1 untuk contoh ini. Setelah mengganti n dengan fungsi pengacakan PHP kami, kami memiliki

<img src="http://domain.tld/path/random/image_<?php $random = rand(1,3); echo $random; ?>.png" />

Jadi, untuk secara dinamis mengacak n dalam contoh kita sebelumnya, kita menggunakan sedikit kebahagiaan PHP ini

<?php $random = rand(1,3); echo $random; ?>

di mana

<img src="http://domain.tld/path/random/image_n.png" />
1 mewakili jumlah total file dalam direktori gambar acak. Dengan ini, kami membuat dan menggemakan satu nomor acak, sehingga mengubah nama file dengan setiap pemuatan halaman. Bagus

Langkah 3. Jadikan semuanya manis

Last but not least, kita perlu melengkapi kode kita dengan beberapa detail penting. Pertama, Anda ingin menambahkan atribut

<img src="http://domain.tld/path/random/image_n.png" />
5 (dan mungkin juga atribut
<img src="http://domain.tld/path/random/image_n.png" />
6)

<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" />

Dan terakhir, jika semua gambar Anda memiliki ukuran yang sama, sebaiknya fasilitasi rendering browser dengan menentukan

<img src="http://domain.tld/path/random/image_n.png" />
7 dan
<img src="http://domain.tld/path/random/image_n.png" />
8, misalnya
<img src="http://domain.tld/path/random/image_n.png" />
9 piksel persegi dalam kasus ini

<img src="http://domain.tld/path/random/image_<?php $random = rand(1,n); echo $random; ?>.png" alt="[ Random Image ]" height="50" width="50" />

Tentu saja, jika ukuran gambar acak Anda tidak seragam, abaikan saja langkah terakhir ini. Bagaimanapun, setelah Anda selesai menambahkan atribut yang diperlukan, kode pengacakan selesai. Sekarang saatnya mengunggah dokumen Anda dan memeriksa apakah semuanya berfungsi sebagaimana mestinya. Jika semuanya berbaris sebagaimana mestinya, halaman Anda akan menampilkan gambar acak pada setiap kunjungan

Jika, karena alasan tertentu, hal-hal tidak benar-benar "diklik" seperti yang diharapkan, ulangi setiap langkah dan pastikan bahwa setiap detail telah diperhitungkan. Anda akan terkejut berapa kali saya telah menguji sesuatu seperti ini hanya untuk menemukan bahwa beberapa detail yang sangat kecil tidak pada tempatnya. Periksa jalur file, nama file, skrip PHP — semuanya. Meskipun saya tidak berharap ada orang yang mengalami kesulitan dengan kode ini (bagaimanapun, ini cukup sederhana), saya ingin membuat semuanya sejelas mungkin untuk memfasilitasi keberhasilan penerapan teknik ini.

Bagaimana cara menghasilkan nama file acak di PHP?

= $karakter[rand(0,strlen($karakter))]; . $fileName = generateName(); //what we need to do is scan the directory for existence of the current filename $files = scandir(dirname(__FILE__).

Bagaimana cara mengacak gambar di PHP?

PHP - Menampilkan Gambar Acak dari Folder. .
Langkah-1) Pertama-tama tentukan jalur ke folder gambar. $dir_path = "gambar";
Langkah-2) Selanjutnya baca semua nama file ke dalam array. Untuk ini kita harus menggunakan metode scandir(). .
Langkah-3) Sekarang pilih file gambar acak dari array. .
Langkah-4) Akhirnya tampilkan gambar yang dipilih di browser