php 字串函數收集

來源:互聯網
上載者:User

1尋找字元位置函數:
strpos($str,search,[int]):尋找search在$str中的第一次位置從int開始;
stripos($str,search,[int]):函數返回字串在另一個字串中第一次出現的位置。該函數對大小寫不敏感
strrpos($str,search,[int]):尋找search在$str中的最後一次出現的位置從int

2、提取子字元函數(雙位元組)
submit($str,int start[,int length]):從$str中strat位置開始提取[length長度的字串]。
strstr($str1,$str2):從$str1(第一個的位置)搜尋$str2並從它開始截取到結束字串;若沒有則返回FALSE。
stristr() 功能同strstr,只是不區分大小寫。
strrchr() 從最後一次搜尋到的字元處返回;用處:取路徑中檔案名稱

3、替換字串
str_replace(search,replace,$str):從$str中尋找search用replace來替換

str_irreplace(search,replace,$str):

strtr($str,search,replace):這個函數中replace不能為"";

substr_replace($Str,$rep,$start[,length])$str原始字串,$rep替換後的新

字串,$start起始位置,$length替換的長度,該項可選

4、字元長度
int strlen($str)

5、比較字元函數
int strcmp($str1,$str2):$str1>=<$str2分別為正1,0,-1(字串比較)
strcasecmp() 同上(不分大小寫)

strnatcmp("4","14") 按自然排序比較字串
strnatcasecmp() 同上,(區分大小寫)

6、分割成數組函數
str_split($str,len):把$str按len長度進行分割返回數組
split(search,$str[,int]):把$str按search字元進行分割返回數組int是分割幾次,後面的將不分割
expload(search,$str[,int])

7、去除空格:ltrim、rtrim、trim

8、加空格函數
chunk_split($str,2);向$str字元裡面按2個字元就加入一個空格;

9、chr、ord--返回指定的字元或ascii

10、HTML代碼有關函數

nl2br():使\n轉換為<br>。

strip_tags($str[,'<p>']):去除HTML和PHP標記
在$str中所有HTML和PHP代碼將被去除,選擇性參數為html和PHP代碼作用是將保留

選擇性參數所寫的代碼。
如:echo strip_tags($text, '<br><p>');

htmlspecialchars($str[,參數]):頁面正常輸出HTML代碼參數是轉換方式

11、字元大小寫轉換函式
strtolower($str) 字串轉換為小寫
strtoupper($str) 字串轉換為大寫
ucfirst($str) 將函數的第一個字元轉換為大寫
ucwords($str) 將每個單詞的首字母轉換為大寫

12、資料庫相關函數
addslashes($str):使str內單引號(')、雙引號(")、反斜線(\)與 NUL

字串轉換為\',\",\\。
magic_quotes_gpc = On 自動對 get post cookie的內容進行轉義

get_magic_quotes_gpc()檢測是否開啟magic_quotes_gpc

stripslashes() 去除字串中的反斜線

13、串連函數
implode(str,$arr) 將字串數組按指定字元串連成一個字串;implode()函數有個別名函數join

addcslashes —— 為字串裡面的部分字元添加反斜線逸出字元
addslashes —— 用指定的方式對字串裡面的字元進行轉義
bin2hex —— 將位元據轉換成十六進位表示
chr —— 返回一個字元的ASCII碼
chunk_split —— 按一定的字元長度將字串分割成小塊
convert_cyr_string —— 將斯拉夫語字元轉換為別的字元
convert_uudecode —— 解密一個字串
convert_uuencode —— 加密一個字串
count_chars —— 返回一個字串裡面的字元使用資訊
crc32 —— 計算一個字串的crc32多項式
crypt —— 單向散列加密函數
explode —— 將一個字串用分割符轉變為一數組形式
fprintf —— 按照要求對資料進行返回,並直接寫入文檔流
get_html_translation_table —— 返回可以轉換的HTML實體
html_entity_decode —— htmlentities ()函數的反函數,將HTML實體轉換為字元
htmlentities —— 將字串中一些字元轉換為HTML實體
htmlspecialchars_decode —— htmlspecialchars()函數的反函數,將HTML實體轉換為字元
htmlspecialchars —— 將字串中一些字元轉換為HTML實體
implode —— 將數組用特定的分割符轉變為字串
join —— 將數組轉變為字串,implode()函數的別名
levenshtein —— 計算兩個詞的差別大小
localeconv —— 擷取數字相關的格式定義
ltrim —— 去除字串左側的空白或者指定的字元
md5_file —— 將一個檔案進行MD5演算法加密
md5 —— 將一個字串進行MD5演算法加密
metaphone —— 判斷一個字串的發音規則
money_format —— 按照參數對數字進行格式化的輸出
nl_langinfo —— 查詢語言和本地資訊
nl2br —— 將字串中的分行符號“\n”替換成“<br />”
number_format —— 按照參數對數字進行格式化的輸出
ord —— 將一個ASCII碼轉換為一個字元
parse_str —— 把一定格式的字串轉變為變數和值
print —— 用以輸出一個單獨的值
printf —— 按照要求對資料進行顯示
quoted_printable_decode —— 將一個字串加密為一個8位的二進位字串
quotemeta —— 對若干個特定字元進行轉義
rtrim —— 去除字串右側的空白或者指定的字元
setlocale —— 設定關於數字,日期等等的本地格式
sha1_file —— 將一個檔案進行SHA1演算法加密
sha1 —— 將一個字串進行SHA1演算法加密
similar_text —— 比較兩個字串,返回系統認為的相似字元個數
soundex —— 判斷一個字串的發音規則
sprintf —— 按照要求對資料進行返回,但是不輸出
sscanf —— 可以對字串進行格式化
str_ireplace —— 像str_replace()函數一樣匹配和替換字串,但是不區分大小寫
str_pad —— 對字串進行兩側的補白
str_repeat —— 對字串進行重複的群組合
str_replace —— 匹配和替換字串
str_rot13 —— 將字串進行ROT13加密處理
str_shuffle —— 對一個字串裡面的字元進行隨機排序
str_split —— 將一個字串按照字元間距分割為一個數組
str_word_count —— 擷取字串裡面的英文單詞資訊
strcasecmp —— 對字串進行大小比較,不區分大小寫
strchr —— 通過比較返回一個字串的部分strstr()函數的別名
strcmp —— 對字串進行大小比較
strcoll – 根據本地設定對字串進行大小比較
strcspn —— 返回字元連續非匹配長度的值
strip_tags —— 去除一個字串裡面的HTML和PHP代碼
stripcslashes —— 反轉義addcslashes()函數轉義處理過的字串
stripos —— 尋找並返回首個匹配項的位置,匹配不區分大小寫
stripslashes —— 反轉義addslashes()函數轉義處理過的字串
stristr —— 通過比較返回一個字串的部分,比較時不區分大小寫
strlen —— 擷取一個字串的編碼長度
strnatcasecmp —— 使用自然排序法對字串進行大小比較,不區分大小寫
strnatcmp —— 使用自然排序法對字串進行大小比較
strncasecmp —— 對字串的前N個字元進行大小比較,不區分大小寫
strncmp —— 對字串的前N個字元進行大小比較
strpbrk —— 通過比較返回一個字串的部分
strpos —— 尋找並返回首個匹配項的位置
strrchr —— 通過從後往前比較返回一個字串的部分
strrev —— 將字串裡面的所有字母反向排列
strripos —— 從後往前尋找並返回首個匹配項的位置,匹配不區分大小寫
strrpos —— 從後往前尋找並返回首個匹配項的位置
strspn —— 匹配並返回字元連續出現長度的值
strstr —— 通過比較返回一個字串的部分
strtok —— 用指定的若干個字元來分割字串
strtolower —— 將字串轉變為小寫
strtoupper —— 將字串轉變為大寫
strtr —— 對字串比較替換
substr_compare —— 對字串進行截取後的比較
substr_count —— 計算字串中某字元段的出現次數
substr_replace —— 對字串中的部分字元進行替換
substr —— 對字串進行截取
trim —— 去除字串兩邊的空白或者指定的字元
ucfirst —— 將所給字串的第一個字母轉換為大寫
ucwords —— 將所給字串的每一個英文單詞的第一個字母變成大寫
vfprintf —— 按照要求對資料進行返回,並直接寫入文檔流
vprintf —— 按照要求對資料進行顯示
vsprintf —— 按照要求對資料進行返回,但是不輸出
wordwrap —— 按照一定的字元長度分割字串

1,快速建立數組的函數range()

比如range()函數可以快速建立從1到9的數字數組:

<?php
$numbers=range(1,9); //用range直接建立1~9共9個數字組成的數組,以“1”開始“9”結束。
echo $numbers[1]; //輸出建立的第二個數組值:2; echo $numbers[0];則輸入第一個值:0。
?>

當然,使用range(9,1)則建立了9到1的數字數組。同時,range()還可以建立從a到z 的字元數組:

<?php
$numbers=range(a,z);
foreach ($numbers as $mychrs) //遍曆$numbers數組,每次迴圈當前單元值被賦給$mychrs
echo $mychrs." "; //output a b c d e f g h i j k l m n o p q r s t u v w x y z
?>

//foreach是一種遍曆數組的簡便方法,foreach 僅能用於數組,當試圖將其用於其它資料類型或者一個未初始化的變數時會產生錯誤,它有兩種格式:

foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement
第一種格式遍曆給定的 array_expression 數組。每次迴圈中,當前單元的值被賦給 $value 並且數組內部的指標向前移一步(因此下一次迴圈中將會得到下一個單元)。第二種格式做同樣的事,只除了當前單元的鍵名也會在每次迴圈中被賦給變數 $key

使用字元數組時注意大小寫,比如range(A,z)和range(a,Z)是不一樣的。

range()函數還具有第三個參數,該參數的作用是設定步長,比如range(1,9,3)建立的數組元素是:1、4、7

2,PHP中常規數組的排序

一般數組中的各元素均以字元或數字表現的,所以可對數組元素進行升序排列,該功能函數為sort()。比如:

<?php
$people=array('name','sex','nation','birth');
foreach ($people as $mychrs)
echo $mychrs." ";
sort($people);
echo "<br />---排序後---<br />";
foreach ($people as $mychrs)
echo $mychrs." ";
?>

升序排序後的數組元素顯示為 birth name nation sex,當然,sort()函數是區分字母大小寫(字母從大到小的順序是:A…Z…a…z)

Sort()函數還具有第二參數,用來說明升序的規則是用來比較數字還是字串的。比如:

<?php
echo "---按數字升序排序---<br />";
$num2=array('26','3',);
sort($num2,SORT_NUMERIC);
foreach ($num2 as $mychrs)
echo $mychrs." ";

echo "<br />---按字元升序排序---<br />";
$num3=array('26','3');
sort($num3,SORT_STRING);
foreach ($num3 as $mychrs)
echo $mychrs." ";
?>

SORT_NUMERIC和SORT_STRING用來聲明按數字或字元的升序排列。如果按照數字升序排列是:3,26;但如果按照字元升序排列則是:26,3了。

PHP中除了升序函數以外,還有降序或稱反向排列的函數,就是rsort()函數,比如:

$num1=range(1,9);
rsort($num1); //這裡其實就相當於range(9,1)

3,PHP中關聯陣列的排序

PHP除了支援數字索引數組以外,還支援相關數組。比如如下數組就是一個相關(關聯)數組:

$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');

使用sort($peoples)預設即是按照元素定義值的升序排序,在關聯陣列中可使用asort()函數表示按元素值升序排序,關聯陣列中最主要的則是可按照關鍵字(如xm、xb、mz等)的升序排序,該方法是用函數ksort()函數。

<?php
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');
foreach ($peoples as $mychrs)
echo $mychrs." ";

echo "<br />--按元素值升序排列--<br />";
asort($peoples);
foreach ($peoples as $mychrs)
echo $mychrs." ";

echo "<br />--按關鍵字升序排列--<br />";
ksort($peoples);
foreach ($peoples as $mychrs)
echo $mychrs." ";
?>
和常規數組擁有sort()升序函數的反向排序rsort()降序函數相對應的,關聯陣列也有對應的降序函數:asort()函數和arsort()函數、ksort()函數和krsort()函數。
記憶:原型函數是sort(),其中a、k表示關聯陣列相關必須前置,反向排序使用r修飾。

4,PHP數組元素隨機排序

PHP中使用shuffle()函數將數組元素進行隨機的重新排序,每次都會顯示不同的排序組合,比如:

<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
shuffle($fer); //隨即排序,每重新整理一次頁面則進行一次隨機排序。

foreach ($fer as $mychrs)
echo $mychrs." ";
?>

5,PHP數組按原順序反向排序

PHP中可使用array_reverse()函數將數組元素按原順序反向排序。比如:

<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
foreach ($fer as $mychrs)
echo $mychrs." ";

$fer=array_reverse($fer); //將數組內元素按原順序反向排序
echo "<br />--按原順序反向--<br />";
foreach ($fer as $mychrs)
echo $mychrs." ";
?>

output: cnbruce cnrose cnjames cnanne
--按原順序反向--
cnanne cnjames cnrose cnbruce

注意這裡的 $fer=array_reverse($fer); 在此之前的任何排序函數均只是聲明引用,並沒有對原有數組進行重新定義,但當我調試該函數時則需要重新定義。這是因為array_reverse()是返 回原數組修改後的副本,如果不需要原有數組,可對原數組重新定義達到覆蓋的目的,否則就另外定義數組儲存副本,比 如:$fer_bak=array_reverse($fer_bak);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.