關鍵要點
strlen()
、str_replace()
、strpos()
、strtolower()
、strtoupper()
和 substr()
。 trim()
函數可以去除字符串開頭和結尾的空格或其他指定字符,這有助於在處理之前清理用戶輸入。 ltrim()
和 rtrim()
函數執行類似的操作,但分別只去除字符串左側或右側的字符。 substr()
函數用於截取字符串,可以指定從哪裡開始截取以及截取的長度。將其與 strpos()
函數結合使用,可以精確地從字符串中提取文本。 str_replace()
函數允許替換字符串中特定的單詞或字符。 PHP 有大量的內置字符串處理函數,可以讓你輕鬆地以幾乎任何可能的方式操作字符串。然而,學習所有這些函數,記住它們的功能以及它們可能派上用場的時間,可能會有點令人生畏,特別是對於新手開發者來說。在一篇文章中不可能涵蓋每一個字符串函數,而且,PHP 手冊就是為此而存在的!但我將展示如何使用一些你應該知道的常用字符串處理函數。學習之後,你將能夠像任何一位演奏家一樣熟練地操作字符串!
大小寫轉換
PHP 提供了一些函數,使你能夠操作字符串中字符的大小寫,而無需逐個字符地編輯字符串。你為什麼會在乎這個?也許你想確保某些文本全部大寫,例如首字母縮寫、標題,為了強調或只是為了確保名稱正確地大寫。或者,你可能只想比較兩個字符串,並且你想確保你正在比較的字母是相同的字符集。大小寫轉換函數很容易掌握;你只需將字符串作為參數傳遞給函數,返回值就是處理後的字符串。如果你想確保特定字符串中的所有字母都大寫,可以使用 strtoupper()
函數,如下所示:
<?php $str = "Like a puppet on a string."; $cased = strtoupper($str); // 显示:LIKE A PUPPET ON A STRING. echo $cased; ?>
也許很明顯,但仍然值得注意的是,數字和其他非字母字符不會被轉換。正如你可能猜到的那樣,strtolower()
函數與 strtoupper()
的作用恰好相反,它將字符串轉換為全部小寫字母:
<?php $str = "LIKE A PUPPET ON A STRING."; $cased = strtolower($str); // 显示:like a puppet on a string. echo $cased; ?>
在其他時候,你可能希望確保某些單詞(例如姓名或標題)隻大寫每個單詞的第一個字母。為此,可以使用 ucwords()
函數:
<?php $str = "Like a puppet on a string."; $cased = strtoupper($str); // 显示:LIKE A PUPPET ON A STRING. echo $cased; ?>
也可以使用 lcfirst()
和 ucfirst()
函數來操作字符串的第一個字母的大小寫。如果要將第一個字母小寫,請使用 lcfirst()
。如果要將第一個字母大寫,請使用 ucfirst()
。 ucfirst()
函數可能最有用,因為你可以用它來確保句子總是以大寫字母開頭。
<?php $str = "LIKE A PUPPET ON A STRING."; $cased = strtolower($str); // 显示:like a puppet on a string. echo $cased; ?>
快速修剪
有時需要修剪字符串的邊緣。它可能在開頭或結尾有空格或其他字符需要刪除。空格可以是實際的空格字符,也可以是製表符、回車符等。一個你可能需要這樣做的情況的例子是,當你處理用戶輸入並希望在開始處理之前清理它時。 PHP 中的 trim()
函數允許你做到這一點;你可以將字符串作為參數傳遞,並且將刪除該字符串開頭和結尾的所有空格:
<?php $str = "a knot"; $cased = ucwords($str); // 显示:A Knot echo $cased; ?>
trim()
也是多用途的,除了字符串之外,你還可以傳遞一組字符,它將刪除開頭或結尾處與之匹配的任何字符:
<?php $str = "how long is a piece of string?"; $cased = ucfirst($str); // 显示:How long is a piece of string? echo $cased; ?>
使用這些附加字符時需要小心,因為 trim()
只有在你明確提供要刪除的字符之一作為空格時才會刪除空格:
<?php $str = " A piece of string? "; // 显示:string(22) " A piece of string? " var_dump($str); $trimmed = trim($str); // 显示:string(18) "A piece of string?" var_dump($trimmed); ?>
即使 trim()
只刪除字符串開頭和結尾的字符,它也刪除了“A”和空格,因為當“A”被刪除時,空格成為字符串的新開頭,因此也被刪除。 PHP 中還有 ltrim()
和 rtrim()
函數,它們類似於 trim()
函數,但分別只刪除字符串左側或右側的空格(或其他指定字符)。
字符串長度
在處理字符串時,你經常需要知道它的長度。例如,在處理表單時,你可能有一個字段,你想確保用戶不能超過一定數量的字符。要計算字符串中的字符數,可以使用 strlen()
函數:
<?php $str = "A piece of string?"; $trimmed = trim($str, "A?"); // 显示:string(16) " piece of string" var_dump($trimmed); ?>
截取字符串
另一種常見的情況是在給定的字符串中查找特定文本並將其“剪切”出來,以便你可以對它執行其他操作。要將字符串剪切到指定大小,你需要一把好的剪刀,在 PHP 中,你的剪刀是 substr()
函數。要使用 substr()
函數,請將要處理的字符串作為參數傳遞,以及一個正整數或負整數。該數字決定你將從哪裡開始剪切字符串;0 從字符串的第一個字符開始(記住,當你遍歷字符串時,左側的第一個字符從位置 0 開始,而不是 1)。
<?php $str = "A piece of string?"; $trimmed = trim($str, "A ?"); // 显示:string(15) "piece of string" var_dump($trimmed); ?>
當使用負數時,substr()
將從字符串的末尾向後開始。
<?php $str = "How long is a piece of string?"; $size = strlen($str); // 显示:30 echo $size; ?>
substr()
的可選第三個參數是長度,另一個整數值,允許你指定要從字符串中提取的字符數。
<?php $str = "Like a puppet on a string."; $cased = strtoupper($str); // 显示:LIKE A PUPPET ON A STRING. echo $cased; ?>
如果你只需要找到特定文本在字符串中的位置,而不需要其他任何操作,可以使用 strpos()
函數,它返回你的選擇相對於字符串開頭的位 置。一個有用的技巧,尤其是在你不知道要從字符串中剪切的文本的起始位置時,是將這兩個函數結合起來使用。不必將起始位置指定為整數,你可以搜索特定文本,然後提取該文本。
<?php $str = "LIKE A PUPPET ON A STRING."; $cased = strtolower($str); // 显示:like a puppet on a string. echo $cased; ?>
替換
最後,讓我們看看如何用其他內容替換字符串的一部分,為此可以使用 str_replace()
函數。這非常適合你只想替換字符串中特定單詞或一組字符的實例並將其替換為其他內容的情況:
<?php $str = "a knot"; $cased = ucwords($str); // 显示:A Knot echo $cased; ?>
如果你想替換多個值,也可以為 str_replace()
提供數組:
<?php $str = "how long is a piece of string?"; $cased = ucfirst($str); // 显示:How long is a piece of string? echo $cased; ?>
str_replace()
區分大小寫,因此如果你不想擔心這個問題,可以使用它的不區分大小寫的同級函數 str_ireplace()
。
總結
希望這篇文章讓你了解了在 PHP 中使用字符串的一些操作,並讓你渴望學習更多。我實際上只是觸及了皮毛!了解所有不同字符串函數的最佳方法是花一些時間閱讀 PHP 手冊中的“字符串函數”頁面。我很想知道你最常使用哪些字符串函數,所以請隨時在下面的評論中提及它們。 圖片來自 Vasilius / Shutterstock
PHP 字符串處理函數常見問題解答
PHP 提供了廣泛的字符串處理函數。一些最常用的函數包括:
strlen()
:此函數返回字符串的長度。 str_replace()
:此函數用字符串中的其他字符替換某些字符。 strpos()
:此函數查找字符串在另一個字符串中第一次出現的 位置。 strtolower()
:此函數將字符串轉換為小寫。 strtoupper()
:此函數將字符串轉換為大寫。 substr()
:此函數返回字符串的一部分。 這些函數用於以各種方式操作和處理字符串,例如更改字符串的大小寫、查找字符串的長度、替換字符串的部分內容等等。
在 PHP 中,str_split()
函數用於將字符串轉換為數組。此函數按長度將字符串拆分為數組。這是一個例子:
<?php $str = " A piece of string? "; // 显示:string(22) " A piece of string? " var_dump($str); $trimmed = trim($str); // 显示:string(18) "A piece of string?" var_dump($trimmed); ?>
在這個例子中,str_split()
函數將字符串“Hello, World!”拆分為一個數組,其中每個元素都是字符串中的單個字符。
PHP 提供了幾個用於比較字符串的函數,包括 strcmp()
、strcasecmp()
、strnatcmp()
和 strnatcasecmp()
。 strcmp()
函數對兩個字符串進行二進制安全和區分大小寫的比較。這是一個例子:
<?php $str = "Like a puppet on a string."; $cased = strtoupper($str); // 显示:LIKE A PUPPET ON A STRING. echo $cased; ?>
在這個例子中,strcmp()
函數比較字符串“Hello”和“World”。如果 string1 大於 string2,則函數返回 0,如果它們相等,則返回 0。
PHP 中的 strrev()
函數用於反轉字符串。這是一個例子:
<?php $str = "LIKE A PUPPET ON A STRING."; $cased = strtolower($str); // 显示:like a puppet on a string. echo $cased; ?>
在這個例子中,strrev()
函數反轉字符串“Hello, World!”。
PHP 中的 trim()
函數用於從字符串的兩側刪除空格和其他預定義的字符。這是一個例子:
<?php $str = "a knot"; $cased = ucwords($str); // 显示:A Knot echo $cased; ?>
在這個例子中,trim()
函數刪除字符串“ Hello, World! ”開頭和結尾的空格。
以上是PHP字符串處理功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!