Это будет мой ход:
class Leetify
{
private $english = array("a", "e", "s", "S", "A", "o", "O", "t", "l", "ph", "y", "H", "W", "M", "D", "V", "x");
private $leet = array("4", "3", "z", "Z", "4", "0", "0", "+", "1", "f", "j", "|-|", "\\/\\/", "|\\/|", "|)", "\\/", "><");
function encode($string)
{
$result = '';
for ($i = 0; $i < strlen($string); $i++)
{
$char = $string[$i];
if (false !== ($pos = array_search($char, $this->english)))
{
$char = $this->leet[$pos]; //Change the char to l33t.
}
$result .= $char;
}
return $result;
}
function decode($string)
{
//just reverse the above.
}
}
Пример малого использования:
$Leet = new Leet();
$new_leet_text = $Leet->encode("i want this text here to bee leetified xD");
Надеюсь, это поможет.
Примечания:
- Это только для отдельных символов, "Невозможно преобразовать целые слова"
- Это для демонстрации, и код может быть не идеальным.
- Мой совет - исследовать строковые функции и массивы в PHP, а также создать индекс диапазона, чтобы вы могли комбинировать замену word + char, используя третий массив для хранения строковых значений и их смещений.