我一直在寻找很多东西,但我找不到任何与我的问题类似的东西。我找到了这个link https://stackoverflow.com/questions/5696412/get-substring-between-two-strings-php但我不认为他们真正回答了这个问题。
假设我有这个字符串
$my_string = "I am with a [id]123[/id] and [id]456[id]";
我想获取[id][/id]之间的所有数字。我只有这个函数来获取之间的字符串。
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 = 'I am with a [id]123[/id] and [id]456[id]';
$parsed = get_string_between($fullstring, '[id]', '[/id]');
但此函数仅返回在 $fullstring 上找到的第一个字符串。也许我能得到123,456
或数组形式 array('123','456')。我真的被这个问题困扰了。
你可以简单地使用preg_match_all
PHP 的功能以及以下正则表达式
~\[id\](.*?)\[\/id\]~
like as
$my_string = "I am with a [id]123[/id] and [id]456[/id]";
preg_match_all("~\[id\](.*?)\[\/id\]~",$my_string,$m);
print_r($m[1]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)