phpの文字列操作

11831 ワード

文字列の説明
1つの文字列は、次の3つの方法で定義されます.
1、一重引用符2、二重引用符3、heredoc構文
基本的な使い方は以下の通りです.後の節では使い方を詳しく紹介します.ここでは使い方だけを紹介します.
単一引用符で定義された文字列:$hello = 'hello world';二重引用符で定義された文字列:$hello = "hello world";heredoc構文で定義された文字列:
$hello = <<<TAG
hello world
TAG;

一重引用符と二重引用符の違い
PHPでは、文字列の定義には、英語の一重引用符''''を使用してもよいし、英語の二重引用符'''を使用してもよい.
ただし、「Hello World」および「Hello World」が不正な文字列定義であるなど、同じ単一または二重引用符を使用して文字列を定義する必要があります.
一重引用符と二重引用符はいったいどんな違いがありますか?
PHPでは、二重引用符列に文字列変数を直接含めることができます.
一方、単一引用符列の内容は、通常の文字とみなされます.
例:
$str='hello';
echo "str is $str"; //    : str is hello
echo 'str is $str'; //    : str is $str

文字列の接続
PHPの2つの文字列はどのように接続されていますか.例えば、私は文字列hello='hello'を持っています.もう1つの文字列world='world'を持っています.この2つの文字列を接続して、世界に挨拶したいです.
PHPでは英語のポイントを使います.で行ないます.
では、接続してみましょう.前に述べた2つの文字列で世界に挨拶しましょう.)
$hello='hello';

$world=' world';

$hi = $hello.$world;

echo $hi;//     echo

文字列の先頭と末尾のスペースを削除
PHPには文字列のスペースを削除できる3つの関数があります
trimは文字列の両端のスペースを除去します.rtrimは、rがrightの略である文字列の右スペースを除去します.ltrimは、lがleftの略である文字列の左部のスペースを除去します.
例は次のとおりです.
echo trim("    ")."<br>";
echo rtrim("    ")."<br>";
echo ltrim("    ")."<br>";

文字列の長さの取得
phpにはstrlen()という文字列の長さを直接取得できる不思議な関数があります.
例は次のとおりです.
$str = 'hello';
$len = strlen($str);
echo $len;//     5

strlen関数は英語の文字を計算するのが得意ですが、中国語の漢字があれば、長さを計算するにはどうすればいいですか?
mb_を使用できますstrlen()関数は、文字列内の中国語の長さを取得します.
例は次のとおりです.
$str = "   ";
echo mb_strlen($str,"UTF8");//  :3,   UTF8       UTF8  ,      UTF8  

文字列の切り取り
1、英語文字列の切り取り関数substr()
関数説明:substr(文字列変数、切り取り開始位置、切り取り個数)
例:
$str='i love you';
//  love     
echo substr($str, 2, 4);//        2 ,  substr           0   ,   0    i,1      ,l    2。   2   4   ,  love。

2、中国語文字列の切り取り関数mb_substr()
関数の説明:mb_substr(文字列変数、切り取り開始位置、切り取り個数、Webエンコード)
例:
$str='   ,  ';

//       

echo mb_substr($str, 4, 2, 'utf8');//        4 ,        ,  mb_substr          0   ,   0     ,1     ,4     。   4   2   ,    。       utf8  

文字列の検索
もし1つの文字列$str=‘I want to study at imooc’;があれば、どのようにしてその中のimoocがどの位置にあるかを見つけますか?
文字列を検索するには、PHPの検索文字列関数strpos()を使用する必要があります.
関数の説明:strpos(処理する文字列、位置決めする文字列、位置決めの開始位置[オプション])
例:
$str = 'I want to study at icy';
$pos = strpos($str, 'icy');
echo $pos;//    19,     0  ,icy  19       
$str = '    sdfsdfs';
$find = '    ';
strpos($str,$find)

置換文字列
もし1つの文字列$str=‘I want to learn js’;があるならば、どのようにjs文字をあなたが学びたいphp文字に置き換えますか?
置換文字列、PHPの置換関数str_replace()を使用する必要があります.
関数の説明:str_replace(検索する文字列、置換する文字列、検索される文字列、置換カウント[オプション])
例:
$str = 'I want to learn js';
$replace = str_replace('js', 'php', $str);
echo $replace;//    I want to learn php

フォーマット文字列
もし1つの文字列$str=‘99.9’;があるならば、どのようにこの文字列を99.90にしますか?
PHPのフォーマット文字列関数sprintf()を使用する必要があります.
関数の説明:sprintf(フォーマット、変換する文字列)
戻る:フォーマットされた文字列
例:
$str = '99.9';
$result = sprintf('%01.2f', $str);
echo $result;//    99.90

