PHP:返回字符串中所有指定标记的所有字符串值 函数getValues($string,$tagname){ $pattern=“/([^]*)/”; preg_match_all($pattern,$string,$matches,preg_pattern_ORDER); var_dump($matches); 返回$matches; } getValues(“123”、“a”);
我希望得到一个数组值1,2,3等等 它返回:PHP:返回字符串中所有指定标记的所有字符串值 函数getValues($string,$tagname){ $pattern=“/([^]*)/”; preg_match_all($pattern,$string,$matches,preg_pattern_ORDER); var_dump($matches); 返回$matches; } getValues(“123”、“a”);,php,regex,Php,Regex,我希望得到一个数组值1,2,3等等 它返回: function getValues($string, $tagname) { $pattern = "/<$tagname ?.*>([^<>]*)<\/$tagname>/"; preg_match_all($pattern, $string, $matches, PREG_PATTERN_ORDER); var_dump($matches); return $matches;
function getValues($string, $tagname) {
$pattern = "/<$tagname ?.*>([^<>]*)<\/$tagname>/";
preg_match_all($pattern, $string, $matches, PREG_PATTERN_ORDER);
var_dump($matches);
return $matches;
}
getValues("<a>1</a><a>2</a><a>3</a>", "a");
数组(2){
[0]=>
阵列(1){
[0]=>
阵列(2){
[0]=>
字符串(24)“123”
[1]=>
int(0)
}
}
[1]=>
阵列(1){
[0]=>
阵列(2){
[0]=>
字符串(1)“3”
[1]=>
国际(19)
}
}
}
我不会为此使用正则表达式-使用dom解析器,如下所示:
array(2) {
[0]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(24) "<a>1</a><a>2</a><a>3</a>"
[1]=>
int(0)
}
}
[1]=>
array(1) {
[0]=>
array(2) {
[0]=>
string(1) "3"
[1]=>
int(19)
}
}
}
$return=[];如果您有$return=array()代码>
<?php
function getValues($string, $tagname) {
$return = [];
$document = new DomDocument();
$document->loadHtml($string);
$elements = $document->getElementsByTagName($tagname);
foreach($elements as $element) {
$return[] = $element->nodeValue;
}
return $return;
}
var_dump(getValues("<a>1</a><a>2</a><a>3</a>", 'a'));