ID: 49699 Updated by: j...@php.net Reported By: william at 1moment dot nl -Status: Open +Status: Bogus -Bug Type: Unknown/Other Function +Bug Type: PCRE related Operating System: UNIX PHP Version: 5.3SVN-2009-09-28 (SVN) New Comment:
Your code is buggy. RTFM and also try this code: <?php function addRotation($string) { return str_rot13($string); } $output = 'foo'; $parsed = preg_replace("/(foo)/e", "addRotation('\\1')", $output); var_dump($parsed); ?> Previous Comments: ------------------------------------------------------------------------ [2009-09-28 15:39:19] william at 1moment dot nl Sorry the expected result should be: <a href="/folder/?e=rknzcyr+rknzcyr+com"> and the actual result should be: <a href="/folder/?e=example+example+com"> ------------------------------------------------------------------------ [2009-09-28 15:37:03] william at 1moment dot nl Description: ------------ When using str_rot13 within a preg_replace context the string won't be rotated, but stays the same. Reproduce code: --------------- function addRotation($string) { //return md5($string); // This works return str_rot13($string); // This won't work } $output = '<html><head><head><body><a href="mailto:exam...@example.com">this is a test</a></body></html>'; $parsed = preg_replace("/\"mailto:([A-Za-z0-9._%-]+)\@([A-Za-z0-9._%-]+)\.([A-Za-z.]{2,4})\"/", "\"folder/?e=" . addRotation('\\1') . "+" . addRotation('\\2') . "+" . addRotation('\\3') ."\" rel=\"nofollow\" target=\"_blank\"", $output); echo $parsed; Expected result: ---------------- <html><head><head><body><a href="/folder/?e=rknz...@rknzcyr.com">this is a test</a></body></html> Actual result: -------------- <html><head><head><body><a href="/folder/?e=exam...@example.com">this is a test</a></body></html> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=49699&edit=1