天天看點

PHP字元函數大全

注意:這裡隻提供部分函數的使用方式,如有不懂可以複制函數名到百度搜尋詳情,謝謝!

AddSlashes: 字元串加入斜線。

bin2hex: 二進位轉成十六進位。

Chop: 去除連續空白。

Chr: 傳回序數值的字元。

chunk_split: 将字元串分成小段。

convert_cyr_string: 轉換古斯拉夫字元串成其它字元串。

crypt: 将字元串用 DES 編碼加密。

echo: 輸出字元串。

explode: 切開字元串。

flush: 清出輸出緩沖區。

get_meta_tags: 抽出檔案所有 meta 标記的資料。

htmlspecialchars: 将特殊字元轉成 HTML 格式。

htmlentities: 将所有的字元都轉成 HTML 字元串。

implode: 将數組變成字元串。

join: 将數組變成字元串。

ltrim: 去除連續空白。

md5: 計算字元串的 MD5 哈稀。

nl2br: 将換行字元轉成 <br>。

Ord: 傳回字元的序數值。

parse_str: 解析 query 字元串成變量。

print: 輸出字元串。

printf: 輸出格式化字元串。

quoted_printable_decode: 将 qp 編碼字元串轉成 8 位字元串。

QuoteMeta: 加入引用符号。

rawurldecode: 從 URL 專用格式字元串還原成普通字元串。

rawurlencode: 将字元串編碼成 URL 專用格式。

setlocale: 配置地域化資訊。

similar_text: 計算字元串相似度。

soundex: 計算字元串的讀音值

sprintf: 将字元串格式化。

strchr: 尋找第一個出現的字元。

strcmp: 字元串比較。

strcspn: 不同字元串的長度。

strip_tags: 去掉 HTML 及 PHP 的标記。

StripSlashes: 去掉反斜線字元。

strlen: 取得字元串長度。

strrpos: 尋找字元串中某字元最後出現處。

strpos: 尋找字元串中某字元最先出現處。

strrchr: 取得某字元最後出現處起的字元串。

strrev: 颠倒字元串。

strspn: 找出某字元串落在另一字元串遮罩的數目。

strstr: 傳回字元串中某字元串開始處至結束的字元串。

strtok: 切開字元串。

strtolower: 字元串全轉為小寫。

strtoupper: 字元串全轉為大寫。

str_replace: 字元串取代。

strtr: 轉換某些字元。

substr: 取部份字元串。

trim: 截去字元串首尾的空格。

ucfirst: 将字元串第一個字元改大寫。

