preg_match_all не отвечает на массив совпадений? - PullRequest
0 голосов
/ 24 сентября 2010

У меня проблема с preg_match_all.В то время как preg_match отвечает на все совпадение как первый элемент массива, preg_match_all не отвечает - первый массив пуст.По крайней мере, с шаблоном, который я выбрал (не пробовал другие, так как он мне нужен), он не работает.Вот мой код:

preg_match_all("/<\?\?(\t| )?translate(\t| )?;(\t| )?(.*)(\t| )?\?\?>/U", $file, $translate_info);

Сам шаблон работает и выдает совпадения подшаблона.

1 Ответ

0 голосов
/ 24 сентября 2010

Обновлено в соответствии с новыми данными:

$file = '<?? translate ; foo bar??>';
$res = preg_match_all('/<\?\?(\t| )?translate(\t| )?;(\t| )?(.*)(\t| )?\?\?>/U', $file, $translate_info);
echo "res='$res'\n";
var_dump($translate_info);

У меня работает, дает:

res='1'
array(6) {
  [0]=>
  array(1) {
    [0]=>
    string(26) "<?? translate ; foo bar??>"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) " "
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) " "
  }
  [3]=>
  array(1) {
    [0]=>
    string(0) ""
  }
  [4]=>
  array(1) {
    [0]=>
    string(8) " foo bar"
  }
  [5]=>
  array(1) {
    [0]=>
    string(0) ""
  }
}
...