Intereting Posts
Реализовать свойства singleton: статические классы или переменные статического метода? Загрузка файла CodeIgniter – как сохранить имя файла и путь? Невозможно установить Xdebug на XAMPP и Windows XP Вопрос о том, как должны работать перенаправления Функция mail () PHP вызывает 500 Internal Server Error только после определенной точки в коде Как разбить таблицы таблицы MySQL пополам для отображения на каждой стороне страницы laravel использовать сессию для хранения поля ввода и перейти на другую страницу Возвращаемое значение для браузера, но все еще обрабатывается в PHP PHP cURL: CURLOPT_CONNECTTIMEOUT vs CURLOPT_TIMEOUT Зачем использовать фреймворк с PHP? изображение с изображениями, используя собственный формат http-адаптера Как получить пул соединений, работающих с подключением к UnixODBC для доступа к PHP-CGI PDO iSeries? PHP: список аргументов переменной длины по ссылке? Можете ли вы использовать построитель запросов для построения запроса с динамическим предложением WHERE во время выполнения в laravel? показывая самое длинное расстояние для каждого велосипеда и зеленый значок, если более 100

Имеет ли PHP str_replace ограничение более 13 символов?

Это срабатывает до тех пор, пока не будет достигнут 13-й символ. Как только str_ireplace попадает в «массив» в «cy», str_ireplace перестает работать.

Существует ли ограничение на размер массива? Имейте в виду, если тип «abgf» я получаю «nots», но если я наберу «abgrf», когда я получу «заметки», я получаю «notrs». Сложил мой мозг не могу понять это.

$_cypher = array("n","o","p","q","r","s","t","u","v","w","x","y","z","a","b","c","d","e","f","g","h","i","j","k","l","m"); $_needle = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"); $_decryptedText = str_ireplace($_cypher, $_needle, $_text); echo $_decryptedText; 

Помогите?

Использовать strtr Docs :

 $_text = 'abgrf'; $translate = array_combine($_cypher, $_needle); $_decryptedText = strtr($_text, $translate); echo $_decryptedText; # notes 

демонстрация


Но было ли что-то, что я делал неправильно?

Он заменит каждую пару, одну пару за другой на уже замененной строке. Поэтому, если вы замените персонажа, который вы снова замените, это может произойти:

  r -> ee -> r abgrf -> notes -> notrs 

Ваша электронная замена приходит после вашей r-замены.

Использовать str_rot13

Возьмите пик в документах для str_replace . А именно, следующая строка:

Поскольку str_replace () заменяет слева направо, он может заменить ранее вставленное значение при выполнении нескольких замен. См. Также примеры в этом документе.

Так он работает, как сказано. Он просто выполняет круговую замену (n -> a, затем a -> n).

хотя он кажется прямым rot13, если это не так, другой вариант – использовать strtr () . Вы предоставляете строку и массив пар замещения и возвращаете полученный результат назад.