我如何在两个其他字符串(标签)中找到字符串的每个实例


How can I find each instance of a string inside two other strings (Tags)

我使用的代码在两个其他字符串(标记)中搜索字符串。它搜索的字符串是一个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);
}

$resumeid = get_string_between($xml, "<ResumeID>", "</ResumeID>");
echo $resumeid;

我尝试使用foreach()函数,但它似乎不起作用:

foreach( $resumeid as $item )
{
    echo $item.'<br />';
}

我该如何做到这一点?

您需要循环函数而不仅仅是函数的结果,或者使用正则表达式而不是一系列复杂的字符串函数会容易得多。

preg_match_all("/(<ResumeID>)('w+)(<'/ResumeID>)/", $xml, $matches);
foreach ($matches[0] as $match)
{
    echo $match."<br />";
}