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

Php 如何在两个其他字符串(标记)中找到字符串的每个实例,php,html,xml,string,Php,Html,Xml,String,我使用的代码在另外两个字符串(标记)中搜索一个字符串。它搜索的字符串是ID的列表。ID列在标记之间。我的代码可以成功地提取并列出一个ID,但是有没有一种方法可以循环它,让它提取所有ID并将它们分配给变量或数组 代码如下: function get_string_between($string, $start, $end){ $string = " ". $string; $ini = strpos($string,$start); if ($ini == 0) return ""; $

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


函数get\u string\u between($string,$start,$end){
$string=”“.$string;
$ini=strpos($string,$start);
如果($ini==0)返回“”;
$ini+=strlen($start);
$len=strpos($string,$end,$ini)-$ini;
返回substr($string,$ini,$len);
}
$resumeid=获取($xml,“,”)之间的字符串;
echo$resumeid;
我尝试使用foreach()函数,但似乎不起作用:

foreach( $resumeid as $item )
{
    echo $item.'<br />';
}
foreach($resumeid作为$item)
{
回显$item.“
”; }

如何实现这一点?

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

preg_match_all("/(<ResumeID>)(\w+)(<\/ResumeID>)/", $xml, $matches);

foreach ($matches[0] as $match)
{
    echo $match."<br />";
}
preg_match_all(“/()(\w+)()/”,$xml,$matches);
foreach($matches[0]为$match)
{
echo$match。“
”; }
您需要循环函数,而不仅仅是函数的结果。或者,使用正则表达式而不是一系列复杂的字符串函数将更容易

preg_match_all("/(<ResumeID>)(\w+)(<\/ResumeID>)/", $xml, $matches);

foreach ($matches[0] as $match)
{
    echo $match."<br />";
}
preg_match_all(“/()(\w+)()/”,$xml,$matches);
foreach($matches[0]为$match)
{
echo$match。“
”; }
您可能想看看PHP的XML操作功能,而不是字符串操作。如果您要从DOM元素中提取文本节点,为什么不使用DOM解析器呢?它将比正则表达式更加健壮。感谢您的快速回复@Gordon我曾尝试使用一些XML操作特性,例如simpleXML,但它似乎从未起作用。字符串只是一组没有XML编码的标记。@dnagirl我对DOM解析器不太熟悉。我看看这些,看看能想出什么。你能告诉我正确的方向吗?你可能想看看PHP的XML操作功能,而不是字符串操作。如果你从DOM元素中提取文本节点,为什么不使用DOM解析器呢?它将比正则表达式更加健壮。感谢您的快速回复@Gordon我曾尝试使用一些XML操作特性,例如simpleXML,但它似乎从未起作用。字符串只是一组没有XML编码的标记。@dnagirl我对DOM解析器不太熟悉。我看看这些,看看能想出什么。你能给我指出正确的方向吗?我想你不使用SimpleXML这样的东西是有原因的,它完全符合我的需要。非常感谢。我确实考虑过使用SimpleXML,但我确实需要做一些超出它允许范围的事情。我认为有一个原因,就是你没有使用像SimpleXML这样的东西,而这些东西正是我所需要的。非常感谢。我确实考虑过使用SimpleXML,但我确实需要做一些超出它允许范围的事情。