PHP系列(五)PHP字串處理
php字串處理
1、字串的處理方式(分割匹配找查替換)
//宣告一個關聯陣列,陣列名為$lamp, 成員有4個
$lamp = array( 'os'=>'Linux','webserver' =>'Apache', 'db'=>'MySQL', 'language'=>'php' );
//可以解析,雙引號中對於陣列索引,右方括號(])標誌著索引的結束,
//但是注意:不要在[]中使用引號,否則會在引號處結束
echo "A OS is $lamp[os].";
//不能解析,如果在對關聯陣列下標使用引號就必須使用花括號,否則將出錯
echo "A OS is $lamp['os'].";
//可以解析,如果在對關聯陣列下標使用引號就必須使用花括號,否則將出錯
echo "A OS is {$lamp['os']}.";
echo "A OS is {$lamp[os]}."; //可以解析,注意PHP將陣列下標看作常量名,並且常不存在時將常量名稱轉為了字中,效率低
echo "This square is $square->widthmeters broad."; //可以解析,物件中的成員也可以解析
echo "This square is$square->width00 centimeters broad."; //不能解析,可以使用花括號解決
echo "This square is{$square->width}00 centimeters broad."; //可以解析, 使用花括號解決
2、常用的字串輸出函式
Echo() 輸出字串 //echo 指令方式可以列印多個值
Print() 輸出一個字串 //有返回值、
區別:
Print有返回值 、echo沒有
Print不能列印多個值、但echo指令方式可以列印多個值
Echo “aa”,”bb”,”cc”;
Die() exit()輸出一條訊息、並退出當前指令碼
Printf() 輸出格式化字串
Sprint()把格式化的字串寫入一個變數中
Sprint(“%s”, $int);
%% 返回百分比符號
%b 二進位制數
%c 依照ASCII值的字元
%d 帶符號的十進位制數
%e 可續計數法(1.5e3)
%u 無符號十進位制數
%f或%F 浮點數
%o 八進位制數
%s 字串
%x或%X 十六進位制數
3、字串處理函式
去除空格和字串填充函式
Ltrim(string str[,string charlist])
返回值:字串
本函式用來刪去字串中的前導空格
Rtrim(string str[,stringcharlist])
返回值:字串
本函式用來刪除字串的字尾空格
Trim(string str[,string charlist])
返回值:字串
截去字串首尾的空格、本函式返回字串string 首尾的空白字元去除後的字串
//宣告一個字串、其中左側有三個空格、右側有二個空格、總長度9個字元
$str = “ lamp ”;
Echo strlen($str); //輸出字串的總長度為9
Echo strlen(ltrim($str)) //去掉左側空格後的長度輸出為6
Echo strlen(rtrim($str))//去掉右側空格後的長度輸出為7
Echo strlen(trim($str))//去掉二側空格後的長度輸同為4;
$str = “123 This is a test…”;
Echo ltrim($str, “0…9”);//過慮掉字串左側的數字、輸出為This is a test…
Echo rtrim($str, “.”); //過慮掉字串右側所有“.”;輸出為:123 Thisis a test
Echo trim($str, “0..9 A..Z”); //過慮掉字串二端的數字和大寫字母還有“.”
輸出為:his is a test
Str_pad()按需要對字串進行填充
語法:
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); //指定長度為10、預設空格在右邊填補“LAMP”;
Echo str_pad($str, 10,”---”,STR_PAD_LEFT)//指定長度為10、 指定在左邊填補“---lamp”;
Echo str_pad($str, 10, “--”,STR_PAD_BOTH)//指定長度為10、指定二端填補“---lamp---”
Echo str_pad($str,6,”--”,STR_PAD_RIGHT);//指定長度為6、預設在右邊填補“lamp--”;
字串大小寫的轉換
Strtolower(string)//將string全部變成小寫字元
Strtoupper(string)//將string全部就成大寫字元
Ucfirst(string)//將字串第一個字元改大寫
Ucwords(string)//將字串每個字元第一個字母改大寫
4、和html標籤相關聯的字串格式化
Htmlspecialchars()把預定義的字元"<" (小於)和 ">" (大於)轉換為 HTML 實體
Stripslashes()函式刪除由addslashes()函式新增的反斜槓
Addslashes()在每個雙引號(")前新增反斜槓
<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()函式剝去字串中的 HTML、XML 以及 PHP 的標籤
strcmp(string1,string2)比較兩個字串(區分大小寫)
本函式返回:
0 如果兩個字串相等
-1 如果 string1 小於 string2
1 如果 string1 大於 string2
Strcasecmp(string1,string2)比較兩個字串、不區分大小寫(用法同上)
按自然順序排序(用法同上)
Strnatcmp(string1,string2)區分大小寫
Strnatcasecmp(string1,string2)不區分大小寫
一、不用php函式、用方法寫一個反轉字串的函式
$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); 返轉字串、顯示為:moc.ydetib.www
二、寫一函式將字串進行三個分組
$str = "1234567890";
function nformat($str){
$n= ""; //臨時的變數
$m= strlen($str);//獲取字串長度
$k= $m % 3;//讓整個長度和3取餘之後餘數是多少=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
三、請寫一個獲取副檔名的函式
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)搜尋字串在另一字串中的第一次出現(區分大小寫 stristr不區分大小寫)
string 必需。規定被搜尋的字串。
Search 必需。規定所搜尋的字串。
Before_search 可選。預設值為 "false" 的布林值。
如果設定為 "true",它將返回 search 引數第一次出現之前的字串部分。
explode(separator, string,limit) 把字串打散為陣列
separator必需。規定在哪裡分割字串。
String必需。要分割的字串。
大於 0 - 返回包含最多 limit 個元素的陣列
小於 0 - 返回包含除了最後的 -limit 個元素以外的所有元素的陣列 0 - 返回包含一個元素的陣列
strrpos(string,find,start) 查詢字串在另一字串中最後一次出現的位置。
String 必需。規定被搜尋的字串。
Find 必需。規定要查詢的字元。
Start 可選。規定在何處開始搜尋。
substr(string,start,length) 返回字串的一部分
string 必需。規定要返回其中一部分的字串。
Start 必需。規定在字串的何處開始。
正數 - 在字串的指定位置開始
負數 - 在從字串結尾開始的指定位置開始
0 - 在字串中的第一個字元處開始
Length 可選。規定被返回字串的長度。預設是直到字串的結尾。
正數 - 從 start 引數所在的位置返回的長度
負數 - 從字串末端返回的長度
array_pop(array)彈出並返回 array
陣列的最後一個單元
四、寫一個函式、算出二個檔案的相對路徑
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
本文轉自 sswqzx 51CTO部落格,原文連結:http://blog.51cto.com/sswqzx/1965458
相關文章
- PHP 陣列 & 字串處理PHP陣列字串
- php字串處理函式大全PHP字串函式
- PHP系列(七)PHP錯誤異常處理PHP
- PHP處理字串的幾段程式碼PHP字串
- PHP轉Go系列:字串PHPGo字串
- 002——php字串中的處理函式(一)PHP字串函式
- 處理PHP中字串的常用操作及函式PHP字串函式
- [php]php錯誤處理機制PHP
- PHP 錯誤處理PHP
- PHP 時間處理PHP
- php錯誤處理PHP
- PHP處理-微信支付PHP
- PHP 去除 bom 頭,JSON_decode () 返回 NULL,PHP 無法對字串做處理PHPJSONNull字串
- PHP 核心 - 異常處理PHP
- ctags 處理 PHP traitPHPAI
- PHP中處理emoji表情PHP
- php事務處理方法PHP
- PHP表單處理指南PHP
- PHP日誌處理類PHP
- PHP錯誤處理和異常處理PHP
- PHP——字串PHP字串
- PHP (超文字前處理器)PHP
- PHP 核心特性 - 錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP
- 關於php rsa加密處理PHP加密
- php表單處理-143PHP
- PHP 多工協程處理PHP
- PHP 多程式處理任務PHP
- PHP影像處理開發庫PHP
- PHP中如何處理時區PHP
- PHP處理XML的例項PHPXML
- 使用PHP錯誤處理 (轉)PHP
- PHP分割字串PHP字串
- PHP基礎:異常處理ExceptionPHPException
- PHP 開發版本問題處理PHP
- php實現ffmpeg處理視訊PHP
- PHP安裝後錯誤處理PHP
- PHP 遍歷元素並分批處理PHP