ホームページ  >  記事  >  バックエンド開発  >  PHP の検索およびインターセプト文字列関数の詳細な紹介 (例付き)

PHP の検索およびインターセプト文字列関数の詳細な紹介 (例付き)

不言
不言転載
2019-01-10 11:37:285809ブラウズ

この記事では、PHP の検索およびインターセプト文字列関数について詳しく説明します (例付き)。これには一定の参考価値があります。必要な友人は参照できます。お役に立てれば幸いです。

文字列の検索とインターセプトが必要になることが多く、strstrstrrchrstrpos、## が使用されます。 #strrpossubstr およびその他の関数がここに整理されて記録されます。

strstr

string strstr ( string $haystack ,mixed $needle [, bool $before_needle = false ] )
最初に出現した needle から haystack までの干し草の文字列を返します。弦。
strstr は、文字が最初に出現する位置を検索し、その一部を返します。見つからない場合は false を返します。例

<?php
$str = 'abcdefabcdef';
echo strstr($str, 'c') . PHP_EOL;// cdefabcdef,返回第一次出现位置后面的字符串,包括c
echo strstr($str, 'c', true);// ab,返回第一次出现位置后面的字符串,不包括c
strrchr

string strrchr (string $haystack,mixed $needle)
この関数は、needle の最後の出現から始まり、最後までの haystack 文字列の一部を返します。干し草の山。
strrchr は、文字の最後の出現を見つけて最後に戻ります。見つからない場合は false を返します。例

<php
$str = 'abcdefabcdef';
echo strrchr($str, 'c');// cdef,返回最后一次出现位置后面的字符串,包括c
strpos

mixed strpos ( string $haystack ,mixed $needle [, int $offset = 0 ] )
haystack 内で針が最初に出現する数値位置を返します。
strpos は、文字が最初に出現する位置を検索し、その位置の番号を返します。見つからない場合は false を返します。例

<?php
$str = 'abcdefabcdef';
echo strpos($str, 'e') . PHP_EOL;// 4,字符串位置是从0开始
echo strpos($str, 'e',3) . PHP_EOL;// 4,从第3位开始查找
echo strpos($str, 'e',11);// false,从第11位开始查找
strrpos

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
文字列 haystack 内で最後に出現したニードルの位置を数値で返します。 。
strrpos は、文字が最後に出現した位置を検索し、その位置の番号を返します。見つからない場合は false を返します。例

<?php
$str = 'abcdefabcdef';
echo strrpos($str, 'e') . PHP_EOL;// 10,字符串位置是从0开始
echo strrpos($str, 'e', 4) . PHP_EOL;// 10,从第4位开始查找
echo strrpos($str, 'e', 11) . PHP_EOL;// false,从第11位开始查找
echo strrpos($str, 'e',-5);// 4,从尾部第5位开始查找
substr

string substr ( string $string , int $start [, int $length ] )
start パラメータと length パラメータで指定された文字列 string substring を返します。
substr 位置パラメータに従ってインターセプトされた文字列を返し、失敗した場合は false を返します。例

<?php
$str = 'abcdefabcdef';
echo substr($str, 0, 5) . PHP_EOL;// abcde,从首部开始截取5位
echo substr($str, 0, -3) . PHP_EOL;// abcdefabc,从首部开始截取-3位
echo substr($str, -2) . PHP_EOL;// ef,从尾部开始截取2位
echo substr($str, -5, 3) . PHP_EOL;// bcd,从尾部第5位开始截取3位
echo substr($str, -5, -1) . PHP_EOL;// bcde,从尾部第5位开始截取-1位
例とコメント

上記は関数の簡単な例です。仕事で合理的に使用すると、半分の労力で 2 倍の結果を得ることができます。以下は、電子メール ユーザー名または電子メール ドメイン名を取得する例です。

#

<?php
$email = '123456@example.com';
// 获取用户名
echo strstr($email, '@', true) . PHP_EOL;
echo substr($email, 0, strpos($email, '@')) . PHP_EOL;
echo substr($email, 0, strrpos($email, '@')) . PHP_EOL;// 邮箱中只有一个@,所有 strpos 和 strrpos 相同
// 获取邮箱域名
echo substr(strstr($email, '@'), 1) . PHP_EOL;
echo substr(strrchr($email, '@'), 1) . PHP_EOL;
echo substr($email, strpos($email, '@') + 1) . PHP_EOL;
echo substr($email, strrpos($email, '@') + 1);// 同上
コメント

    stristr、stripos、および strripos は、strstr、strpos、および stripos の大文字と小文字を区別しないバージョンです。 strrpos はそれぞれ
  • strpos、バージョン 7.1.0 では負のオフセットのサポートが開始されます
  • #substr、長さは負の数であり、次に長さの文字が文字列の末尾は省略されます。
  • strpos、strrpos、「===」を使用して戻り値を決定します。これは、false と同等の非ブール値を返すことができるためです。
  • strpos、strrpos、2 番目のパラメータは文字列型である必要があります。不明な場合は、変換することをお勧めします。通常の関数を使用して文字列を検索およびインターセプトすることもできますが、同様です。効果的な効果の場合、正規化の効率は遅くなります。
  • 文字が存在するかどうかを確認したいだけの場合文字列 strpos は strstr よりも効率的です
  • mbstring はマルチバイトでエンコードされた文字列をより適切に処理できます
  • ##

以上がPHP の検索およびインターセプト文字列関数の詳細な紹介 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。