str_rot13()
Artigo sobre a função PHP str_rot13(), usada para realizar a codificação ROT13 em uma string, substituindo cada letra por outra 13 posições à frente.
A função str_rot13() no PHP realiza a codificação ROT13 em uma string. ROT13 é uma cifra de substituição simples que substitui cada caractere alfabético pela letra 13 posições à frente no alfabeto. Caracteres não alfabéticos permanecem inalterados.
A sintaxe da função str_rot13() é a seguinte:
A sintaxe PHP do str_rot13()
str_rot13($string)A função recebe um parâmetro obrigatório: $string. $string é a string a ser codificada usando ROT13. Note que str_rot13() processa apenas letras ASCII e ignora caracteres multibyte UTF-8. Apenas caracteres alfabéticos são transformados; todos os outros caracteres permanecem inalterados.
Veja um exemplo de como usar a função str_rot13():
Exemplo do PHP str_rot13()
Neste exemplo, temos uma variável de string $string que contém a frase "Hello, World!". Usamos a função str_rot13() para realizar a codificação ROT13 na string, passando a variável $string como parâmetro.
A saída deste código será:
Uryyb, Jbeyq!Como você pode ver, a função str_rot13() codificou com sucesso a string original usando ROT13.
ROT13 é sua própria inversa
A propriedade mais útil do ROT13 é que codificar e decodificar são a mesma operação. Como o alfabeto tem 26 letras e o ROT13 desloca exatamente metade disso, aplicar a função duas vezes rotaciona uma letra em 13 + 13 = 26 posições completas, retornando-a ao ponto de partida. Isso significa que você chama str_rot13() novamente para obter a string original — não existe uma função str_unrot13() separada.
<?php
$plain = "Hello, World!";
$encoded = str_rot13($plain); // Uryyb, Jbeyq!
$decoded = str_rot13($encoded); // Hello, World!
echo $encoded . "\n";
echo $decoded . "\n";
?>A saída deste código será:
Uryyb, Jbeyq!
Hello, World!O que é transformado
Apenas as 52 letras ASCII (a–z e A–Z) são rotacionadas. A capitalização é preservada, e todos os outros caracteres — dígitos, pontuação, espaços e caracteres multibyte UTF-8 — passam sem alteração.
<?php
echo str_rot13("PHP 7.4 — café") . "\n";
?>A saída deste código será:
CUC 7.4 — pnséObserve que 7.4, os espaços e o travessão permanecem inalterados, o é acentuado é deixado intacto (é um caractere multibyte, não ASCII), enquanto as letras ASCII são cada uma deslocada 13 posições: P→C, H→U, c→p, a→n, f→s.
Quando usar
O ROT13 é útil para ocultar texto de um olhar casual — tags de spoiler em fóruns, respostas de puzzles ou para ofuscar levemente um endereço de e-mail no código-fonte. Por preservar o comprimento e ser reversível com uma única chamada, também é um exemplo didático comum de cifra de substituição.
Ele nunca deve ser usado para proteger informações sensíveis: o ROT13 não tem chave e pode ser facilmente revertido por qualquer pessoa. Para proteção real, use password_hash() do PHP para senhas ou as extensões Sodium / OpenSSL para criptografia.
Funções relacionadas
strrev()— inverte os caracteres de uma string.str_replace()— substitui substrings dentro de uma string.substr_replace()— substitui uma parte de uma string por posição.