2024 年 PHP Conference Japan

字串函數

另請參閱

欲了解更多強大的字串處理和操作函數,請參考 Perl 相容正規表示式函數。 關於多位元組字元編碼的處理,請參考 多位元組字串函數

目錄

  • addcslashes — 以 C 語言風格使用反斜線跳脫字串
  • addslashes — 使用反斜線跳脫字串
  • bin2hex — 將二進位制資料轉換為十六進位制表示
  • chop — rtrim 的別名
  • chr — 從數字產生單位元組字串
  • chunk_split — 將字串分割成較小的區塊
  • convert_cyr_string — 從一種西里爾字母字元集轉換為另一種
  • convert_uudecode — 解碼 uuencode 編碼的字串
  • convert_uuencode — 使用 uuencode 編碼字串
  • count_chars — 返回字串中使用的字元資訊
  • crc32 — 計算字串的 crc32 多項式
  • crypt — 單向字串雜湊
  • echo — 輸出一個或多個字串
  • explode — 以字串分割字串
  • fprintf — 將格式化的字串寫入串流
  • get_html_translation_table — 傳回 htmlspecialchars 和 htmlentities 使用的轉換表
  • hebrev — 將邏輯希伯來文轉換為視覺文字
  • hebrevc — 將邏輯希伯來文轉換為視覺文字,並進行換行轉換
  • hex2bin — 將十六進位編碼的二進位字串解碼
  • html_entity_decode — 將 HTML 實體轉換為其對應的字元
  • htmlentities — 將所有適用的字元轉換為 HTML 實體
  • htmlspecialchars — 將特殊字元轉換為 HTML 實體
  • htmlspecialchars_decode — 將特殊的 HTML 實體轉換回字元
  • implode — 使用字串連接陣列元素
  • join — implode 的別名
  • lcfirst — 將字串的第一個字元轉換為小寫
  • levenshtein — 計算兩個字串之間的 Levenshtein 距離
  • localeconv — 取得數值格式資訊
  • ltrim — 移除字串開頭的空白字元(或其他字元)
  • md5 — 計算字串的 md5 雜湊值
  • md5_file — 計算指定檔案的 md5 雜湊值
  • metaphone — 計算字串的 metaphone 鍵值
  • money_format — 將數字格式化為貨幣字串
  • nl_langinfo — 查詢語言和地區設定資訊
  • nl2br — 在字串中所有換行字元之前插入 HTML 換行標籤
  • number_format — 使用千位分隔符號格式化數字
  • ord — 將字串的第一個位元組轉換為 0 到 255 之間的值
  • parse_str — 將字串解析為變數
  • print — 輸出字串
  • printf — 輸出格式化的字串
  • quoted_printable_decode — 將 quoted-printable 字串轉換為 8 位元字串
  • quoted_printable_encode — 將 8 位元字串轉換為 quoted-printable 字串
  • quotemeta — 將中繼字元加上引號
  • rtrim — 移除字串結尾的空白字元(或其他字元)
  • setlocale — 設定地區設定資訊
  • sha1 — 計算字串的 sha1 雜湊值
  • sha1_file — 計算檔案的 sha1 雜湊值
  • similar_text — 計算兩個字串之間的相似度
  • soundex — 計算字串的 soundex 鍵值
  • sprintf — 傳回格式化的字串
  • sscanf — 根據格式從字串解析輸入
  • str_contains — 判斷字串是否包含指定的子字串
  • str_decrement — 將字母數字字串遞減
  • str_ends_with — 檢查字串是否以指定的子字串結尾
  • str_getcsv — 將 CSV 字串解析為陣列
  • str_increment — 將字母數字字串遞增
  • str_ireplace — str_replace 的大小寫不敏感版本
  • str_pad — 使用另一個字串將字串填補到特定長度
  • str_repeat — 重複字串
  • str_replace — 將搜尋字串的所有出現處替換成替換字串
  • str_rot13 — 對字串執行 rot13 轉換
  • str_shuffle — 隨機排列字串
  • str_split — 將字串轉換為陣列
  • str_starts_with — 檢查字串是否以指定的子字串開頭
  • str_word_count — 返回字串中使用的單字資訊
  • strcasecmp — 二進位安全且不區分大小寫的字串比較
  • strchr — strstr 的別名
  • strcmp — 二進位安全的字串比較
  • strcoll — 基於語系設定的字串比較
  • strcspn — 尋找初始區段的長度,該區段不符合遮罩
  • strip_tags — 從字串中移除 HTML 和 PHP 標籤
  • stripcslashes — 取消使用 addcslashes 函式所引用的字串
  • stripos — 尋找不區分大小寫的子字串在字串中第一次出現的位置
  • stripslashes — 取消字串的引用
  • stristr — 不區分大小寫的 strstr
  • strlen — 取得字串長度
  • strnatcasecmp — 使用「自然排序」演算法進行不區分大小寫的字串比較
  • strnatcmp — 使用「自然排序」演算法進行字串比較
  • strncasecmp — 對前 n 個字元進行二進位安全且不區分大小寫的字串比較
  • strncmp — 對前 n 個字元進行二進位安全的字串比較
  • strpbrk — 在字串中搜尋任何一組字元
  • strpos — 尋找子字串在字串中第一次出現的位置
  • strrchr — 尋找字元在字串中最後一次出現的位置
  • strrev — 反轉字串
  • strripos — 尋找不區分大小寫的子字串在字串中最後一次出現的位置
  • strrpos — 尋找子字串在字串中最後一次出現的位置
  • strspn — 尋找字串的初始區段長度,該區段完全由指定遮罩中包含的字元組成
  • strstr — 尋找字串第一次出現的位置
  • strtok — 字串分段
  • strtolower — 將字串轉換為小寫
  • strtoupper — 將字串轉換為大寫
  • strtr — 轉換字元或替換子字串
  • substr — 返回字串的一部分
  • substr_compare — 從指定偏移量開始,最多比較 length 個字元的兩個字串,二進位安全比較
  • substr_count — 計算子字串出現的次數
  • substr_replace — 替換字串一部分中的文字
  • trim — 移除字串開頭和結尾的空白字元(或其他字元)
  • ucfirst — 將字串的第一個字元轉換為大寫
  • ucwords — 將字串中每個單字的第一個字元轉換為大寫
  • utf8_decode — 將字串從 UTF-8 轉換為 ISO-8859-1,並將無效或無法表示的字元替換掉
  • utf8_encode — 將字串從 ISO-8859-1 轉換為 UTF-8
  • vfprintf — 將格式化字串寫入資料流
  • vprintf — 輸出格式化字串
  • vsprintf — 返回格式化字串
  • wordwrap — 將字串依指定的字元數斷行
