Проблема с удалением переносов строк из MYSQL

Статус
В этой теме нельзя размещать новые ответы.

askarbin

Профессор
Регистрация
31 Мар 2009
Сообщения
292
Реакции
36
Столкнулся с проблемой при работе с api яндекс карт.
Задача стояла такая, чтобы выводить объект на карту по заданным координатам и к нему прикручивать балун с определенными данными из ячейки БД.
Так вот при добавлении описания в балун возникла странная проблема.
Если текст в БД идет без переносов строк, то все выводится отлично.
Но вот если в нем есть переносы строк, то карта не выводится вообще.
И речь тут не о тегах <br />, а именно о переносах строк, которые через поле <textarea> попадают в БД.
Пытался функцией str_replace убирать "\n", не помогает.
Подскажите, как быть, проблему можно решать на любой стадии.
 
ты убил \n, а остались \r - убей их тоже.
 
В Unix каждая строка текстового файла заканчивается символом "перевод строки" \n (код 0x0A). В Windows текстовые строки разделяются парой символов: "возврат каретки" \r (0x0D) и "перевод строки" \n (0x0A).

То есть в Unix системах на конце используется \n, в windows \r\n.
 
К сожалению, эти способы не принесли желаемого результата.
Если существует перенос строки, Яндекс карта все равно упорно не показывается. Может быть кто-нибудь посоветует другое решение проблемы?
 
кроме \n и \r я еще убивал \t (табуляция) и пробелы в конце и начале строк (ну кроме одного, естественно). По пробелам - бывало, что их встречается по 2 и более...
 
В какой кодировке у вас данные?
 
К сожалению, эти способы не принесли желаемого результата.
Если существует перенос строки, Яндекс карта все равно упорно не показывается. Может быть кто-нибудь посоветует другое решение проблемы?
Есть два решения, оба должны работать:
1) str_replace ( "\r\n" , "" , $str)
Обращаю внимание что "\r\n" - обязательно в двойных кавычках, по другом не сработает.
2) str_replace ( "
" , "" , $str)
Здесь прям в в коде функции в первом аргументе делаем перенос строки нажав на enter :) Ну работает безотказно :) Единственно не помню играют ли роль здесь кавычки двойные или одинарные. Попробуйте если что и так и так.
 
Есть два решения, оба должны работать:
1) str_replace ( "\r\n" , "" , $str)
Обращаю внимание что "\r\n" - обязательно в двойных кавычках, по другом не сработает.
2) str_replace ( "
" , "" , $str)
Здесь прям в в коде функции в первом аргументе делаем перенос строки нажав на enter :) Ну работает безотказно :) Единственно не помню играют ли роль здесь кавычки двойные или одинарные. Попробуйте если что и так и так.
ИМХО оба варианта одинаковы, лучше прописывать символы через эскейп-последовательность, насчет кавычек помойму без разницы.
 
переносы лучше не убивать, а конвертануть в html
nl2br()
кроме того, если строка для карты идет в кавычках, то кавычки тоже нельзя там использовать, да и спецсимволы лучше как минимум слешать. Возможно поможет вот что:
function jsonString( $string )
{
static $chars = "\0..\37\\/\"";
return addcslashes( $string, $chars );
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху