PHP 12 字串的操作

2021-09-06 19:58:24 字數 2990 閱讀 8706

原文:

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將字串變為小寫

strtoupper將字串變為大寫

ucfirst將字串的第乙個字元大寫。

ucwords 將字串中的每乙個單詞的第乙個字元變為大寫。

其實就是為了替換引號,反斜槓,null等,因為它們有的時候不適合於很多場合,比如儲存到資料庫。為了達到目的,addslashes是乙個不錯的選擇,它使用反斜線引用字串。為了在顯示資料,需要在之前呼叫stripslashes,否則反斜槓會顯示出來的。

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...