新增註解

使用者貢獻的註解 2 則註解

lrirwin at alum dot wustl dot edu
3 年前
我正在轉換 30 年前的程式碼,需要一個字串 TAB 函式

// 類似於舊 BASIC 語言中使用的 TAB 函式
// 雖然其中一些函式如果字串比請求的位置長,則不會截斷
//
function tab($instring="",$topos=0){
if(strlen($instring)<$topos){
$result=str_pad($instring,$topos-1," ",STR_PAD_RIGHT);
}else{
$result=substr($instring,0,$topos-1);
}
return $result;
}

$pline="在此處使用 tab 函式到第 50 個字元,然後";
$tline=tab($pline,50)."完成它。";
echo $tline.PHP_EOL;
$pline="101010101020202020203030303030404040404050505050506060606060";
$tline=tab($pline,50)."完成它。";
echo $tline.PHP_EOL;

// 輸出結果如下
// 在此處使用 tab 函式到第 50 個字元,然後完成它。
// 1010101010202020202030303030304040404040505050505完成它。
kristin at greenapple dot on dot ca
19 年前
我一直在尋找一個可以做到這一點的函式,因為我在其他語言中看過,但在這裡找不到。與 substr() 結合使用時,此函式特別有用,可以擷取字串的第一部分到特定位置。

strnpos() - 尋找 needle 在 haystack 中第 n 次出現的位置。

<?php

function strnpos($haystack, $needle, $occurance, $pos = 0) {

for (
$i = 1; $i <= $occurance; $i++) {
$pos = strpos($haystack, $needle, $pos) + 1;
}
return
$pos - 1;

}

?>

範例:擷取直到第四個 '/' 出現之前的部分。

<?php

$haystack
= "/home/username/www/index.php";
$needle = "/";

$root_dir = substr($haystack, 0, strnpos($haystack, $needle, 4));

echo
$root_dir;

?>

回傳:/home/username/www

將此範例與伺服器變數 $_SERVER['SCRIPT_NAME'] 作為 haystack 一起使用,您可以自行探索文件的根目錄,以便自動定位全域檔案!
To Top