毎日のPHP開発では、特定の文字後にサブストリングを抽出したり、サブストリングの長さを計算したりするなど、文字列を解析する必要があります。この需要シナリオでは、 strchr()とstrlen()は2つの非常に実用的な関数です。この記事では、例を使用して、 strchr()関数とstrlen()を使用して、特定の文字の後にサブストリングの長さを計算する方法を説明します。
strchr()は、文字列内の文字の最初の発生を見つけて、文字列から文字列の端までの文字からサブストリングを返すPHPの文字列処理関数です。その基本的な構文は次のとおりです。
strchr(string $haystack, string $needle, bool $before_needle = false): string|false
$ haystackは、検索する元の文字列です。
$針はあなたが探しているキャラクターまたは文字列です。
$ before_needleオプションパラメーターは、 trueに設定すると、 $針の前にパーツを返します。デフォルトはfalseです。
計算したいのは、特定の文字の後のサブストリングの長さです。 StrChr()を使用して、この文字から始まるサブストリングを取得し、 Strlen()を使用して、それぞれ元の文字列とstrchr()リターン文字列の長さを計算できます。それを減算して、必要なサブストリング長を取得します。
ここに具体的な例があります。 URLを例として取りましょう。パス文字列の「/」文字の後にサブストリングの長さを計算したいとします(パスでリソース名の長さを取得するなど)。
<?php
// これがaだと仮定しますURLパス
$url = "https://gitbox.net/files/images/photo.jpg";
// 最後のものを見つけます '/' 背後のサブストリングの長さ
$lastSlashPos = strrpos($url, '/');
if ($lastSlashPos !== false) {
$substring = substr($url, $lastSlashPos + 1);
$length = strlen($substring);
echo "最後のもの '/' 後のサブストリング:$substring\n";
echo "サブストリングの長さはです:$length";
} else {
echo "見つかりません '/' キャラクター。";
}
?>
最後のもの '/' 後のサブストリング:photo.jpg
サブストリングの長さはです:9
最初の「/」の後にサブストリングのみを気にする場合は、 strchr()を使用して実装できます。
<?php
$url = "https://gitbox.net/files/images/photo.jpg";
// 最初のものを見つけます '/' どこに表示されるか
$afterFirstSlash = strchr($url, '/');
if ($afterFirstSlash !== false) {
// 最初のものを削除します '/' 自体
$substring = substr($afterFirstSlash, 1);
$length = strlen($substring);
echo "最初 '/' 後のサブストリング:$substring\n";
echo "サブストリングの長さはです:$length";
} else {
echo "見つかりません '/' キャラクター。";
}
?>
このメソッドは、最初の「/」から始まるサブストリングを返しますが、これは必要な場所ではない場合があります(プレフィックス部分はプロトコルまたはドメイン名など)。実際のアプリケーションでは、特定のニーズに応じてstrchr()またはstrrchr()を選択する必要があります(最後のマッチング文字の後にパーツを返す)。
strlen()を使用してstrchr()を使用することは、文字列とそのサブストリングの長さで特定の文字位置を処理する効率的な方法です。この方法は、パス、URL、またはデータを分離形式で処理するときに迅速に解析するために使用できます。
上記は、phpのstrchr()関数を使用してstrlen()を組み合わせて、特定の文字後のサブストリングの長さの完全なインスタンス分析を計算する方法です。それがあなたの実際の開発に役立つことを願っています。