红穆笔记
首頁 語言筆記 php 隨機指定文件夾內的一個文件,並返回文件名稱
語言筆記 PHP

php 隨機指定文件夾內的一個文件,並返回文件名稱

php 随机指定文件夹内的一个文件,并返回文件名称

可以隨機獲取指定目錄下一個文件名的 PHP 函數:

🔒 隱藏內容:登錄後可查看

function getRandomFileName($dir) {
  // 獲取目錄下所有文件
  $files = glob($dir . '/*.*');

  if (empty($files)) {
    return null;
  }

  // 隨機選擇一個文件
  $file = $files[array_rand($files)];

  // 返回文件名
  return basename($file);
}

該函數接受一個參數 $dir,表示要隨機選擇文件的目錄路徑。函數首先使用 glob() 函數來獲取指定目錄下所有文件的文件路徑,然後使用 array_rand() 函數從中隨機選擇一個文件。最後,函數使用 basename() 函數獲取選中文件的文件名,並返回。

如果指定目錄下沒有文件,則該函數會返回 null

你可以通過以下方式調用該函數:

$dir = '/path/to/files';
$filename = getRandomFileName($dir);

if ($filename !== null) {
  echo $filename;
} else {
  echo '指定目錄下沒有文件。';
}

其中,/path/to/files 是要隨機選擇文件的目錄路徑。調用函數後,函數會隨機選擇一個文件並返回其文件名。如果指定目錄下沒有文件,則函數會返回 null

二次需求

我想一次性返回多個文件名!

🔒 隱藏內容:登錄後可查看

function getRandomFileNames($dir, $num) {
  // 獲取目錄下所有文件
  $files = glob($dir . '/*.*');

  if (empty($files)) {
    return null;
  }

  $count = count($files);

  // 如果文件數量不足 $num,則直接返回所有文件名
  if ($count <= $num) {
    $fileNames = array_map('basename', $files);
    return $fileNames;
  }

  // 隨機選擇 $num 個文件
  $randomIndexes = array_rand($files, $num);

  // 獲取選中文件的文件名
  $fileNames = array();
  foreach ($randomIndexes as $index) {
    $fileNames[] = basename($files[$index]);
  }

  return $fileNames;
}

該函數接受兩個參數,分別是目錄路徑 $dir 和要獲取的文件數量 $num。如果目錄下沒有任何文件,則返回 null。如果文件數量不足 $num,則直接返回目錄下所有文件的文件名。

如果文件數量足夠,則從所有文件中隨機選擇 $num 個文件,然後將選中文件的文件名放入一個數組中返回。

你可以通過以下方式調用該函數:

$dir = '/path/to/directory';
$num = 3;
$fileNames = getRandomFileNames($dir, $num);
print_r($fileNames);

其中,$dir 是目錄路徑,$num 是要獲取的文件數量。函數將返回一個包含隨機獲取的文件名的數組。

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

PHP ob函数记录

PHP ob函數記錄 語言筆記 PHP

下面3個函數的用法 ob_get_contents(); ob_end_clean(); ob_start(); 可以藉助這幾個函數實現緩衝本地文件,以及執行本地腳本代碼。 使用ob_start()把輸出的代碼存到緩衝區,頁面不會顯示出來; 然後用ob_get_contents得到緩衝區的數據。 o…
👁 141
PHP preg

PHP preg 語言筆記 PHP

