ID: 49699
Updated by: [email protected]
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:[email protected]">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/[email protected]">this
is a test</a></body></html>
Actual result:
--------------
<html><head><head><body><a href="/folder/[email protected]">this
is a test</a></body></html>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49699&edit=1