説明すると、上記の例のフォーマット
この%01.2 fはどういう意味ですか?
1、この%記号は始まりの意味で、一番前に書いて指定の書式が始まったことを示します.つまり、「変換文字」が出るまで、書式が終わるとします.2、%記号の後についているのは0で、「空欄文字」です3、0の後ろにあるのは1で、この1はすべての文字列全体が1ビット以上あることを規定しています(小数点でも1つの占有).1を6に変更するとresultの値は099.90になります.小数点以下で2桁、99.90で合計5桁でなければなりませんので、今は6桁必要ですので、0で埋め尽くします.4、strの値が9.234の場合、resultの値は9.23.なぜ4がなくなったのでしょうか.小数点以下では、上記の規定に従って、必ず2桁しか占められません.しかしstrの値ではと、小数点以下3桁を占めていたので、末尾4は削除され、23.5、最後にf「変換文字」で終わる.
空白の文字を入力します.0の場合は空白の0を表示します.空白はデフォルト値で、空白の場合は配置されます.配置方法.デフォルト値は右揃え、負の番号の表は左揃えです.フィールド幅.最小幅です.精度.小数点以下の浮動小数点数桁を指します.PHP関数sprintf()のタイプは、次の表%を参照してパーセント記号を印刷し、変換しません.
関数の種類:資料処理b整数を2進位に変換する.c整数を対応するASCII文字に変換する.d整数を10進位に変換する.f倍精度数字を浮動小数点数に変換する.o整数を8進位に変換する.s整数を文字列に変換する.x整数を小文字16進位に変換する.X整数を大文字16進位に変換する.
PHP関数sprintf()の使用例
   <? 

    $str='icy001';
    //  $str     9          
    $formatted = sprintf ("%0-9s", $str);  
    //      $ formatted    "icy001000"  
    ?>   

文字列の結合と分割
1、php文字列連結関数implode()
関数の説明:implode(セパレータ[オプション],配列)
戻り値:配列要素を文字列に結合
例:
$arr = array('Hello', 'World!');
$result = implode('', $arr);
print_r($result);//    Hello World!

2、php文字列区切り関数explode()
関数の説明:explode(セパレータ[オプション],文字列)
戻り値:関数は文字列からなる配列を返します.
例:
$str = 'apple,banana';
$result = explode(',', $str);
print_r($result);//    array('apple','banana')

文字列のエスケープ
php文字列エスケープ関数addslashes()
関数の説明:特殊文字にエスケープ文字を付けて文字列を返す
戻り値:エスケープされた文字列
例:
$str = "what's your name?";
echo addslashes($str);//  :what\'s your name?

PHP addcslashes()関数定義および使用addcslashes()関数指定した文字の前にスラッシュを追加します.構文addcslashes(string,characters)パラメータはstringを記述するために必要です.チェックする文字列を指定します.charactersはオプションです.addcslashes()影響する文字または文字範囲.ヒントとコメントコメントコメント:addcslashes()を0、r、n、tに適用する場合は注意してください.PHPでは、0、r、およびtは事前定義されたエスケープシーケンスです.例1この例では、文字列内の特定の文字にスラッシュを追加します.
<?php
$str = "Hello, my name is John Adams.";
echo $str;
echo addcslashes($str,'m');
echo addcslashes($str,'J');
?>
  :
Hello, my name is John Adams.
Hello, \my na\me is John Ada\ms.
Hello, my name is \John Adams.

一方、関数addslashes()の使用:PHP addslashes()関数の定義と使用addslashes()関数は、指定した事前定義文字の前にバックスラッシュを追加します.これらの事前定義文字は、•単一引用符(')•二重引用符(')•バックスラッシュ()•NULL構文addslashes(string)です.パラメータ記述stringは必須です.チェックする文字列を指定します.ヒントとコメントヒント:この関数は、データベースに格納されている文字列およびデータベースクエリ文に適切な文字列を用意するために使用できます.注記:デフォルトでは、PHPコマンドmagic_quotes_gpcはonであり、あるGET、POST、COOKIEデータに対してaddslashes()を自動的に実行します..magic_quotes_gpcによってエスケープされた文字列に対してaddslashes()を使用しないでください.これは二重エスケープを引き起こすからです.この場合は関数get_magic_quotes_gpc()を使用して検出できます.例この例では、文字列の所定のエスケープ文字にスラッシュを追加します.
<?php $str = "Who's John Adams?"; echo $str . " This is not safe in a database query.<br />"; echo addslashes($str) . " This is safe in a database query."; ?>
  :
Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.                    ,   :stripcslashes() stripslashes()。