1. 程式人生 > >php字串總結

php字串總結

                                                 php字串總結

<?php
// 字串宣告 單引號 雙引號 heredoc(相當於雙引號) nowdoc(相當於單引號)
// 雙引號可以解析變數和轉義字元 單引號效率高
// 不加引號預設是雙引號 heredoc
echo <<< 'doc'
123
doc;
echo "<br>";
// heredoc與其他字串的拼接
echo <<< 'DC'
123
DC
.'A';
$_ab = ['id'=>1];
echo "<br>";
//如果字串裡有陣列變數要加上{}
echo "123{$_ab['id']}".'<br>';

// 字串的增刪改查 通過索引
$_s = '12345';
$_s[5] = '6';      //新增
echo $_s.'<br>';   //123456
$_s[5] = '';       //刪除
echo $_s.'<br>';   //12345
$_s[0] = '0';      //修改
echo $_s.'<br>';   //02345

// 字串操作函式
$str = '123456789';
// 獲取子串 substr
echo substr($str, 0,2).'<br>';   //12
echo substr($str, -2,2).'<br>';  //89
// 替換子串 substr_replace
echo substr_replace($str, '0', 0,1).'<br>';  //023456789   替換
echo substr_replace($str, '', 0,1).'<br>';   //23456789    刪除
echo substr_replace($str, '0', 0,0).'<br>';  //0123456789  新增
// 查詢子串出現的次數
echo substr_count($str, '1',0,5).'<br>';                 //1
// 比較字串 0:相等 >0:第一個子串大於第二個 <0:第一個小於第二個
// 第三個引數是 第一個字串開始比較的位置
echo substr_compare('1234',substr($str, 0,4) ,0).'<br>'; //0


// 查詢索引 strpos 第三個引數是從第幾個字元開始查詢 預設為 0
echo strpos($str, '2',1).'<br>';     // 1 
// 查詢指定字元開始的剩下子串 true:顯示前面的
echo strstr($str, '2').'<br>';       // 23456789
echo strstr($str, '2',true).'<br>';  // 1
// 填充與替換 替換後的字串長度 替換內容 替換方式
echo str_pad($str, 20,'*',STR_PAD_RIGHT).'<hr>'; //123456789***********
//字元重複函式
echo str_repeat('ab',5).'<br>';         //ababababab
// 隨機打亂字串
echo str_shuffle($str).'<br>';  		//隨機打亂
// 字元替換函式 支援陣列多替換
echo str_replace('1','0',$str).'<br>';  // 023456789 1替換成0
$arr_1 = ['2','3','4'];
$arr_2 = ['5','6','7'];
//把2,3,4替換成5,6,7
echo str_replace($arr_1, $arr_2, $str).'<br>'; // 156756789
// 統計字元長度
echo strlen($str).'<br>';      // 9 不支援中文
echo mb_strlen($str).'<br>';   // 9 支援中文 
echo mb_strwidth($str).'<br>'; // 9 將所有多位元組字元轉化為2個位元組處理

// 字串與陣列的轉化
$sity = '安徽省|合肥市|瑤海區|磨店鄉';
$arr = explode('|', $sity);
print_r($arr);
echo "<br>";
echo implode('|', $arr);
echo "<br>";

// 字串轉換
// 強制轉換 臨時轉換
echo gettype((string)500).'——'.gettype(500).'<br>';//string——integer
echo gettype(strval(500)).'——'.gettype(500).'<br>';//string——integer
// 永久轉換
$a = 300;
$type = gettype(settype($a, 'string'));
echo gettype($type).'——'.gettype($a);  //string——string
echo "<br>";
// 自動轉化
echo $a + '35qw';  //335  35qw --> 35
echo "<br>";

// 字串格式化
// 大小寫轉化
echo strtoupper("abcd").'<br>';  //ABCD
echo strtolower('ABCD').'<br>';  //abcd
// 字串轉為時間戳
echo strtotime('2018-1-30').'<br>';
// 千位分隔符 第二個引數是保留幾位小數(四捨五入),接著是千位分隔符和小數點
echo number_format('12345678.235','2','|','*');  //12*345*678|24
echo "<br>";
// 整數與ASCII碼的
echo chr(88).'<br>';    // X
echo ord('s').'<br>';    // 115
// 將換行符\n轉化為<br>
echo nl2br("12\n34\n");  //
// 編碼的轉換 把原來的utf-8轉化為gbk
echo iconv('utf-8', 'gbk', '張三').'<br>'; //出現亂碼
// 加密
echo md5('123456').'<br>';
echo sha1('123456').'<br>';

//字串過濾與編碼
// trim()
echo trim(' 231 ').'<br>';  	//過濾兩邊的空格  
echo ltrim(' 231 ').'<br>';  	//過濾左邊的空格
echo rtrim(' 231 ').'<br>'; 	//過濾右邊的空格
echo trim('12321b','b').'<br>'; //12321 過濾掉指定字元

echo strip_tags("<h2><p>2</p></h2>",'<h2>');  //過濾掉了html程式碼 保留h2

// htmlspecialchars  把html程式碼當作純文字輸出
echo htmlspecialchars("<h1>12</h1>");         //<h1>12</h1> 
echo htmlspecialchars_decode("<h1>12</h1>");  // 和htmlspecialchars相反

// json字串處理
$arr = array('id'=>12,'name'=>'su');
// json_encode 將陣列或者物件轉化為json
$json = json_encode($arr);  //{"id":12,"name":"su"} 
echo $json;
echo "<br>";
// json_decode 將json字串轉化為物件  true轉化為陣列
print_r(json_decode($json,true));
echo "<br>";
// 序列化 a:表示陣列 2:表示2個值,s:鍵是string型別 2:鍵是2位 id:鍵名 接著是值 
echo serialize(array('id'=>12,'name'=>'su'));
//a:2:{s:2:"id";i:12;s:4:"name";s:2:"su";}
echo "<br>";
print_r(unserialize(serialize(array(1,2,3,4))));
?>