PHPプログラミングでは、文字列の操作は非常に一般的なタスクです。特に、ファイルパス、URL、ユーザー入力、その他のシナリオを扱う場合、文字列の開始と終了を確認する必要があります。 PHPは、2つの非常に有用な機能を提供します: str_starts_withとstr_ends_withは、文字列が特定のサブストリングで始まるか終了するかをすばやく判断するのに役立ちます。この記事では、文字列の開始と終了を効果的にチェックするために、これら2つの機能を一緒に使用する方法について説明します。
str_starts_with関数は、文字列が指定されたサブストリングで始まるかどうかを確認するために使用されます。この関数の基本的な構文は次のとおりです。
<span><span><span class="hljs-title function_ invoke__">str_starts_with</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ haystack :チェックするターゲット文字列。
$針:比較に使用されるサブストリング。
ターゲット文字列$ haystackが$針で始まる場合、関数はtrueを返します。それ以外の場合、 false 。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">"example.txt"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">str_starts_with</span></span><span>(</span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-string">"ex"</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"でファイル名 'ex' 始まり。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ファイル名はありません 'ex' 始まり。\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
出力:
<span><span>でファイル名 </span><span><span class="hljs-string">'ex'</span></span><span> 始まり。
</span></span>
str_ends_with関数は、指定されたサブストリングで文字列が終了するかどうかを確認するために使用されます。この関数の基本的な構文は次のとおりです。
<span><span><span class="hljs-title function_ invoke__">str_ends_with</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ haystack :チェックするターゲット文字列。
$針:比較に使用されるサブストリング。
ターゲット文字列$ haystackが$針で終了すると、関数はtrueを返します。それ以外の場合、 false 。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">"example.txt"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">str_ends_with</span></span><span>(</span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-string">".txt"</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"でファイル名 '.txt' エンディング。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ファイル名はありません '.txt' エンディング。\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
出力:
<span><span>でファイル名 </span><span><span class="hljs-string">'.txt'</span></span><span> エンディング。
</span></span>
実際の開発では、多くの場合、文字列の開始と終了を同時に確認する必要があります。たとえば、ファイル名が特定のプレフィックスで始まり、特定の接尾辞で終了することを確認する必要がある場合があります。これを達成するために、一緒にstr_starts_withとstr_ends_withを使用できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">"img_picture.jpg"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">str_starts_with</span></span><span>(</span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-string">"img_"</span></span><span>) && </span><span><span class="hljs-title function_ invoke__">str_ends_with</span></span><span>(</span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-string">".jpg"</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"でファイル名 'img_' 始まり并且以 '.jpg' エンディング。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ファイル名は要件を満たしていません。\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
出力:
<span><span>でファイル名 </span><span><span class="hljs-string">'img_'</span></span><span> 始まり并且以 </span><span><span class="hljs-string">'.jpg'</span></span><span> エンディング。
</span></span>
複数の文字列チェックを実行する必要がある場合、 str_starts_withとstr_ends_withを使用して、コードの読みやすさと効率を大幅に向上させることができます。ただし、注意すべきことはまだいくつかあります。
パフォーマンスの問題:非常に長い文字列を扱う場合、これら2つの関数の時間の複雑さはO(n)ですが、特に多数の文字列を頻繁にチェックする必要がある場合は、パフォーマンスの問題を考慮する必要があります。重複した計算は、バッチ処理またはキャッシュメカニズムを通じて削減できます。
文字エンコード:これら2つの関数は、UTF-8エンコード文字列に適しています。他のエンコード形式で文字列を処理する場合は、最初にエンコード変換を実行することをお勧めします。
PHPのSTR_STARTS_WITHとSTR_ENDS_WITH機能は、文字列の開始と終了をチェックするための非常に便利なツールです。多くの実用的なシナリオでは、これら2つの機能を組み合わせることにより、コードの読みやすさと効率を向上させることができます。ファイル名、URL、または開始と終了を一致させる必要がある他の文字列であろうと、これら2つの機能の使用をマスターすることで、目標をより速く達成することができます。