當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP fnmatch( )用法及代碼示例


PHP中的fnmatch()函數用於將文件名或字符串與指定模式進行匹配。模式和要檢查的文件名作為參數發送到fnmatch()函數,如果找到匹配項,則返回True,失敗則返回False。
fnmatch()函數現已在PHP 5.3.0版的Windows平台上可用。

用法:

fnmatch(pattern, string, flags)

使用的參數:
PHP中的fnmatch()函數接受三個參數。


  1. pattern :它是必填參數,用於指定要搜索的模式。
  2. string :它是必填參數,用於指定要檢查的字符串或文件。
  3. flags :它是可選的參數表,用於指定標誌或標誌的組合。
    這些標誌可以是以下標誌的組合:
    • FNM_PATHNAME:用於指定字符串中的斜線僅匹配給定模式中的斜線。
    • FNM_NOESCAPE:用於禁用反斜杠轉義。
    • FNM_CASEFOLD:用於無 shell 匹配。
    • FNM_PERIOD:用於指定字符串中的前導期間必須與給定模式中的期間完全匹配。

返回值:
如果找到匹配項,則返回True;如果失敗,則返回False。

錯誤和異常:

  1. 如果多次使用fnmatch()函數,則必須清除緩衝區。
  2. fnmatch()函數返回布爾值False,但是很多時候它返回一個非布爾值,該值的值為False。

以下示例程序旨在說明fnmatch()函數。

程序1假設有一個名為“gfg.txt”的文件

<?php 
$check = "gfg.txt"; 
  
// fnmatch function used to check 
 for file starting with g 
if (fnmatch("*[g]*",$check)) 
{ 
   echo "gfg"; 
} 
else
{ 
   echo "match not found"; 
} 
?>

輸出:

gfg

程序2

<?php 
  
$check = "GeeksforGeeks"; 
  
// fnmatch function used to check for  
// a word practice or practise 
if (fnmatch("*Geeks[gfgj]orGeeks", $check)) 
    echo "Yes"; 
else
    echo "No"; 
?>
輸出:
Yes

程序3

<?php 
$check = 'GFG A computer science portal'; 
  
// fnmatch function used to check  
// for a word php without considering its case  
if (fnmatch("*[PUTgfg]*", $check, FNM_CASEFOLD)) 
    echo "Yes"; 
else
    echo "No"; 
  
  
?>
輸出:
Yes

程序4

<?php 
  
$check = "There is a back slash \ in this sentence"; 
  
// fnmatch function used to check for a \  
if (fnmatch("*[\]*", $check, FNM_NOESCAPE)) 
    echo "back slash  (\)  in the sentence "; 
 else
    echo "match not found"; 
?>
輸出:
back slash  (\)  in the sentence

參考:
http://php.net/manual/en/function.fnmatch.php



相關用法


注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 PHP | fnmatch() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。