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

Reply via email to