phpjs: PHP vs. JavaScript Funktion - kleiner Unterschied

Beitrag lesen

Hi,

nun habe ich einmal eine decode Funktion mit JS und daraufhin mit PHP verfasst.
Die mit Javascript arbeitet korrekt und obwohl diese eigentlich das selbe tut wie die PHP Funktion, muss ich feststellen, dass bei PHP im Beispiel der erste Wert falsch ist; die anderen stimmen.

Seht Ihr einen Unterschied, der dieses Verhalten erklärt?

Vielen Dank für nen Tipp.

  
<script>  
// !6D496= |:4926=  
// Peschel Michael  
// KORREKT!  
var characterMap = new Array();  
var characterSet = "!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";  
for (i = 0; i < characterSet.length; i++) {  
    characterMap[characterSet.charAt(i)] = characterSet.charAt( (i + 47) % 94 );  
}  
function decode47(text) {  
    toReturn = '';  
    for (i = 0; i < text.length; i++) {  
        currentChar = text.charAt(i);  
        if (currentChar >= '!' && currentChar <= '~') {  
	    toReturn += characterMap [currentChar];  
        } else {  
            toReturn += currentChar  
        }  
    }  
  
    return toReturn;  
}  
alert(decode47('!6D496= |:4926='));  
</script>  
  
[code lang=php]  
<?  
// !6D496= |:4926=  
// Peschel Michael  
// ABER: Oeschel Michael  
$characterSet = "!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";  
echo($characterSet)."<br>";  
for ($i = 0; $i < strlen($characterSet); $i++)  
{  
    $characterMap[$characterSet[$i]] = $characterSet[(($i+47)%94)];  
}  
function decode47($text)  
{  
	GLOBAL $characterMap,$characterSet;  
	$toReturn = '';  
	for ($i = 0; $i < strlen($text); $i++) {  
	$currentChar = $text[$i];  
	if ($characterMap[$currentChar]) {  
		$toReturn .= $characterMap [$currentChar];  
	} else {  
		$toReturn .= $currentChar;  
	}  
	}  
	return $toReturn;  
}  
echo decode47('!6D496= |:4926=');  
?>

[/code]