Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:返回字符串中所有指定标记的所有字符串值 函数getValues($string,$tagname){ $pattern=“/([^]*)/”; preg_match_all($pattern,$string,$matches,preg_pattern_ORDER); var_dump($matches); 返回$matches; } getValues(“123”、“a”);_Php_Regex - Fatal编程技术网

PHP:返回字符串中所有指定标记的所有字符串值 函数getValues($string,$tagname){ $pattern=“/([^]*)/”; preg_match_all($pattern,$string,$matches,preg_pattern_ORDER); var_dump($matches); 返回$matches; } getValues(“123”、“a”);

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;

我希望得到一个数组值1,2,3等等

它返回:

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'));