1. 文字列型の特徴
1. PHP は弱い型付け言語であり、他のデータ型は一般に文字列関数の演算に直接適用できます。
1: <?php
2: echo substr("123456",2,4); //输出345
3: echo substr(123456,2,4); //输出345
4: echo hello; //先查找hello常量,若没找到,将hello看做字符串使用
5: ?>
2. 文字列は、文字の集合である「配列」として使用できます。 Re r r
1: <?php
2: $str = "www.ido321.com";
3: echo $str[0];
4: echo $str[1];
5: echo $str[2];
6: ?>
ただし、文字列は実数の配列ではないため、配列の関数は使用できません。たとえば、count ($ STR) は文字列の長さを返しません。 PHP エンジンは文字と配列を区別できないため、あいまいさが生じます。 PHP 4 以降、角括弧の代わりに中括弧が使用されるようになりました。
1: <?php
2: //为保证向后兼容,方括号仍然可以使用
3: $str = "www.ido321.com";
4: echo $str{0};
5: echo $str{1};
6: echo $str{2};
7: ?>
3. ダブルクォート変数解析
PHP では、文字列がダブルクォーテーションや区切り文字で定義されている場合、その中の変数が解析されます。
1: <?php
2: $arr = array('name' => "dwqs",'add' => "www.ido321.com");
3: echo "$arr[name]"; //可以解析,但是在方括号中不能使用引号
4: //echo "$arr['name']"; 错误
5: echo "{$arr['name']}"; //可以解析,用花括号包含元素,name不带引号也是可以的
6:
7: //假设存在对象$square
8: echo "$square->width"; //可以解析
9: echo "$square->width00 cent"; //不可以解析,用花括号解决
10: echo "{$square->width}width00 cent"; //可以解析
11: ?>
2. 文字列出力関数
3. よく使用される文字列フォーマット関数
PS: PHP のほとんどの関数文字列処理関数はソース文字列を変更せず、新しい文字列を返します
4. 正規表現
正規表現は、このパターンを通じて、特定の文字列のマッチングのパターンを記述します。関数は、マッチングなどの操作を実行します。文字列の検索、置換、分離。アトム、メタキャラクター、パターン修飾子の 3 つの部分で構成されるテキスト パターンです。
PHP には、PCRE と POSIX という 2 つの通常の処理関数ライブラリのセットがあります。前者は preg_ 接頭辞で名前が付けられ、Perl と互換性があります。後者は ereg_ 接頭辞で名前が付けられます。両者の機能は似ていますが、PCRE の方が効率が若干高くなります。
Perl 言語と互換性のある正規表現処理関数:
1. 構文
1.1 デリミタ: Perl と互換性のある正規関数でパターンを使用する場合、パターンにデリミタを追加する必要があります。文字、数字、バックスラッシュ () 以外の任意の文字を区切り文字として使用できます
1: <?php
2: //以下正则合法
3: echo $m1 = '/<\/\w+/';
4: echo $m2 = '|(\d{3})-\d|Sm';
5: echo $m3 = '!^(?i)php[34]!';
6: echo $m4 = '{^\s+(\s+)?$}';
7: ?>
1.2 アトム: アトムには、文字や数字などの通常の文字が含まれます。スペースと復帰、引用符、*、+ などの特殊文字とメタ文字は、「」でエスケープする必要があります。[apj]、[a-z] などの一般的な文字タイプ。 、D.
1: <?php
2: //下面二者等价,匹配e-mail
3: $mail1 = '/^[0-9a-zA-Z]+@[0-9a-zA-Z]+(\.[0-9a-zA-Z]+){0,3}$/';
4: $mail2 = '/^\w+@\w+(\.\w+){0,3}$/';
5: ?>
1.3 メタキャラクター: 正規表現を構築するために使用される特別な意味を持つ文字。 Perl は、*、+、? などのさまざまなメタ文字を使用して一致を検索できます。 .共通のメタキャラクターは次のとおりです
1.4 パターン修飾子: 通常の区切り文字に加えて、照合、置換などの通常の機能を拡張するために使用されます。
2. Perl と互換性のある正規表現関数
2.1 preg_match(string pattern, string subject[,arraymatches]): 文字列の検索と一致に使用されます。パラメータの説明:
処理する必要がある文字列、オプションmatches はパターンの各サブパターンのマッチング結果を保存するために使用されます。matches [0] はパターンに一致するコンテンツ全体を保存します。 matches [1 ] は、パターンの最初のかっこ内の一致したコンテンツを保存します。以下同様です。
1: <?php
2: header("content-type:text/html;charset=utf8");
3: $pattern = '/(http):\/\/(www)\.([^\.\/]+)\.(com|net|org)/i';
4: $subject = "我的博客:http://www.ido321.com";
5: if(preg_match($pattern, $subject,$matches)){
6: echo "搜索的URL是:".$matches[0]."<br/>"; //数组第1个元素保存整个匹配结果
7: echo "URL中的协议是:".$matches[1]."<br/>";//数组第2个元素保存第1个字表达式
8: echo "URL中的主机是:".$matches[2]."<br/>";//数组第3个元素保存第2个字表达式
9: echo "URL中的域名是:".$matches[3]."<br/>";//数组第4个元素保存第3个字表达式
10: echo "URL中的顶域是:".$matches[4]."<br/>";//数组第5个元素保存第4个字表达式
11: }
結果
preg_match_all() 関数は preg_match() 関数と似ていますが、前者は最後まで一致するという点です。文字列、後者は最初の一致時に一致します。その後、一致を停止します。
2.2 preg_grep(string pattern,array iput): 配列内の要素を照合し、通常のパターンに一致する配列ユニットを返します。パラメータの説明:
t パターンは規則的で、入力は一致する必要がある配列です。
rree rree rree rree rree rree rree
2.3 preg_replace(mixed pattern,mixed replacement,mixed subject[,int limit]):字符串替换。说明:
该函数会在subject中搜索与pattern的匹配项,并用replacement替换。limit用于限制匹配的次数,即替换的次数。
1: <?php
2: $pattern = '/<[\/\!]*?[^<>]*?/is';
3: $text = '这个文本有<b>粗体</b>和<u>带有下划线</u>以及<i>斜体</i>';
4: echo preg_replace($pattern,"",$text); //将所有HTML标记替换为空
5: echo preg_replace($pattern,"",$text,2); //值替换前2个HTML标记
6: ?>
2.4 preg_split(string pattern,string subject[,int limit[,int flags]]):对字符串进行分割。说明:
函数返回一个数组。数组元素包含subject中与pattern匹配作为边界所分割的字符串,limit含义见2.3,flags含义请参考文档。
1: <?php
2: //按任数量的空格分割字符串
3: $kerwords = preg_split("/[\s,]+/","hypertext language,programming");
4:
5: //输出:Array([0]=>hypertext [1]=>language,[2[=>programming)
6: print_r($kerwords);
7: ?>
来源:http://www.ido321.com/612.html