bug37911.phpt 811 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. --TEST--
  2. Bug #37911 (preg_replace_callback ignores named groups)
  3. --FILE--
  4. <?php
  5. function callback($match)
  6. {
  7. var_dump($match);
  8. return $match[1].'/'.strlen($match['name']);
  9. }
  10. var_dump(preg_replace_callback('|(?P<name>blub)|', 'callback', 'bla blub blah'));
  11. var_dump(preg_match('|(?P<name>blub)|', 'bla blub blah', $m));
  12. var_dump($m);
  13. var_dump(preg_replace_callback('|(?P<1>blub)|', 'callback', 'bla blub blah'));
  14. ?>
  15. --EXPECTF--
  16. array(3) {
  17. [0]=>
  18. string(4) "blub"
  19. ["name"]=>
  20. string(4) "blub"
  21. [1]=>
  22. string(4) "blub"
  23. }
  24. string(15) "bla blub/4 blah"
  25. int(1)
  26. array(3) {
  27. [0]=>
  28. string(4) "blub"
  29. ["name"]=>
  30. string(4) "blub"
  31. [1]=>
  32. string(4) "blub"
  33. }
  34. Warning: preg_replace_callback(): Compilation failed: %s name must start with a non-digit at offset %d in %sbug37911.php on line %d
  35. NULL