定義字符串:
單雙引號的區別:
<?php
$url = "https://bbs.abc.cn";
$rmd = "歡迎光臨,討論交流請至{$url}去往\n"; //解析器將會解析雙引號中的變量和轉義符,這裏不加{}會報錯,因爲php支持中文變量名
$rms = '歡迎光臨,討論交流請至$url去往\n'; //解析器不會解析單引號中的變量和轉義符
echo $rmd;
echo $rms;
?>
結果:歡迎光臨,討論交流請至https://bbs.abc.cn去往
歡迎光臨,討論交流請至$url去往\n
由於php要對雙引號中的內容進行解析,所以執行雙引號時相對來說速度會慢一些。
定界符:
$multi_line_str = <<<str
字符串
...
str; //這裏一定要頂格寫
echo $multi_line_str;
字符串處理函數:
字符串中的空格處理:
字符串大小寫轉換:
字符串填充函數:
$str = ' hello world ';
echo str_pad(trim($str),35,'+');
輸出結果:
hello world++++++++++++++++++++++++
修改一下,從兩側填充:
$str = ' hello world ';
echo str_pad(trim($str),16,'+',STR_PAD_BOTH); //填充後長度改爲16
結果就是這樣(可以看見右側多填充了一個'+'):
++hello world+++
字符串順序翻轉函數:
$edu = 'study';
echo strrev($edu);
yduts
md5加密:
<?php
$pwd = 'passwordtest';
if(@md5($_GET['pwd'])==md5($pwd)){
echo "登錄成功";
}else{
?>
<form action="" method="get">
用戶名:<input type="text" name="uname"/><br/>
密碼:<input type="password" name="pwd"/><br/>
<input type="submit" value="登錄"/><br/>
</form>
<?php
}?>
格式化金額字符串函數:
$number1 = '1524549781243';
echo number_format($number1,3)
1,524,549,781,243.000
字符串拆分成數組:
$str = "dsa ash .s 567 asna_sca";
$arr = explode(' ',$str);
print_r($arr);
結果:
Array ( [0] => dsa [1] => ash [2] => .s [3] => 567 [4] => asna_sca )
數組元素組合成字符串:
$str1 = implode('|', $arr);
var_dump($str1);
結果:
string 'dsa|ash|.s|567|asna_sca' (length=23)
字符串輸出函數:
$url = "https://bbs.rainmeter.cn"."<br/>";
$arr = array("Peter","Quagmire","Joe");
print_r($url);
print_r($arr);
結果:
https://bbs.rainmeter.cn
Array ( [0] => Peter [1] => Quagmire [2] => Joe )
<?php
$price = '200.75';
$num = 437;
$name = '水晶頭';
printf('材料名稱:%s 數量:%d 總價:%.4f', $name, $num, $price);
?>
結果:
材料名稱:水晶頭 數量:437 總價:200.7500
如果想用同一個變量以多種格式輸出,可以使用 %數字\$ 的形式:
<?php
$num1 = 23;
$num2 = 12;
printf("數量:%1\$u %2\$u 單價:%1\$.2f %2\$.3f", $num1, $num2);
?>
結果:
數量:23 12 單價:23.00 12.000
字符串的截取:
substr(字符串, 開始截取的位置, 截取後的總長度)
對字符串進行指定數量的截取。
$url = "https://bbs.rainmeter.cn"."<br/>";
$str = substr($url, 8, 13);
echo $str;
bbs.rainmeter
$url = "https://bbs.rainmeter.cn";
$str = substr($url, -12);
echo $str;
結果:
rainmeter.cn
strchr() /strstr()
後者是前者的別名,在一個字符串中查找另一個字符串(第一次出現,區分大小寫),找到則返回從該字符串開始至結尾的字符串,找不到則返回假。
$url = "https://bbs.rainmeter.cn";
$str = strchr($url,"rain");
$str1 = strstr($url,"bbs");
$str2 = strstr($url,"abc"); //找不到,返回false,在網頁上不顯示
echo $str,'<br/>',$str1,'<br/>',$str2;
var_dump($str2);
結果:
rainmeter.cn
bbs.rainmeter.cn
boolean false
stristr()和strrchr()
strpos()和stripos()
strrpos()
從後面查找,功能與strpos()相同 。
strtok()
$some_str = "abc,def,hij,0,klm,nop,qrs";
$s = strtok($some_str,',');
while($s){
echo $s."<br/>";
$s = strtok(',');
}
var_dump(!'0'); //由於'0'==false,因此在拆分到0的地方退出循環
結果:
abc
def
hij
boolean true
如果不想在‘0’處停止,可以使用全等判斷:
while($s!==false){
修改後的結果就是這樣:
abc
def
hij
0
klm
nop
qrs
boolean true
parse_str()
$url = "http://www.nothing.com.hk?uname=zhangsan&age=33&sex=boy";
$u_msg = substr($url,(strpos($url,'?')+1));
parse_str($u_msg);
echo "Welcome to Nothing,username:".$uname." age:".$age." sex:".$sex;
結果:
Welcome to Nothing,username:zhangsan age:33 sex:boy
chuck_split()
$url = "http://www.nothing.com.hk?uname=zhangsan&age=33&sex=boy";
echo chunk_split($url,3,'--');
結果:
htt--p:/--/ww--w.n--oth--ing--.co--m.h--k?u--nam--e=z--han--gsa--n&a--ge=--33&--sex--=bo--y--