|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2009-09-28 15:37 UTC] 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:example@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=rknzcyr@rknzcyr.com">this is a test</a></body></html>
Actual result:
--------------
<html><head><head><body><a href="/folder/?e=example@example.com">this is a test</a></body></html>
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Dec 09 15:00:01 2025 UTC |
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); ?>