我有一个字符串,比如:
<price>£10</price>Rimmel Super-Quick Mascara
我想从<price>
标签中提取字符串,并在标签后保留字符串。因此:
$price = £10
$desc = Rimmel Super-Quick Mascara
我如何使用PHP来实现这一点?我尝试使用我发现的以下函数,但在正则表达式中出现未知错误,尽管我无法确定在哪里。
function getTextBetweenTags($string, $tagname) {
$pattern = "/<$tagname ?.*>(.*)<'/$tagname>/";
preg_match($pattern, $string, $matches);
return $matches[1];
}
在价格和文本方面都试试这个:
$str = '<price>£10</price>Rimmel Super-Quick Mascara';
$text = preg_replace('/<[a-z]+>(.*?)<'/?[a-z]+>(.*?)/','$1|$2',$str);
$data = explode('|',$text);
var_dump($data);
响应:
array (size=2)
0 => string '£10' (length=3)
1 => string 'Rimmel Super-Quick Mascara' (length=26)
在您的功能中:
function getTextBetweenTags($string, $tagname) {
$text = preg_replace("/<".$tagname.">(.*?)<'/?".$tagname.">(.*?)/","$1|$2",$string);
$data = explode('|',$text);
return $data;
}
试试这个
$pattern = "/.*?<$tagname.*?>(.*?)<'/$tagname.*?>/";
preg_match_all($pattern, $string, $matches );
return $matches[ 0 ][ 0 ];