ucwords: 将字元串每個字第一個字母改大寫。

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數使需要讓資料庫處理的字元串,引号的部份加上斜線,以供資料庫查詢 (query) 能順利運作。這些會被改的字元包括單引号 (')、雙引号 (")、反斜線 backslash (\) 以及空字元 NUL (the null byte)。

參考: stripslashes() htmlspecialchars() quotemeta()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數讓二進位字元串轉成十六進位字元串。

使用範例

補充:

[email protected] (22-Jun-1999) 寫了一個函數,可将十六進位轉成二進位。

<?

function hex2bin($data) {

$len = strlen($data);

for($i=0;$i<$len;$i+=2) {

$newdata .= pack("C",hexdec(substr($string,$i,2)));

}

return $newdata;

}

?>

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元串的連續空白清除。

使用範例

<?

$trimmed = Chop($line);

?>

參考: trim()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元的序數轉成 ASCII 的字元。本函數和 ord() 成對照。

使用範例

<?

$str .= chr(27);

$str = sprintf("字元串的結束字元是: %c", 27);

?>

參考: ord() sprintf()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元變成小段供其它函數使用。例如,base64_encode。内定是參數 chunklen (76 個字元) 每隔 76 個字元插入 end ("\r\n")。傳回新字元串而不改動原字元串。

使用範例

将字元串 $data 格式化成 MIME BASE64 格式

<?

$new_string = chunk_split(base64_encode($data));

?>

參考: ereg_replace()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将古斯拉夫字元串轉成其它的字元串。from 及 to 二個參數是字元,其代表意義如下:

k - koi8-r

w - windows-1251

i - iso8859-5

a - x-cp866

d - x-cp866

m - x-mac-cyrillic

文法: string crypt(string str, string [salt]);

傳回值: 字元串

函數種類: 編碼處理

内容說明: 本函數将字元串用 UNIX 的标準加密 DES 子產品加密。這是單向的加密函數,無法解密。欲比對字元串,将已加密的字元串的頭二個字元放在 salt 的參數中,再比對加密後的字元串。

更詳細的資料請參考 UNIX Manual (man) 中的 crypt。

在一些較新的 UNIX 版本中,除了 DES 之外還提供了其它的加密子產品,如 MD5。甚至有些系統還用 MD5 取代 DES。在 salt 參數還有一些變化,端看傳給 salt 參數的字元串長度而定:

CRYPT_STD_DES - 标準的 DES 編碼,輸入 2 字元的 salt。

CRYPT_EXT_DES - 延伸的 DES 編碼,輸入 9 字元的 salt。

CRYPT_MD5 - MD5 編碼,輸入 12 字元加上 $1$ 的 salt。

CRYPT_BLOWFISH - 延伸的 DES 編碼,輸入 16 字元加上 $2$ 的 salt。

此外,若不使用 salt 參數,則程式會自動産生。

傳回值: 無

函數種類: PHP 系統功能

内容說明: 本函數将字元串輸出。由于它不是真正的函數,是以也沒有傳回值。

使用範例

<?php

echo "Hello World";

?>

參考: print() printf() flush()

傳回值: 數組

函數種類: 資料處理

内容說明: 本函數将字元串依指定的字元串或字元 separator 切開。将切開後的字元串傳回到數組變量中。

使用範例

<?

$pizza = "第一片 第二片 第三片 第四片 第五片 第六片";

$pieces = explode(" ", $pizza);

?>

參考: implode()

傳回值: 無

函數種類: 資料處理

内容說明: 本函數無輸入亦無輸出。将輸出緩沖區的資料送出,并清出。

文法: array get_meta_tags(string filename, int [use_include_path]);

傳回值: 數組

函數種類: 資料處理

内容說明: 本函數将 homepage 中的所有 <meta ......> 标記的資料取出并放置數組變量傳回。例如

<html>

<head>

<meta content="彭武興">

<meta content="PHP BIBLE">

<title>PHP BIBLE</title>

</head><!-- 本函數處理隻到這兒結束 -->

本函數找出 meta 标記,name 屬性的字元串為數組索引,而 content 屬性字元串則為數組的内容資料了。治募注意的是本函數為 PHP 原生函數,在 UNIX 系列平台上無法直接處理麥金塔的檔案格式,因為換行字元不同。[email protected] 指出 (07-Jun-1999),參數 filename 也可以是 URL,函數将抽出遠端伺服器的檔案 meta 标記。而函數在處理時,遇到 </head> 标記結束,要是 <meta ....> 标記放在 </head> 後将無法處理。

文法: string htmlspecialchars(string string);

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将特殊字元轉成 HTML 的字元串格式 ( &....; )。最常用到的場合可能就是處理客戶留言的留言版了。

& (和) 轉成 &

" (雙引号) 轉成 "

< (小于) 轉成 <

> (大于) 轉成 >

此函數隻轉換上面的特殊字元,并不會全部轉換成 HTML 所定的 ASCII 轉換。

使用範例

這是 [email protected] (27-Jan-1999) 所提供的範例

<FORM ACTION=bla>

<H2>Restaurant Description<H2>

Name of restaurant:

<INPUT TYPE=text VALUE="<?

echo HTMLSpecialChars($restname); ?>">

<!-- 變量 $restname 是醬子的 $restname="\"The White Horse\""; -->

<BR>

輸入描述 (若您會 HTML,可直接使用): <BR>

<TEXTAREA ><?

echo HTMLSpecialChars($descript);

?></TEXTAREA>

<INPUT TYPE=submit>

</FORM>

參考: htmlentities() nl2br()

文法: string htmlentities(string string);

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數有點像 htmlspecialchars() 函數,但本函數會将所有 string 的字元都轉成 HTML 的特殊字集字元串。不過在轉換後閱讀網頁源代碼的方面,會有很多困擾,尤其是網頁源代碼的中文字會變得不知所雲,浏覽器上看到的還是正常的。

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将數組的内容組合成一個字元串,參數 glue 是字之間的分隔符号。

使用範例

<?

$colon_separated = implode(":", $array);

echo $colon_separated;

?>

參考: explode() join() split()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數是 implode 函數的别名。

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數用來删去字元串中的連續空白帶 (whitespace)。

文法: string md5(string str);

傳回值: 字元串

函數種類: 編碼處理

内容說明: 本函數用來計算 MD5 哈稀。關于 MD5 編碼法,可以參考 RSA Data Security, Inc. MD5 Message-Digest Algorithm. RFC1321;或是賴溪松、韓亮、張真誠等合着之近代密碼學及其應用,11.3。

文法: string nl2br(string string);

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将換行字元轉換成 HTML 換行的 <br> 指令。

參考: htmlspecialchars() htmlentities()

傳回值: 整數

函數種類: 資料處理

内容說明: 本函數傳回字元的 ASCII (美國國家标準交換碼) 序數值。本函數和 chr() 函數相反。

使用範例

<?php

if (ord($str) == 10) {

echo("字元串 \$str 的第一個字是換行字元。\n");

}

?>

參考: chr()

文法: void parse_str(string str);

傳回值: 無

函數種類: 資料處理

内容說明: 本函數可将浏覽器傳回的 GET 方法的 QUERY_STRING 字元串解析。傳回的變量名及值就依 QUERY_STRING 的名稱及值。

使用範例

<?php

$str = "first=value&second[]=this+works&second[]=another";

parse_str($str);

echo $first; // 顯示出 "value" 字元串

echo $second[0]; // 顯示 "this works" 字元串

echo $second[1]; // 顯示 "another" 字元串

?>

傳回值: 布爾值

函數種類: 資料處理

内容說明: 本函數輸出字元串。若成功則傳回 1,失敗則傳回 0。例如傳輸中途客戶的浏覽器突然挂了,則會造成輸出失敗的情形。

參考: echo() printf() flush()

傳回值: 整數

函數種類: 資料處理

内容說明: 本函數依參數 format 指定的内容格式将字元串格式化。格式的細節可以參考 sprintf()。

參考: print() sprintf() flush()

文法: string quoted_printable_decode(string str);

傳回值: 字元串

函數種類: 編碼處理

内容說明: 本函數可以将 quoted-printable 後的字元串解碼成為 8 位編碼的字元串。而本函數類似 imap_qprint() 函數,隻一不同的地方是使用 imap_qprint() 函數需要讓系統加入 IMAP 的子產品,而本函數不需要 IMAP 子產品。

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元串中含有 . \\ + * ? [ ^ ] ( $ ) 等字元的前面加入反斜線 "\" 符号。

參考: addslashes() htmlentities() htmlspecialchars() nl2br() stripslashes()

文法: string rawurldecode(string str);

傳回值: 字元串

函數種類: 編碼處理

内容說明: 本函數将字元串解碼。從 URL 的字元串專用格式解成普通字元串。詳細的編碼解碼資訊及規格檔案可以參考 RFC 1738。

參考: rawurlencode()

文法: string rawurldecode(string str);

傳回值: 字元串

函數種類: 編碼處理

内容說明: 本函數将字元串編碼成 URL 的字元串專用格式,特殊的字元會轉換成百分比符号後面加上二個十六位數字的格式。例如,空格就會變成 %20。

使用範例

<?php

echo '<a href="ftp://guest:', rawurlencode ('foo @+%/'), '@localhost/x.txt">';

?>

參考: rawurldecode()

傳回值: 字元串

函數種類: 作業系統與環境

内容說明: 本函數用來配置地域的資訊。參數 category 有下列的選擇:

LC_ALL 包括下面的全項選項都要。

LC_COLLATE 配置字元串比較,PHP 目前尚未實作出來本項。

LC_CTYPE 配置字元類别及轉換。例如全變大寫 strtoupper()。

LC_MONETARY 配置金融貨币,PHP 目前尚未實作。

LC_NUMERIC 配置小數點後的位數。

LC_TIME 配置時間日期格式,與 strftime() 合用。

而參數 locate 若是空字元串 "",則會使用系統環境變量的 locate 或是 LANG 的值。若 locate 為零,則不會改變地域化配置。傳回新的地域,若系統尚未實作則傳回 false。

使用範例

Michal Fita <[email protected]> 于 11-Jan-1999 11:01 提出這個以波蘭作地域化的例子。

<?

setlocale("LC_ALL", "pl");

$net = "1234,56";

$gross = "1,22" * $net;

printf("毛利: %s, 淨利: %s", $gross, $net");

?>

傳回值則為

毛利: 1234,56, 淨利: 1506,1632

傳回值: 整數

函數種類: 資料處理

内容說明

本函數用來計算比較二字元串的相似程度。

傳回值: 字元串

函數種類: 資料處理

内容說明: Soundex 值是利用英文字的讀音近似值所求得的值,值由四個字元構成,第一個字元為英文字母,後三個為數字。在拼音文字中有時會有會念但不能拼出正确字的情形,特别是在做搜尋引擎時面對使用者傳入的英文字元串,可用本函數做類似模糊比對的效果。例如 Knuth 和 Kant 二個字元串,它們的 soundex 值都是 H416。更詳細的說明參考 Donald Knuth 大師的名著:電腦程式設計的藝術 (The Art Of Computer Programming) 第三卷排序和搜尋。

使用範例

<?

$str1=soundex("Wilson");

$str2=soundex("Waillsume");

echo "soundex(\"Wilson\")=$str1 等于\n";

echo "soundex(\"Waillsume\")=$str2\n";

echo "值均為 $str1";

?>

上例傳回的字元串為

soundex("Wilson")=W425 等于

soundex("Waillsume")=W425

值均為 W425

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數用來将字元串格式化。參數 format 是轉換的格式,以百分比符号 % 開始到轉換字元為止。而在轉換的格式間依序包括了

填空字元。0 的話表示空格填 0;空格是預設值,表示空格就放着。

對齊方式。預設值為向右對齊,負号表向左對齊。

字段寬度。為最小寬度。

精确度。指在小數點後的浮點數位數。

類型,見下表 % 印出百分比符号,不轉換。

b 整數轉成二進位。

c 整數轉成對應的 ASCII 字元。

d 整數轉成十進位。

f 倍精确度數字轉成浮點數。

o 整數轉成八進位。

s 整數轉成字元串。

x 整數轉成小寫十六進位。

X 整數轉成大寫十六進位。

使用範例

<?

$money1 = 68.75;

$money2 = 54.35;

$money = $money1 + $money2;

// 此時變量 $money 值為 "123.1";

$formatted = sprintf ("%01.2f", $money);

// 此時變量 $ formatted 值為 "123.10"

?>

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數也就是 strstr() 函數。

傳回值: 整數

函數種類: 資料處理

内容說明: 本函數用來比較二字元串的大小。傳回負數表示 str1 小于 str2;傳回正數表示 str1 大于 str2;傳回零表示二字元串相同。

參考: ereg() substr() strstr()

傳回值: 整數

函數種類: 資料處理

内容說明: 本函數用來比較二字元串并計算出不同處的字元串長度。

參考: strspn()

文法: string strip_tags(string str);

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數可去掉字元串中包含的任何 HTML 及 PHP 的标記字元串。若是字元串的 HTML 及 PHP 标簽原來就有錯,例如少了大于的符号,則也會傳回錯誤。而本函數和 fgetss() 有着相同的功能。

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數可去掉字元串中的反斜線字元。若是連續二個反斜線,則去掉一個,留下一個。若隻有一個反斜線,就直接去掉。

參考: addslashes()

傳回值: 整數

函數種類: 資料處理

内容說明: 本函數傳回指定的字元串長度。

傳回值: 整數

函數種類: 資料處理

内容說明: 本函數用來尋找字元串 haystack 中的字元 needle 最後出現的位置。值得注意的是 needle 隻能是一個字元,中文字等就不适合了。若找不到指定的字元,則傳回 false 值。

參考: strpos() strrchr() substr() strstr()

傳回值: 整數

函數種類: 資料處理

内容說明: 本函數用來尋找字元串 haystack 中的字元 needle 最先出現的位置。值得注意的是 needle 隻能是一個字元,中文字等就不适合了。若找不到指定的字元,則傳回 false 值。參數 offset 可省略,用來Y表示從 offset 開始找。

參考: strrpos() strrchr() substr() strstr()

傳回值: 整數

函數種類: 資料處理

内容說明: 本函數用來尋找字元串 haystack 中的字元 needle 最後出現位置,并将此位置起至字元串 haystack 結束之間的字元串傳回。若沒有找到 needle 則傳回 false。

使用範例

下例取回環境變量 PATH 之最後一個路徑

<?php

$dir = substr( strrchr( $PATH, ":" ), 1 );

echo "最後的路徑為: ".$dir;

?>

參考: substr() strstr()

傳回值: 字元串

函數種類: 資料處理

内容說明: 将字元串前後颠倒。

使用範例

下例的傳回字元串為 "gneP nosliW"

<?

$str=strrev("Wilson Peng");

echo $str;

?>

傳回值: 整數

函數種類: 資料處理

内容說明: 本函數将 str2 字元串當遮罩,可用來計算 str1 字元串中有幾個字元落在 str2 遮罩中。

參考: strcspn()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将 needle 最先出現在 haystack 處起至 haystack 結束的字元串傳回。若找不到 needle 則傳回 false。

參考: strrchr() substr() ereg()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元串 arg1 依字元串 arg2 的值切開成小段小段的字元串。

使用範例: 本例将 I will be back 字元串依空白切開。

<?php

$string = "I will be back";

$tok = strtok($string," ");

while($tok) {

echo "單字=$tok<br>";

$tok = strtok(" ");

}

?>

參考: split() explode()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元串 str 全部變小寫字元串。

參考: strtoupper() ucfirst()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元串 str 全部變大寫字元串。

參考: strtolower() ucfirst()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元串 str 代入 haystack 字元串中,将所有的 needle 置換成 str。[email protected] (11-Apr-1999) 指出在 PHP 3.0.7 版,本函數有些 bug,而 [email protected] (05-Jun-1999) 補充在 PHP 3.0.8 版本函數就回複正常了。

使用範例

下例将 %body% 以 black 取代

<?php

$bodytag = str_replace("%body%", "black", "<body text=%body%>");

echo $bodytag;

?>

參考: ereg_replace()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元串 str 中和 from 有關的字元一一轉成 to 的字元。

參考: ereg_replace()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數将字元串 string 的第 start 位起的字元串取出 length 個字元。若 start 為負數,則從字元串尾端算起。若可省略的參數 length 存在,但為負數,則表示取到倒數第 length 個字元。

使用範例

<?

echo substr("abcdef", 1, 3); // 傳回 "bcd"

echo substr("abcdef", -2); // 傳回 "ef"

echo substr("abcdef", -3, 1); // 傳回 "d"

echo substr("abcdef", 1, -1); // 傳回 "bcde"

?>

參考: strrchr() ereg()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數傳回字元串 string 首尾的空白字元去除後的字元串。

參考: chop() ltrim()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數傳回字元串 str 第一個字的字首字母改成大寫。

參考: strtoupper() strtolower()

傳回值: 字元串

函數種類: 資料處理

内容說明: 本函數傳回字元串 str 每個字的字首字母全都改成大寫。