Показать сообщение отдельно
  #1 (permalink)  
Старый 14.03.2014, 15:22
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

str_replace в JS и PHP неправильно работает?
Запуская str_replace() получаю неожиданный результат. Или думаю не логично?
Вроде бы простая задача: в текстах из разных источников заменить перевод строки/возврат каретки на "каноническое" написание "\r\n".
Сначала JS.
На http://javascript.ru/php/str_replace уважаемым Kevin van Zonneveld предложен аналог PHP-функции str_replace().
Правомерна ли запись: var s = str_replace("A", "A", "A");
Я ожидал на выходе получить "A". Но имею зависание.

Теперь PHP. На http://php.ru/manual/function.str-replace.html дан пример и сказано: Обрабатывает сначала \r\n для избежания их повторной замены.
В моем тестовом примере для наглядности вместо "\r\n" использую "AB".
$s = "A123A456A789";                   
// при замене на A  получаем результат: A123A456A789             ok!
// при замене на AB получаем результат: AAB123AAB456AAB789       !??
$order   = array("AB", "A", "B");
$replace = "AB";
echo "исходная: $s<br>";
$s = str_replace($order, $replace, $s);
echo "результат: $s<br>";

Допустимо ли в $replace указывать такие же символы, что и в $order?
Ответить с цитированием