目錄
使用substr() 函數提取子字符串
處理中文等多字節字符時要用mb_substr()
根據特定分隔符截取字符串
首頁 後端開發 php教程 php從字符串獲取子字符串

php從字符串獲取子字符串

Jul 13, 2025 am 02:59 AM
php 字串截取

要從PHP 字符串中提取子字符串,可使用substr() 函數,其語法為substr(string $string, int $start, ?int $length = null),若未指定長度則截取至末尾;處理多字節字符如中文時應使用mb_substr() 函數以避免亂碼;若需根據特定分隔符截取字符串,可使用explode() 或結合strpos() 與substr() 實現,例如提取文件名擴展名或域名。

PHP get substring from a string

想從PHP 字符串中提取子字符串?其實方法挺直接的,關鍵是要用對函數。 PHP 提供了幾個常用函數來處理字符串截取,最常見的是substr() ,它能滿足大部分需求。

PHP get substring from a string

使用substr() 函數提取子字符串

這是最常用的字符串截取方式。基本語法是:

 substr(string $string, int $start, ?int $length = null)
  • $start是起始位置(從0 開始)
  • $length是可選參數,表示要截取多少個字符

舉個例子:

PHP get substring from a string
 $str = "Hello, world!";
echo substr($str, 7, 5); // 輸出"world"

如果你不指定$length ,就會從起始位置一直截取到末尾:

 echo substr($str, 7); // 輸出"world!"

注意:如果起始位置超過字符串長度,會返回false;負數則表示從後往前數。

PHP get substring from a string

處理中文等多字節字符時要用mb_substr()

如果你處理的是中文、日文或其它非ASCII 字符,直接用substr()可能會導致亂碼。這時候應該使用mb_substr() ,它是多字節安全的版本。

 mb_substr(string $str, int $start, ?int $length = null, string $encoding = 'utf-8')

示例:

 $chinese = "你好,世界!";
echo mb_substr($chinese, 3, 2, 'UTF-8'); // 輸出"世界"

這個函數在處理多語言內容時非常實用,建議優先使用。


根據特定分隔符截取字符串

有時候你想根據某個字符來截取部分內容,比如從URL 中取出域名,或者拆分文件名和擴展名。這時候可以用explode()或者strpos() substr()組合。

例如,從文件名中取出擴展名:

 $filename = "example.txt";
$parts = explode('.', $filename);
echo end($parts); // 輸出"txt"

或者你只想獲取第一個點之前的內容:

 $pos = strpos($filename, '.');
if ($pos !== false) {
    echo substr($filename, 0, $pos); // 輸出"example"
}

這種方式適合按規則切割字符串,尤其適用於路徑、URL、CSV 數據等格式化輸入。


基本上就這些。 PHP 的字符串處理函數很靈活,關鍵是根據不同場景選擇合適的函數。像substr()mb_substr()這兩個函數掌握好了,大多數情況都能應付。遇到有特定分隔符的情況,再配合explode()或查找函數就能搞定。

以上是php從字符串獲取子字符串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Stock Market GPT

Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

如何在PHP中實現單身模式? 如何在PHP中實現單身模式? Sep 25, 2025 am 12:27 AM

單例模式確保一個類只有一個實例,並提供全局訪問點,適用於需要單一對象協調系統操作的場景,如數據庫連接或配置管理。 2.其基本結構包括:私有的靜態屬性存儲實例、私有構造函數防止外部創建、私有克隆方法防止複制,以及公共靜態方法(如getInstance())用於獲取實例。 3.在PHP中通過調用getInstance()方法獲取唯一實例,無論調用多少次都返回同一對象引用。 4.標準PHP請求模型下無需考慮線程安全,但在長運行或多線程環境中需注意同步問題,而PHP本身不支持原生鎖機制。 5.儘管單例有用,但會

如何在php中使用無效的合併操作員(??)? 如何在php中使用無效的合併操作員(??)? Sep 25, 2025 am 01:28 AM

答案:PHP的空合併操作符(??)用於檢查變量或數組鍵是否存在且非null,若成立則返回其值,否則返回默認值。它可避免使用冗長的isset()檢查,適用於處理未定義變量和數組鍵,如$username=$userInput??'guest',且支持鍊式調用,如$theme=$userTheme??$defaultTheme??'dark',特別適合表單、配置和用戶輸入處理,但僅排除null值,空字符串、0或false均被視為有效值返回。

如何在PHP中獲取URL參數? 如何在PHP中獲取URL參數? Sep 24, 2025 am 05:11 AM

使用$_GET獲取URL參數,如?name=John&age=25;通過isset或空合併運算符檢查存在性,並用filter_input過濾和驗證數據以確保安全。

manwa2網頁版直達鏈接_manwa2(澳版)網頁入口最新更新 manwa2網頁版直達鏈接_manwa2(澳版)網頁入口最新更新 Sep 23, 2025 am 11:42 AM

manwa2網頁版直達鏈接是http://www.manwaw.cn/,該平台提供海量高清漫畫資源,支持在線搜索、離線緩存與多端同步,具備個性化書單和閱讀設置功能,確保用戶流暢舒適的追漫體驗。

如何在PHP中禁用功能? 如何在PHP中禁用功能? Sep 24, 2025 am 02:40 AM

TodisableaPHPfunction,usedisable_functionsinphp.iniforbuilt-infunctionslikeexecorsystem,whichblocksthemgloballyforsecurity;foruser-definedfunctions,preventexecutionbywrappingtheminconditions,renaming,commentingout,orcontrollingfileinclusionviaautoloa

如何從PHP中的URL下載文件? 如何從PHP中的URL下載文件? Sep 24, 2025 am 05:45 AM

答案:使用file_get_contents和cURL可下載URL文件,前者簡單但受限制,後者更靈活且支持流式處理。示例包括直接讀取寫入文件、cURL初始化設置選項並保存、添加錯誤處理及HTTP狀態檢查,大文件推薦分塊流式下載以節省內存,確保目錄可寫並妥善處理異常。

如何在PHP類中實現接口? 如何在PHP類中實現接口? Sep 25, 2025 am 05:34 AM

使用implements關鍵字實現接口,類必須提供接口中所有方法的具體實現。 2.定義接口用interface關鍵字聲明方法。 3.類實現接口並重寫方法。 4.創建對象調用方法輸出結果。 5.一個類可實現多個接口,確保代碼規範和可維護性。

如何通過PHP中的引用傳遞變量? 如何通過PHP中的引用傳遞變量? Sep 23, 2025 am 06:47 AM

使用&符號在函數參數前可實現引用傳遞,使函數直接修改原始變量。例如定義functionincrement(&$value){$value ;}後,調用increment($number)會改變$number的值;引用傳遞無需在調用時使用&,僅需在函數聲明中使用;還可通過&function&getGlobalRef()返回引用,使$ref=&getGlobalRef()指向靜態變量並修改其值。

See all articles