Home  >  Article  >  Backend Development  >  How to read random files from a folder in php_PHP tutorial

How to read random files from a folder in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 09:52:09877browse

How to randomly read files from a folder in php

The example in this article describes how to randomly read files in php from a folder. Share it with everyone for your reference. The specific implementation method is as follows:

 ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

function RandomFile($folder='', $extensions='.*'){

// fix path:

$folder = trim($folder);

$folder = ($folder == '') ? './' : $folder;

// check folder:

if (!is_dir($folder)){ die('invalid folder given!'); }

// create files array

$files = array();

// open directory

if ($dir = @opendir($folder)){

// go trough all files:

while($file = readdir($dir)){

if (!preg_match('/^. $/', $file) and

preg_match('/.('.$extensions.')$/', $file)){

// feed the array:

$files[] = $file;

}

}

// close directory

closedir($dir);

}

else {

die('Could not open the folder "'.$folder.'"');

}

if (count($files) == 0){

die('No files where found :-(');

}

// seed random function:

mt_srand((double)microtime()*1000000);

// get an random index:

$rand = mt_rand(0, count($files)-1);

// check again:

if (!isset($files[$rand])){

die('Array index was not found! very strange!');

}

// return the random file:

return $folder . $files[$rand];

}

 

//用法演示:

// "jpg|png|gif" matches all files with these extensions

print RandomFile('test_images/','jpg|png|gif');

// returns test_07.gif

// ".*" matches all extensions (all files)

print RandomFile('test_files/','.*');

// returns foobar_1.zip

// "[0-9] " matches all extensions that just

// contain numbers (like backup.1, backup.2)

print RandomFile('test_files/','[0-9] ');

// returns backup.7

1

2 3

45 6 7 8 9 10
11
12
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
function RandomFile($folder='', $extensions='.*'){ // fix path: $folder = trim($folder); $folder = ($folder == '') ? './' : $folder; // check folder: if (!is_dir($folder)){ die('invalid folder given!'); } // create files array $files = array(); // open directory if ($dir = @opendir($folder)){ // go trough all files: while($file = readdir($dir)){ if (!preg_match('/^. $/', $file) and preg_match('/.('.$extensions.')$/', $file)){ // feed the array: $files[] = $file; } } // close directory closedir($dir); } else { die('Could not open the folder "'.$folder.'"'); } if (count($files) == 0){ die('No files where found :-('); } // seed random function: mt_srand((double)microtime()*1000000); // get an random index: $rand = mt_rand(0, count($files)-1); // check again: if (!isset($files[$rand])){ die('Array index was not found! very strange!'); } // return the random file: return $folder . $files[$rand]; } //Usage demonstration: // "jpg|png|gif" matches all files with these extensions print RandomFile('test_images/','jpg|png|gif'); // returns test_07.gif // ".*" matches all extensions (all files) print RandomFile('test_files/','.*'); // returns foobar_1.zip // "[0-9] " matches all extensions that just // contain numbers (like backup.1, backup.2) print RandomFile('test_files/','[0-9] '); // returns backup.7
I hope this article will be helpful to everyone’s PHP programming design. http://www.bkjia.com/PHPjc/1009821.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1009821.htmlTechArticleHow to randomly read files from a folder in php. This article describes how to randomly read files in php from a folder. . Share it with everyone for your reference. The specific implementation method is as follows: ? 1 2 3 4...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn