Linux , webserver => Apache ..."/>
您好,登錄后才能下訂單哦!
?php字符串處理
1、字符串的處理方式(分割匹配找查替換)
//聲明一個(gè)關(guān)聯(lián)數(shù)組,數(shù)組名為$lamp, 成員有4個(gè)
$lamp = array( 'os'=>'Linux','webserver' =>'Apache', 'db'=>'MySQL', 'language'=>'php' );
//可以解析,雙引號(hào)中對(duì)于數(shù)組索引,右方括號(hào)(])標(biāo)志著索引的結(jié)束,
//但是注意:不要在[]中使用引號(hào),否則會(huì)在引號(hào)處結(jié)束
echo "A OS is $lamp[os].";
?
//不能解析,如果在對(duì)關(guān)聯(lián)數(shù)組下標(biāo)使用引號(hào)就必須使用花括號(hào),否則將出錯(cuò)
echo "A OS is $lamp['os'].";
?
//可以解析,如果在對(duì)關(guān)聯(lián)數(shù)組下標(biāo)使用引號(hào)就必須使用花括號(hào),否則將出錯(cuò)
echo "A OS is {$lamp['os']}.";
?
echo "A OS is {$lamp[os]}."; //可以解析,注意PHP將數(shù)組下標(biāo)看作常量名,并且常不存在時(shí)將常量名稱轉(zhuǎn)為了字中,效率低
echo "This square is $square->widthmeters broad."; //可以解析,對(duì)象中的成員也可以解析
echo "This square is$square->width00 centimeters broad."; //不能解析,可以使用花括號(hào)解決
echo "This square is{$square->width}00 centimeters broad."; //可以解析, 使用花括號(hào)解決
?
2、常用的字符串輸出函數(shù)
Echo() 輸出字符串 //echo 指令方式可以打印多個(gè)值
Print() 輸出一個(gè)字符串? //有返回值、
區(qū)別:
Print有返回值 、echo沒(méi)有
Print不能打印多個(gè)值、但echo指令方式可以打印多個(gè)值
Echo?“aa”,”bb”,”cc”;
?
Die()? exit()輸出一條消息、并退出當(dāng)前腳本
?
Printf() 輸出格式化字符串
Sprint()把格式化的字符串寫入一個(gè)變量中
Sprint(“%s”, $int);
%% 返回百分比符號(hào)
%b? 二進(jìn)制數(shù)
%c? 依照ASCII值的字符
%d? 帶符號(hào)的十進(jìn)制數(shù)
%e?? 可續(xù)計(jì)數(shù)法(1.5e3)
%u? 無(wú)符號(hào)十進(jìn)制數(shù)
%f或%F? 浮點(diǎn)數(shù)
%o?? 八進(jìn)制數(shù)
%s? 字符串
%x或%X?? 十六進(jìn)制數(shù)
?
3、字符串處理函數(shù)
去除空格和字符串填充函數(shù)
Ltrim(string? str[,string charlist])
返回值:字符串
本函數(shù)用來(lái)刪去字符串中的前導(dǎo)空格
?
Rtrim(string str[,stringcharlist])
返回值:字符串
本函數(shù)用來(lái)刪除字符串的后綴空格
?
Trim(string? str[,string charlist])
返回值:字符串
截去字符串首尾的空格、本函數(shù)返回字符串string 首尾的空白字符去除后的字符串
//聲明一個(gè)字符串、其中左側(cè)有三個(gè)空格、右側(cè)有二個(gè)空格、總長(zhǎng)度9個(gè)字符
$str = “??lamp? ”;
Echo strlen($str);? //輸出字符串的總長(zhǎng)度為9
Echo strlen(ltrim($str)) //去掉左側(cè)空格后的長(zhǎng)度輸出為6
Echo strlen(rtrim($str))//去掉右側(cè)空格后的長(zhǎng)度輸出為7
Echo strlen(trim($str))//去掉二側(cè)空格后的長(zhǎng)度輸同為4;
?
$str = “123 This is a test…”;
Echo ltrim($str, “0…9”);//過(guò)慮掉字符串左側(cè)的數(shù)字、輸出為This is a test…
Echo rtrim($str, “.”); //過(guò)慮掉字符串右側(cè)所有“.”;輸出為:123 Thisis a test
Echo trim($str, “0..9 A..Z”); //過(guò)慮掉字符串二端的數(shù)字和大寫字母還有“.”
輸出為:his is a test
?
Str_pad()按需要對(duì)字符串進(jìn)行填充
語(yǔ)法:
String str_pad(string input, int pad_length,STR_PAD_LEFT)
STR_PAD_LEFT? 字符串左添加
STR_PAD_RIGHT 字符串右添加
STR_PAD_BOTH 字符串二端添加
?
$str =”LAMP”;
Echo str_pad($str, 10);? //指定長(zhǎng)度為10、默認(rèn)空格在右邊填補(bǔ)“LAMP”;
Echo str_pad($str, 10,”---”,STR_PAD_LEFT)//指定長(zhǎng)度為10、 指定在左邊填補(bǔ)“---lamp”;
Echo str_pad($str, 10, “--”,STR_PAD_BOTH)//指定長(zhǎng)度為10、指定二端填補(bǔ)“---lamp---”
Echo str_pad($str,6,”--”,STR_PAD_RIGHT);//指定長(zhǎng)度為6、默認(rèn)在右邊填補(bǔ)“lamp--”;
?
字符串大小寫的轉(zhuǎn)換
Strtolower(string)//將string全部變成小寫字符
Strtoupper(string)//將string全部就成大寫字符
Ucfirst(string)//將字符串第一個(gè)字符改大寫
Ucwords(string)//將字符串每個(gè)字符第一個(gè)字母改大寫
?
4、和html標(biāo)簽相關(guān)聯(lián)的字符串格式化
Htmlspecialchars()把預(yù)定義的字符"<" (小于)和 ">" (大于)轉(zhuǎn)換為 HTML 實(shí)體
Stripslashes()函數(shù)刪除由addslashes()函數(shù)添加的反斜杠
Addslashes()在每個(gè)雙引號(hào)(")前添加反斜杠
<from action=”” method=”post”>
?Title:<input? type=”text” name=”title” value=”” />
<input type=”submit”? name=”dosubmit”? value=”提交”? />
</form>
?
<?php
If(isset($_POST[‘dosubmit’])){
???????? $title= $_POST[‘title’];
Echo stripslashes(addslashes($title)).”<br>”;
Echo htmlspecialchars($title);
}
?>
Strip_tags()函數(shù)剝?nèi)プ址械?/span> HTML、XML 以及 PHP 的標(biāo)簽
?
strcmp(string1,string2)比較兩個(gè)字符串(區(qū)分大小寫)
本函數(shù)返回:
0 ?如果兩個(gè)字符串相等
-1 ?如果 string1 小于 string2
1? ?如果 string1 大于 string2
Strcasecmp(string1,string2)比較兩個(gè)字符串、不區(qū)分大小寫(用法同上)
按自然順序排序(用法同上)
Strnatcmp(string1,string2)區(qū)分大小寫
Strnatcasecmp(string1,string2)不區(qū)分大小寫
一、不用php函數(shù)、用方法寫一個(gè)反轉(zhuǎn)字符串的函數(shù)
$str = "www.bitedy.com";
function fan($str){
???????? $n= "";
???????? $m= strlen($str)-1;
???????? for($i=$m;$i>0; $i--){
?????????????????? $n.=$str{$i};
???????? }
return $n;
}
echo fan($str);
//echostrrev($str); 返轉(zhuǎn)字符串、顯示為:moc.ydetib.www
?
二、寫一函數(shù)將字符串進(jìn)行三個(gè)分組
$str = "1234567890";
function nformat($str){
???????? $n= ""; //臨時(shí)的變量
???????? $m= strlen($str);//獲取字符串長(zhǎng)度
???????? $k= $m % 3;//讓整個(gè)長(zhǎng)度和3取余之后余數(shù)是多少=0
???????? for($i=0;$i<$m; $i++){
?????????????????? if($i%3== $k && $i!=0){
??????????????????????????? $n.=",";
?????????????????? }
?????????????????? $n.=$str{$i};
???????? }
return $n;
}
echo nformat($str);
顯示為:1,234,567,890
?
三、請(qǐng)寫一個(gè)獲取文件擴(kuò)展名的函數(shù)
function Demo($str){
???????? if(strstr($str, "?")){
?????????????????? list($file,$act) = explode("?",$str);
???????? }else{
?????????????????? $file= $str;
???????? }
$n = strrpos($file,"/")+1;
$filename = substr($file,$n);
?
$arr = explode(".",$filename);
echo array_pop($arr)."<br>";
}
Demo("http://www.bitedy.com/www/nat/init.inc.php?username=100");
Demo("http://www.bitedy.com/www/nat/init.inc.php");
Demo("C:/www/nat/init.inc.php");
Demo("init.inc.php");
Demo("/www/nat/init.inc.php");
顯示為:php php php php php
strstr(string,search,before_search)搜索字符串在另一字符串中的第一次出現(xiàn)(區(qū)分大小寫 stristr不區(qū)分大小寫)
string 必需。規(guī)定被搜索的字符串。
Search 必需。規(guī)定所搜索的字符串。
Before_search 可選。默認(rèn)值為 "false" 的布爾值。
如果設(shè)置為 "true",它將返回?search?參數(shù)第一次出現(xiàn)之前的字符串部分。
explode(separator, string,limit) 把字符串打散為數(shù)組
separator必需。規(guī)定在哪里分割字符串。
String必需。要分割的字符串。
大于 0 - 返回包含最多?limit?個(gè)元素的數(shù)組
小于 0 - 返回包含除了最后的 -limit?個(gè)元素以外的所有元素的數(shù)組??? 0 - 返回包含一個(gè)元素的數(shù)組
?
strrpos(string,find,start) 查找字符串在另一字符串中最后一次出現(xiàn)的位置。
String? 必需。規(guī)定被搜索的字符串。
Find? 必需。規(guī)定要查找的字符。
Start? 可選。規(guī)定在何處開始搜索。
substr(string,start,length) 返回字符串的一部分
string?必需。規(guī)定要返回其中一部分的字符串。
Start? 必需。規(guī)定在字符串的何處開始。
正數(shù) - 在字符串的指定位置開始
負(fù)數(shù) - 在從字符串結(jié)尾開始的指定位置開始
0 - 在字符串中的第一個(gè)字符處開始
Length ?可選。規(guī)定被返回字符串的長(zhǎng)度。默認(rèn)是直到字符串的結(jié)尾。
正數(shù) - 從?start?參數(shù)所在的位置返回的長(zhǎng)度
負(fù)數(shù) - 從字符串末端返回的長(zhǎng)度
array_pop(array)彈出并返回?array
?數(shù)組的最后一個(gè)單元
?
四、寫一個(gè)函數(shù)、算出二個(gè)文件的相對(duì)路徑
error_reporting(E_ALL & !E_NOTICE);
function ab($a, $b){
???????? $a= explode("/", trim(dirname($a), "/"));
???????? $b= explode("/", trim(dirname($b), "/"));
???????? $n= max(count($a),count($b));
???????? for($i=0;$i<$n; $i++){
?????????????????? if($a[$i]==$b[$i]){
??????????????????????????? unset($a[$i]);
??????????????????????????? unset($b{$i});
?????????????????? }else{
??????????????????????????? break;
?????????????????? }
???????? }
$path = str_repeat("../",count($b)).implode("/", $a);
return $path;
}
$a = "/a/b/y/12/14.php";
$b = "/a/b/c/d/11/y/24.php";
echo ab($a, $b);
顯示為:../../../../y/12
?
微信掃一掃?、關(guān)注公眾號(hào)
?? 不定時(shí)分享資料視頻
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。