1.字串的定義與顯示
定義:通過””,''來標誌
顯示:echo()和print(),但print()具有傳回值值,1,而echo()沒有,但echo比print()要快,print()能用在複合陳述式中。
2.字串的格式化
printf(string $format[,mixed$args])
第一參數是格式字串,$args是要替換進來的值,prinf(“%d”,$num);
說明,如果想列印一個”%”,必須用”%”,浮點數f,八進位用”0”
3.常用的字串函數
1.計算字串的長度
strlen(string $string),說明,1個英文長度1個字元,1個漢字長度為2個字元,空格也算一個字元。
2.將字串改變大小寫
轉為小寫:strtolower()
轉為大寫:strtoupper()
將第一個字元大寫: ucfirst()
將每個單詞的第一個字母大寫 ucwords()
3.字串裁剪。
當一個字串的首尾有多餘的空白字元,如空格、定位字元等可以用
string trim(string $str[,string $charlist])
string rtrim(string $str[sring $charlist])
string itrim(string $str[,string $charlist])
表4.1 trim、itrim、rtrim函數的預設刪除字元
字 符 |
ASCII碼 |
意 義 |
" " |
32(0x20) |
空格 |
"\t" |
9(0x09) |
定位字元 |
"\n" |
10(0x) |
換行 |
"\r" |
13(0x0D) |
斷行符號 |
"\0" |
0(0x00) |
空位元組 |
"\x0B" |
11(0x0B) |
垂直定位字元 |
4.字串的尋找
string strstr(string $a, string $b)
說明:strstr()函數用於尋找字串指標$b在字串$a中出現的位置,
並返回$a字串中從$b開始到$a字串結束處的字串。
如果沒有傳回值,即沒有發現$b,則返回FALSE。strstr()函數還有一個同名函數strchr()。
5.字串與ASCII碼
4.字串的比較
比較函數有
strcmp() //區分大小寫
strcasecmp()//不區分大小寫
strncmp() //比較部分
strncasecmp()//不區分大小寫,比較部分
5.字串的替換
str_replace(search,replace,subject)
說明使用新的字串replace替換字串subject中的search字串
<?php
$str="I love you";
$replace="lucy";
$end=str_replace("you",$replace,$str);
echo $end; //輸出"I love lucy"
?>
對大小寫敏感,還可實現多對一、多對多的替換,但無法實現一對多的替換。
<?php
$str="What Is Your Name";
$array=array("a","o","A","O","e");
echo str_replace($array, "",$str); //多對一的替換,輸出"Wht Is Yur Nm"
$array1=array("a","b","c");
$array2=array("d","e","f");
echo str_replace($array1,$array2, "abcdef"); //多對多的替換,輸出"defdef"
?>
substr_replace
替換字串的一部分。
6.字串與HTML
略
7.其它字串函數
1.字串與數組
a.字串轉化為數組
explode()函數可以用指定的字串分割另一個字串,並返回一個數組
<?php
$str="使用 空格 分割 字串";
array=explode(" ", $str);
pint_r($array);
輸出Array ( [0] => 使用 [1] => 空格 [2] => 分割 [3] => 字串 )
?>
b.數組轉化為字串
implode(string $glue,array $pieces)
$pieces是儲存要串連的字串的數組,$glue是用於連接字串的串連符。例如:
<?php
$array=array("hello","how","are","you");
$str=implode(",",$array); //使用逗號作為串連符
echo $str; //輸出"hello,how,are,you"
?>
c.字串的加密函數
md5(); crypt(),但這個函數一旦加密後就無法轉化為原來的形式。
4.3執行個體留言薄內容處理
一個留言簿,留言簿上有Email地址和使用者的留言,提取客戶的Email地址和留言,要求Email地址中@符號前不能有點“.”或逗號“,”。
將Email地址中@符號前的內容作為使用者的使用者名稱,並將使用者留言中第一人稱“我”修改為“本人”。 複製代碼 代碼如下:<form name="f1" method="post" action="">
<font face="方正舒體" size=4>您的Email地址:</font><br>
<input type="text" name="Email" size=31><br>
<font face="方正舒體" size=4>您的留言:</font><br>
<textarea name="note" rows=10 cols=30></textarea>
<br><input type="submit" name="bt1" value="提交">
<input type="reset" name="bt2" value="清空">
</form>
<!--以上是留言簿表單-->
<?php
if(isset($_POST['bt1']))
{
$Email=$_POST['Email']; //接收Eamil地址
$note=$_POST['note']; //接收留言
if(!$Email||!$note) //判斷是否取得值
echo "<script>alert('Email地址和留言請填寫完整!')</script>";
else
{
$array=explode("@", $Email); //分割Email地址
if(count($array)!=2) //如果有兩個@符號則報錯
echo "<script>alert('Email地址格式錯誤!')</script>";
else
{
$username=$array[0]; //取得@符號前的內容
$netname=$array[1]; //取得@符號後的內容
//如果username中含有“.”或“,”則報錯
if(strstr($username,".") or strstr($username,","))
echo "<script>alert('Email地址格式錯誤!')</script>";
else
{
$str1= htmlspecialchars("<"); //輸出符號“<”
$str2= htmlspecialchars(">"); //輸出符號“>”
//將留言中的“我”用“本人”替代
$newnote=str_replace("我","本人",$note);
echo "<font face='黑體' size=4>";
echo "使用者". $str1. $username . $str2. "您好! ";
echo "您是". $netname. "網友!<br>";
echo "<br>您的留言是:<br> ".$newnote."<br>";
echo "</font>";
}
}
}
}
?>