首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 字串處理四大核心函數:substr、strrchr、strstr、ereg 詳解與實戰

     編輯:PHP 綜合知識

一、substr —— 靈活截取字串片段

string substr(string $string, int $start, int $length = null)

  • start >= 0:從字串開頭第 start 個字元開始(索引從 0 起算)。
  • start < 0:從字串結尾倒數第 |start| 個字元開始。
  • length > 0:最多返回 length 個字元。
  • length < 0:省略字串結尾的 |length| 個字元。
  • 省略 length:返回從 start 到字串結尾。
echo substr('abcdef', 1, 3);   // bcd
echo substr('abcdef', -2);     // ef
echo substr('abcdef', -3, 1);  // d
echo substr('abcdef', 1, -1);  // bcde

二、strrchr —— 取得字元最後一次出現位置至結尾的子字串

string strrchr(string $haystack, string $needle)

尋找 needle 在 haystack 中最後一次出現的位置,並返回該位置到字串結尾的部分。找不到則返回 false。

$PATH = 'https://localhost/test/test.php';
$dir = substr(strrchr($PATH, ':'), 1);
echo $dir; // 輸出://localhost/test/test.php

三、strstr —— 取得字元第一次出現位置至結尾的子字串

string strstr(string $haystack, string $needle)

返回 needle 首次出現位置到字串結尾的部分。找不到返回 false。注意:PHP 5.3+ 可用 strstr($haystack, $needle, true) 取得 needle 之前的部分。

四、ereg —— 正則表達式比對(已棄用,建議改用 preg_match)

int ereg(string $pattern, string $string, array &$regs = null)

依 pattern 規則解析 string。若提供 regs 陣列,regs[0] 為完整匹配字串,regs[1]、regs[2]… 為各捕獲群組。僅判斷是否匹配時可省略 regs,返回 true/false。

// 舊寫法(不建議使用)
if (eregi('^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$', $email)) {
    echo '您的 E-Mail 通過初步檢查';
}

// 建議改用 preg_match(支援 UTF-8、效能更好)
if (preg_match('/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$/i', $email)) {
    echo '您的 E-Mail 通過初步檢查';
}
重要提醒: ereg 系列函數自 PHP 5.3 起棄用,PHP 7.0 已移除。請全面改用 preg_match / preg_replace 等 PCRE 函數。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved