preg_match многократная помощь? - PullRequest
1 голос
/ 02 марта 2010
<?PHP
    $string = "[test]aaaaa[/[test][test]bbbb[/test][test]cccc[/test][test]ddd[/test]";
    echo $string . "<br>";
    preg_match("/\[test\].*?(\[\/test\])/i", $string, $m);
    print_r($m);
?>

как получить значения aaaaa и bbbb во множественном числе из захвата [test] и [/ test]?

Ответы [ 2 ]

2 голосов
/ 02 марта 2010
preg_match_all("/\[test\](.*?)\[\/test\]/i", $string, $array);

$array[1] имеет то, что вы хотите.

1 голос
/ 02 марта 2010

без регулярных выражений

$string = "[test]aaaaa[/test][test]bbbb[/test][test]cccc[/test][test]ddd[/test]";
$s = explode('[/test]',$string);
foreach ($s as $v){
    if( strpos( $v,"[test]" )!==FALSE ){
        $t=explode("[test]",$v);
        print $t[1]."\n";
    }
}

выход

$ php test.php
aaaaa
bbbb
cccc
ddd
...