search for in the  
<str_replacestr_shuffle>
Last updated: Thu, 19 May 2005

str_rot13

(PHP 4 >= 4.2.0, PHP 5)

str_rot13 -- Perform the rot13 transform on a string

Description

string str_rot13 ( string str )

This function performs the ROT13 encoding on the str argument and returns the resulting string. The ROT13 encoding simply shifts every letter by 13 places in the alphabet while leaving non-alpha characters untouched. Encoding and decoding are done by the same function, passing an encoded string as argument will return the original version.

Example 1. str_rot13() example

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

Note: The behaviour of this function was buggy until PHP 4.3.0. Before this, the str was also modified, as if passed by reference.



User Contributed Notes
str_rot13
Anonymous
10-Dec-2004 07:26
There is a workaround for the reference problem:

instead of:

<?php
$rot13
= str_rot13($str);
?>

do

<?php
$rot13
= str_rot13($str . "");
?>

In that case str_rot13() won't treat the value as a variable, but more as "hard-coded" (and won't pass the variable for reference)
joh at n dot liesen dot se
26-Nov-2004 10:35
It's also possible to rot13 a string without using a lookup table.

<?php
function rot13($s)
{
  
$rot13  = "";
  
   for (
$i = 0; $i < strlen($s); ++$i)
   {
    
$char = ord($s{$i});
    
$cap = $char & 32;
    
    
$char &= ~$cap;
    
$char = (($char >= ord('A')) && ($char <= ord('z'))) ? (($char - ord('A') + 13) % 26 + ord('A')) : $char;
    
$char |= $cap;
    
    
$rot13 .= chr($char);
   }
  
   return
$rot13;
}
?>
kristof_polleunis at yahoo dot com
15-Jul-2004 10:05
For versions of php <= 4.2.0 you can use:

function rot13($str){
if (!function_exists('str_rot13')) {
   $from = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
   $to  = 'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM';
   $rot13str = strtr($str, $from, $to);
}else{
   $rot13str = str_rot13($str); 
}
return $rot13str;
}

<str_replacestr_shuffle>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 17:35:34 2005 CDT