nasıl RegexIterator çalışmak moduna DEĞİŞTİR ::?

2 Cevap php

Ne benim kod yanlış:

$i = new RegexIterator(
  new ArrayIterator(array(
    'test1'=>'test888', 
    'test2'=>'what?', 
    'test3'=>'test999')),
  '/^test(.*)/',
  RegexIterator::REPLACE);

foreach ($i as $name=>$value)
  echo $name . '=>' . $value . "\n";

Yineleyici boş, neden? Yardımlarınız için teşekkürler!

2 Cevap

Zaten dediğim gibi, PHP içinde bir hata var. Ben php.net için rapor: http://bugs.php.net/bug.php?id=50579

Eğer çalışma modunu (yeni RegexIterator tablosunda 3. parametre) ommit Eğer eşleşen değerleri almak, gibi pek edeceğiz:

$array = array('test1' => 'test888', 'test2' => 'what?', 'test3' => 'test999');
$pattern = '/^test(.*)/';

echo '<pre>';
echo "DEFAULT\n";
$arrayIterator = new ArrayIterator($array);
$regexIterator = new RegexIterator($arrayIterator, $pattern);
foreach ($regexIterator as $value) {echo "$value\n";}
echo '</pre>';

Siz ne istediğinizi bağlı olarak, farklı çalışma modu ile oynayabilirsiniz. SetMode dokümantasyon okumak gidin: http://www.php.net/manual/en/regexiterator.setmode.php