preg_match_all 函數用於執行一個全局正則表達式匹配。preg_match_all() 語法int preg_match_all ( string $pattern , string $subject [, array &amp;$matches [, int $flags = PREG…
👁 169
PHP 三元运算符与if的详解

PHP 三元運算符與if的詳解 語言筆記 PHP

三元運算符語條件 ? 結果1 : 結果2 說明:問號前面的位置是判斷的條件,如果滿足條件時結果1,不滿足時結果2。本文對三元運算符和if...else...進行對比詳解,希望對大家有所幫助。今天在改論文在線的時候遇到了一個語句看不懂:$if_summary = $row['IF_SUMMARY']=…
👁 189
PHP强制转换类型

PHP強制轉換類型 語言筆記 PHP PHP採集 PHP與mysql

獲取數據類型1.如果想查看某個表達式的值和類型,用var_dump()。 2.如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。3.要查看某個類型,不要用 gettype(),而用is_type() 函數。字符串轉換爲數值當一個字符串被當作數字來求值時,根據以下規則來決定結果…
👁 232
php 字符串中是否包含指定字符串的多种方法

php 字符串中是否包含指定字符串的多種方法 語言筆記 PHP

strstrstrstr() 函數搜索一個字符串在另一個字符串中的第一次出現。該函數返回字符串的其餘部分(從匹配點)。如果未找到所搜索的字符串,則返回 false。代碼如下:&lt;?php $email = 'user@example.com'; $domain = strstr($email, …
👁 138

推薦閱讀

响应式广告设计创意公司网站模板 0243

響應式廣告設計創意公司網站模板 0243 實用收藏 易優模板

此套eyoucms響應式模板適用於廣告設計與創意公司,設計風格創意視覺,能夠展示廣告設計作品、創意案例、品牌策劃及服務內容。有助於廣告公司在線上展示專業實力,吸引品牌客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優C…
👁 42
(自适应手机端)宽屏蓝色大气的机械齿轮类网站pbootcms模板 响应式五金轴承加工制造网站源码下载 0338

(自適應手機端)寬屏藍色大氣的機械齒輪類網站pbootcms模板 響應式五金軸承加工製造網站源碼下載 0338 實用收藏 pbootcms模板

本套自適應手機端的寬屏藍色機械齒輪與五金軸承加工製造PbootCMS網站模板。設計風格寬屏大氣,專業精密,適合展示齒輪、軸承等工業產品。有助於機械製造企業在線上展示技術實力,吸引工業客戶。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5…
👁 57
帝国工具箱 V1.0

帝國工具箱 V1.0 實用收藏 帝國插件

作爲一個經常玩帝國cms的站長來說,很多時候都會感覺到某些操作異常的麻煩! 比如說,我想修改一下帝國數據表前綴! 比如說,我採集的文章,我想批量修改縮略圖! 比如說,採集的文章裏,圖片失效了,我想重新隨機換一下圖片! 比如說,我想批量清除帝國數據庫裏面其他多餘的表! 比如說,帝國cms的後臺忘記了密…
👁 443
响应式网络设计广告设计公司网站模板 0244

響應式網絡設計廣告設計公司網站模板 0244 實用收藏 易優模板

一款針對網絡設計與廣告設計公司的eyoucms響應式網站模板。設計風格創意專業,能夠展示網站設計、廣告創意、品牌視覺及案例作品。有助於設計公司在線上展示實力,吸引企業客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優C…
👁 48
(自适应手机端)居家用品纸盘纸盒纸杯卫生纸巾生产网站pbootcms模板 生活日用品生产厂家网站源码下载 0339

(自適應手機端)居家用品紙盤紙盒紙杯衛生紙巾生產網站pbootcms模板 生活日用品生產廠家網站源碼下載 0339 實用收藏 pbootcms模板

一款自適應手機端的居家用品紙盤紙杯與生活日用品生產PbootCMS網站模板。設計風格清新實用,適合展示紙製品、一次性餐具及日用百貨產品。有助於日用品生產廠家在線上展示產品線,拓展批發渠道。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5…
👁 53
PHP删除指定目录下面的所有文件

PHP刪除指定目錄下面的所有文件 語言筆記 PHP

可以使用PHP的glob()函數查找當前目錄下的所有文件,然後使用循環語句逐個判斷文件名是否需要刪除,並使用unlink()函數刪除不需要的文件。以下是示例代碼:&lt;?php $files = glob("*"); // 查找當前目錄下的所有文件 foreach($files as $file)…
👁 148