ホームページ > バックエンド開発 > PHPチュートリアル > さまざまな種類の区切り文字を使用して PHP で部分文字列を抽出する方法

さまざまな種類の区切り文字を使用して PHP で部分文字列を抽出する方法

Barbara Streisand
リリース: 2025-01-01 07:04:09
オリジナル
292 人が閲覧しました

How to Extract Substrings in PHP Using Different Delimiter Types?

PHP での部分文字列の決定

PHP では、さまざまな方法を使用して、指定された区切り文字内の部分文字列を取得できます。たとえば、境界デリミタが両端で同じである場合 ([foo] と [/foo] など)、次のアプローチで十分です:

function get_string_between($string, $start, $end) {
    $string = ' ' . $string;
    $ini = strpos($string, $start);
    if ($ini == 0) {
        return '';
    }
    $ini += strlen($start);
    $len = strpos($string, $end, $ini) - $ini;
    return substr($string, $ini, $len);
}
ログイン後にコピー

説明のために、次の例を考えてみましょう:

$fullstring = 'this is my [tag]dog[/tag]';
$parsed = get_string_between($fullstring, '[tag]', '[/tag]');
echo $parsed; // (result = dog)
ログイン後にコピー

さらに、区切り文字が一意である場合 (例: [foo] と[/foo2])、変更された関数を使用できます:

function get_inner_substring($str, $delim) {
    $results = array();
    $delim_len = strlen($delim);
    $pos = strpos($str, $delim);
    while ($pos !== false) {
        $pos_end = strpos($str, $delim, $pos + $delim_len);
        if ($pos_end !== false) {
            $results[] = substr($str, $pos + $delim_len, $pos_end - $pos - $delim_len);
            $pos = strpos($str, $delim, $pos_end + $delim_len);
        } else {
            break;
        }
    }
    return $results;
}
ログイン後にコピー

この関数を使用すると、異なる区切り文字で区切られた文字列から複数の部分文字列を抽出できます:

$string = " foo I like php foo, but foo I also like asp foo, foo I feel hero  foo";
$arr = get_inner_substring($string, "foo");
print_r($arr); // (result = ['I like php', 'I also like asp', 'I feel hero'])
ログイン後にコピー

以上がさまざまな種類の区切り文字を使用して PHP で部分文字列を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート