原文:
php 12 :字串的操作
字串的表現形式。
字串的特別之處。
字串的常用操作。
說點具體的吧。
1. 字串的表現形式
在大部分語言裡,雙引號是字串,單引號是字元。但是在php裡,字串的表現形式有3種。即:
看見了吧,單引號居然可以用來表示字串。那麼如果我想表示單引號怎麼辦?和大多數語言一樣,使用轉義符號吧。即反斜線"\".那麼使用單引號和雙引號有什麼區別呢?我的觀點是沒有多大區別。唯一的區別就是雙引號可以應用更多的轉義符。
讓我們定界符吧。它的語法是"<<
php2
$str
=<<<
eod3
hello
,this is an example
forheredoc syntax.4
please attention to it.5
eod;
6echo
$str;7
?>
注意,這裡的提供的標誌符是eod,中間的是字串。
2. 字串的特別之處
從乙個例子開始。
假設裡你有很長的一段字串,比如一段話。幾個月後,你發現你的需求改變,需要在這段話的某個位置插入乙個變數。這個時候如果重新用字串符肯定是相當複雜的。那麼有沒有其他的方法呢?請放心,php已經考慮到這一點了。那就是花括號的應用。
對於php,它一般 會按照如下規則解析:
如果遇到美元符號(
$),解析器會盡可能多地取得後面的字元以組成乙個合法的變數名。如果想明示指定名字的結束,用花括號把變數名括起來。例如 1
php2
$beer='
heineken';
3echo
"$beer's taste is great";
//works, "'" is an invalid character for varnames
4echo
"he drank some $beers
";
//won't work, 's' is a valid character for varnames
5echo
"he drank some $s";
//works
6echo
"he drank some s";
//works
7?>
看看第3,4行。第三行的$beer's其實是$beer 後加「『s」。因為這裡的「』」對於變數命名來說是乙個無效字元。但是第4行的$beers就不一樣了。所以$beers是無效的。
除了上面的,你還會注意到地5,6行的$以及以及{$beer}的$和{必須是緊挨的。不然{就會當成{字元看待了。
3,字串的常用操作。
我想這是令我們異常激動的乙個話題,並且也是非常實用的。
字串的函式比較多,我們還是介紹一部分函式吧。
字串的整理函式
字串的格式化輸出
phpecho
nl2br("
foo isn't\n bar");
?>
上面的字串會分2行顯示,如果把此函式去掉,就只在一行上顯示了。
php支援print()函式,它和echo一樣,唯一的差別就是print()返回乙個整型值,一直為1。除了print(),還有printf()和sprintf(). 寫到這裡,你肯定會想,怎麼和c一樣呢。它們的工作方式一樣,差別是printf()將結果輸出到瀏覽器,而sprintf()這是輸出到變數。
看看它們的定義吧。int
printf
( string
format [
,mixed
args [
,mixed
]] )
string
sprintf
( string
format [
,mixed
args [
,mixed
]] )
strtolower將字串變為小寫其實就是為了替換引號,反斜槓,null等,因為它們有的時候不適合於很多場合,比如儲存到資料庫。為了達到目的,addslashes是乙個不錯的選擇,它使用反斜線引用字串。為了在顯示資料,需要在之前呼叫stripslashes,否則反斜槓會顯示出來的。strtoupper將字串變為大寫
ucfirst將字串的第乙個字元大寫。
ucwords 將字串中的每乙個單詞的第乙個字元變為大寫。
strcmp,strcasecmp,strnatcmp,這3個方法都是按字典順序排序例如「2」要大於「12」.
explode類似於c#裡的split函式。例如: 1
php2
$str="
is yours name o'reilly?";
3$var
=explode("
",$str);4
echo
$var[0
];//
輸出:is
5echo
$var[1
];//
輸出:yours
6?>
implode()和join()提供的功能一樣,正好與explode()相反,它們將多個字元換合併起來。
strtok()和split類似,但是它一次只取出乙個。
為了取得子字串,呼叫substr()吧。
可以呼叫strstr(),strchr(),strrchr()以及stristr().記住,strchr()是strstr()的別名,查詢第一次出現的地方。strrchr(),查詢最後乙個字串出現的地方。stristr()和strstr()的區別是前者不區分大小寫。
查詢字串的位置可以使用strpos()以及strrpos().
替換的話,呼叫str_replace()以及substr_replace().
pat 複習 12 字串處理
includeusing namespace std int main 先判 型可以讓他整個都進來的時候不會再誤判一次,而是整個都進來直接結束 cnt ans 4 i reverse ans.begin ans.end printf s ans.c str return 0 10 10 includ...
php學習3 字串
1,字串變數可以使用單引號宣告也可以使用雙引號宣告 2,如果乙個字串中包含變數,這是使用雙引號宣告的變數會輸出變數內容,使用單引號則輸出變數名本身 3,heredoc,在heredoc中可以直接引用php中的變數,同時為了容易區分可以使用花括號將該變數括起來 4,轉義符號是 5,字串連線可以使用點號...
5 7 字串的統計字串 字串操作函式
題目 給定乙個字串str,返回str的統計字串。舉例 aaabbadddffc 的統計字串為 a 3 b 2 a 1 d 3 f 2 c 1 實現 include include using namespace std int tmain int argc,tchar argv string res...