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 サイトの他の関連記事を参照してください。