中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中常用字符串處理函數的知識總結

發布時間:2020-07-31 13:10:05 來源:網絡 閱讀:633 作者:溫小城 欄目:web開發

1、字符串長度函數

strlen獲取字符串長度

int strlen ( string $string )

    成功則返回字符串string的長度;如果string為空,則返回 0

mb_strlen獲取字符串長度,多字節支持,支持中文

    int mb_strlen ( string $str [, string $encoding ] )

encoding 參數為字符編碼。如果省略,則使用內部字符編碼。

$str = '中國,你好';

echo strlen($str);//15

echo mb_strlen($str,'utf-8');//5

2、字符串查找函數

strpos查找字符串首次出現的位置

    int strpos ( string $haystack , mixed$needle [, int $offset = 0 ] )

返回 needle haystack 中首次出現的數字位置。

===全等號的做作,當使用strpos查找第一個字符的位置(即0)的時候,用于if判斷時,會被if判斷為假。

例子:應這樣來判斷

$str1 = 'abcdefg';

$str2 = 'a';

 

if(strpos($str1,$str2) !==false){

    echo 'a';

}else{

    echo '沒有a';

}

stripos查找字符串首次出現的位置(不區分大小寫)

 

$strr1 = 'Abcdefag';

$strr2 = 'a';

echo stripos($strr1,$strr2);#1

 

strrpos()計算指定字符串在目標字符串中最后一次出現的位置

 

$strr1 = 'abcdefag';

$strr2 = 'a';

echostrrpos($strr1,$strr2);#6

 

 

strrchr—查找指定字符在字符串中的最后一次出現,返回的是從該查找字符開始到字符串最后位置之間的字符(包括了該查找字符)

string strrchr ( string$haystack , mixed $needle )

$strr1 = 'Abcdefag';

$strr2 = 'd';

echo strrchr($strr1,$strr2);#defag

 

strstr查找指定字符在字符串中第一次出現的位置,返回的是從該查找字符開始到字符最后位置之間的字符strstr($str1,$str2)(包括了該查找字符)

$strr1 = 'Abcdefag';

$strr2 = 'b';

echostrstr($strr1,$strr2);#bcdefag

 

stristr查找指定字符在字符串中第一次出現的位置,返回的是從該查找字符開始到字符最后位置之間的字符,忽略大小寫

string stristr ( string$haystack , mixed $needle [, bool $before_needle = false ] )

返回 haystack 字符串從 needle 第一次出現的位置開始到 haystack 結尾的字符串。

 

 

字符串替換函數

 

str_replace:子字符串替換函數,$str中查找 searchreplace來替換

str_replace(search,replace,$str)

 

$str = 'hello world';

echostr_replace('ll','LL',$str);#heLLo world

 

str_ireplace: 子字符串替換函數,$str中查找 searchreplace來替換,忽略大小寫

str_irreplace(search,replace,$str):

 

$str = 'helLo woRld';

echostr_ireplace('ll','wencheng',$str);

 

strtr—轉換指定字符,在$str中查找searchreplace來替換

strtr($str,search,replace)replace中字符的個數大于search中的字符個數時,與search中的字符個數為準,其余的將被截取掉

echostrtr("xcroom","xc","op1234");#oproom

replace中字符的個數小于search中的字符個數時,與replace中的字符個數為準,其余的將被保留

echo strtr("xcroom","xc","u");#ucroom

支持數組替換xcroomstring

$str = array('xc'=>'cx','om'=>'mo');

echo strtr("xcroomstring",$str);#cxromostring

 

 

substr_replace:替換字符串的子串

 

substr_replace($Str,$replacement,$start[,length])

$str原始字符串,$rep替換后的新字符串,$start起始位置,$length替換的長度,該項可選

 

參數

str:輸入的字符串。

replacement:替換的字符串。

start

如果 start 為正數,替換將從 string start 位置開始。

如果 start 為負數,替換將從 string 的倒數第 start 個位置開始。

length

如果設定了這個參數并且為正數,表示 string 中被替換的子字符串的長度。如果設定為負數,它表示待替換的子字符串結尾處距離 string 末端的字符個數。如果沒有提供此參數,那么它默認為 strlen( string ) (字符串的長度)。當然,如果 length 0,那么這個函數的功能為將 replacement 插入到 string start 位置處。

例子:

$str = 'hello world';

 //從開頭位置替換,替換全部

echosubstr_replace($str,'bbo',0),'<br />';#bbo

 

//從開頭位置替換,替換3個字符

echosubstr_replace($str,'bbo',0,3),'<br />';#bbolo world

 

//從字符串的倒數第幾個字符開始替換,當第三個指定了為負數時,第四個參數為0時,代表的是將bbo插入至倒數第三個位置上,替換0

echosubstr_replace($str,'bbo',-3,0),'<br />';#hello wobborld

echosubstr_replace($str,'bbo',-3,1),'<br />';#hello wobbold,替換1

echosubstr_replace($str,'bbo',-3,2),'<br />';#hello wobbod,替換2

echosubstr_replace($str,'bbo',-3,3),'<br />';#hello wobbo,替換3

echosubstr_replace($str,'bbo',-3,4),'<br />';#hello wobbo,替換3

echosubstr_replace($str,'bbo',-3,-1),'<br />';#hello wobbod,替換從尾部開始的1,3個字符

echosubstr_replace($str,'bbo',-3,-2),'<br />';#hello wobbold

 

//如果有10個詞需要進行替換,可以用數組做參數,批量替換

$cont = 'abcde hello world';

$old =array('a','b','c','d','e');

$new = array('A','B','C','D','E');

echo str_replace($old,$new,$cont),'<br />'; // ABCDE hEllo world

 

截取子字符函數

substr返回字符串的子串

substr($str,int start[,intlength]):$strstrat位置開始提取[length長度的字符串]

 

參數

string:輸入字符串。

start

如果 start 是非負數,返回的字符串將從 string start 位置開始,從 0 開始計算。

例如,在字符串“abcdef”中,在位置 0 的字符是“a”,位置 2 的字符串是“c”等等。

如果 start 是負數,返回的字符串將從 string 結尾處向前數第 start 個字符開始。

如果 string 的長度小于或等于 start,將返回 FALSE

length

如果提供了正數的 length,返回的字符串將從 start 處開始最多包括 length 個字符(取決于 string 的長度)。

 

如果提供了負數的 length,那么 string 末尾處的許多字符將會被漏掉,漏掉-n個(若 start 是負數則從字符串尾部算起)。如果 start 不在這段文本中,那么將返回一個空字符串。

 

如果提供了值為 0FALSE NULL length,那么將返回一個空字符串。

 

如果沒有提供 length,返回的子字符串將從 start 位置開始直到字符串結尾。

例子:

<?php

$rest =substr("abcdef", -1);    # 返回 "f"

$rest =substr("abcdef", -2);    # 返回 "ef"

$rest = substr("abcdef",-3, 1); # 返回 "d"

$rest =substr("abcdef", 0, -1);  # 返回 "abcde"

$rest =substr("abcdef", 2, -1);  # 返回 "cde"

$rest =substr("abcdef", 4, -4);  # 返回 ""

$rest =substr("abcdef", -3, -1); # 返回 "de"

?>

 

分割,連接,反轉函數

分割函數:

str_split將字符串轉換為數組(字符到數組)

str_split($str,len):$strlen長度進行分割返回數組

$str ='0123456789';

print_r(str_split($str,3));

//Array ( [0] =>012 [1] => 345 [2] => 678 [3] => 9 )

 

$str ='0123456789';

print_r(str_split(strrev($str),3));//strrev()為字符串反轉函數

Array ( [0] =>987 [1] => 654 [2] => 321 [3] => 0 )

 

split—用正則表達式將字符串分割到數組中

array split ( string $pattern, string $string [, int $limit ] )

 

explode—使用一個字符串分割另一個字符串,分割的字符可以為空格和其他標點符號類的字符

array explode ( string$separator , string $string [, int $limit ] )

 

$str ="ab:cd:ef:gh";

print_r(explode(':',$str));

Array ( [0] => ab [1]=> cd [2] => ef [3] => gh )

 

implode—— 將數組用特定的分割符轉變為字符串(數組到字符)

 

$a = array('a','b','c','d','e','f','g');

echo implode($a,'|');   //分隔符為指定的字符串a|b|c|d|e|f|g

echo implode($a);       //直接轉化成字符串 abcdefg

 

 

字符串比較函數

strcmp:二進制安全字符串比較

int strcmp ( string $str1 ,string $str2 )

 

返回值

如果 str1 小于 str2,返回負數;如果 str1 大于 str2,返回正數;二者相等則返回 0

 

strcasecmp—二進制安全比較字符串(不區分大小寫)

int strcasecmp ( string $str1, string $str2 )

 

返回值

如果 str1 小于 str2,返回負數;如果 str1 大于 str2,返回正數;二者相等則返回 0

 

字符串轉換函數:

strtolower($str)字符串轉換為小寫

$str = 'HELLO WORLD';

echo strtolower($str); #HELLOWORLD

 

strtoupper($str)字符串轉換為大寫

$str = 'hello world';

echo strtoupper($str);#helloworld

 

 

ucfirst($str)將字符串的第一個字符轉換為大寫

$str = 'hello world';

echo ucfirst($str);# Helloworld

 

ucwords($str)將每個單詞的首字母轉換為大寫

$str = 'hello world';

echo ucwords($str);#HelloWorld

 

空白處理函數

trim:去除字符串首尾處的空白字符(或者其他字符)

string trim ( string $str [,string $charlist ] )

 

ltrim:去除字符串首處的空白字符(或者其他字符)

string ltrim ( string $str [,string $charlist ] )

 

rtrim:去除字符串尾處的空白字符(或者其他字符)

string rtrim ( string $str [,string $charlist ] )

 

<?php

//空白字符處理函數

$text   = "\t\tThese are a few words :)...  ";

$binary = "\x09Examplestring\x0A";

$hello  = "Hello World";

 

var_dump($text);

 

$textd = trim($text);

var_dump($textd);#

/*

string(32) "        These are a few words :) ...  "

string(28) "These are afew words :) ..."

*/

 

$binaryd =trim($binary,"\x00..\x1f");

var_dump($binaryd);

//string(14) "Examplestring"

 

$trimmed = trim($hello,"Hdle");

var_dump($trimmed);

//string(5) "o Wor"

 

?>

 

 

chunk_split—將字符串分割成小塊

 

string chunk_split ( string$body [, int $chunklen [, string $end ]] )

 

$str = 'abcdefghijk';

#$str按兩個字符以指定的格式進行分割

echochunk_split($str,2,"/");

ab/cd/ef/gh/ij/k/

 

 

str_pad—使用另一個字符串填充字符串為指定長度

 

string str_pad ( string$input , int $pad_length [, string $pad_string = " " [, int $pad_type= STR_PAD_RIGHT ]] )

 

<?php

$input = "Alien";

echo str_pad($input,10);                      // 輸出 "Alien     "

echo str_pad($input, 10,"-=", STR_PAD_LEFT);  // 輸出"-=-=-Alien"

echo str_pad($input, 10,"_", STR_PAD_BOTH);   // 輸出"__Alien___"

echo str_pad($input, 6 ,"___");               // 輸出 "Alien_"

?>

 

字符串轉義函數;

為什么需要轉義:

如果用戶發布的內容,直接顯示在頁面上,那么用戶可能發布帶有html代碼,甚至js代碼的內容.當用戶瀏覽內容時,也可能引來***. XSS***

 

addslashes:使用反斜線引用字符串

string addslashes ( string$str )

 

返回字符串,該字符串為了數據庫查詢語句等的需要在某些字符前加上了反斜線。這些字符是單引號(')、雙引號(")、反斜線(\)與 NULNULL 字符)。


注:

在使用addslashes請注意,系統有一個魔術引號的選項,如果該選項開啟,則會自動把$_GET,$_POST,$_COOKIE,$_SESSION中的數據,自動轉義.

不過該選項,PHP5.0以上已經默認關閉.

試想如下場景:

如果魔術引號開啟, $_POST過來的值,自動轉義,但我們不知道魔術引號已開啟,還手動轉了一次.

后果:'=>\'==>\\\', 重復轉義了.

解決魔術引號的問題

如何解決?

:判斷一下當前的環境,魔術引號是否開啟.

如果開啟,則不手動addslashes,如沒開啟,addsalashes

如何判斷當前魔術引號是否開啟??????

get_magic_quotes_gpc()函數來判斷,可以用合理的轉義來避免sql注入***



例子:

<?php

//字符串轉義函數

$str = "abdc'ji*-";

echo addslashes($str),'<br/>';#abdc\'ji*-

 

$str ="abdc'\ji*-";

echo addslashes($str),'<br/>';#abdc\'\\ji*-

//驗證魔術引號是否開啟,用get_magic_quotes_gpc()函數進行判斷

if(get_magic_quotes_gpc()){

    echo "魔術引號已開啟";

}else{

    echo "魔術引號未開啟";

}  

?>

 

stripslashes:字符的反轉義,反引用一個字符串

返回一個去除轉義反斜線后的字符串(\' 轉換為 ' 等等)。雙反斜線(\\)被轉換為單個反斜線(\)。

 

htmlspecialchars — Convertspecial characters to HTML entities

將字符串中一些字符轉換為HTML實體

<?php
$new = htmlspecialchars("<ahref='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;ahref=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

 

htmlspecialchars_decode():html實體轉換成字符

 

$new1 = "&lt;ahref=&#039;test&#039;&gt;Test&lt;/a&gt; ";

echohtmlspecialchars_decode($new1);//<ahref=&#039;test&#039;>Test</a>


htmlentities  將字符串中所有可轉換字符轉換為HTML實體

    string htmlentities(string$string)

    $str = "this is'<b>xcroom</b>'";

    echo htmlentities($str);//this is '<b>xcroom</b>'

 

html_entity_decode  htmlentities ()函數的反函數,將HTML實體轉換為字符

    $str = "this is'<b>xcroom</b>'";

    $str1 = htmlentities($str);//this is '<b>xcroom</b>'

    echo html_entity_decode($str1);//this is 'xcroom'


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清水县| 鸡东县| 胶南市| 和静县| 昭苏县| 揭西县| 昆山市| 乐都县| 德格县| 兴隆县| 天柱县| 遵化市| 东方市| 锡林郭勒盟| 镇赉县| 平凉市| 陇西县| 台北市| 临漳县| 林西县| 永嘉县| 诸暨市| 旌德县| 镇平县| 安阳市| 南昌县| 新安县| 铜鼓县| 绥中县| 塔城市| 开封市| 阿尔山市| 凤山县| 桃园县| 平利县| 札达县| 远安县| 修文县| 永新县| 崇阳县| 安龙县|