| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Проблема с символом перевода строки |
| Автор: Гость_Chuck 31.3.2004, 21:18 |
| Привет У меня на хостинге не поддерживается база данных - мускл Поэтому я столкнулся с проблемой сохранения в файл данных Приведу пример. Что бы сделать гостевую книгу - нужен файл, куда будет записываться вся ваша инфа + посты!!! Так вот проблема в том, что если кто-то нажмет Энтер в поле <textarea name=text ....>Здесь Вы можете выразить ваши мысли</textarea> то переменная $text будет содержать знак перевода строки (\n) а при записи в файл я использую следующие поля ваше_мыло::имя::город::число::текст\n так вот при записи $text, содержащего \n получится ваше_мыло::имя::город::число::те кст\n А след. строка - уже другое сообщение - все рушится! Пробывал юзать nl2br(string, string),но эта функция просто вставляет ПЕРЕД \n тэг <br> так что я решаю проблему так $text = strtr($text, "\n", "^"); $text = str_replace("^", "<br>", $text); В Перле это конешно проше! $value =~ s/\n/<br>/g; Но вот PHP..... Может, кто что подскажет?!!! |
| Автор: IZ@TOP 31.3.2004, 21:52 | ||
|
| Автор: Morello 1.4.2004, 10:06 |
| что-то не совсем понял проблему...кажется здесь можно обойтись функцией trim(). то бишь $text = trim($text) |
| Автор: Master 1.4.2004, 10:54 |
| Morello причем тут трим? он обрезает начальные и конечные пробельные символы... а в этой ситуации еу надо убрать все символы новой строки. |
| Автор: DENNN 1.4.2004, 11:12 | ||
самое простое, но не самое экономичное по времени и объему перекидываемых данных:
|
| Автор: IZ@TOP 1.4.2004, 11:32 |
| DENNN , я ни чего не понял из твоего поста. Мне кажеться что я все сказал по решению проблемы. Думаю в доп. постах эта тема не нуждается... если только у Автора не появится еще вопросы по этой теме. |
| Автор: Гость_Chuck 1.4.2004, 12:15 | ||||
Спасибо, Изатоп!!! Огромное! У меня вопрос, а почему нужно использовать массив, а просто нельзя $a = str_replace('\n\r', "<br>", $a); Дело в том, что мне это посоветовали сделать на другом форуме, но это не работает, потом мне посоветовали поиграться с serialaze(); Что Вы на это скажете??? |
| Автор: Master 1.4.2004, 12:21 |
| потому что не во всех операционках, в которых заполняют форму посылается именно \r\n иногда сивмол возврата коретки может отстутствовать... вернее интерпритатор должен подсознательно его видеть, только вот по моему данный пример в строку: 123\r\n456 добавит 2 <br>, что тоже не правильно. Вообче на мой взгляд \r вообче можно не использовать. Он твоей задачи повредить не должен. |
| Автор: Morello 1.4.2004, 12:59 |
| Master По поводу trim() Обращаю твое внимание к документации: http://www.php.net/manual/en/function.trim.php Кажется там ясно сказано, что делает данная функция! |
| Автор: Master 1.4.2004, 13:22 | ||
Morello
я эту функцию использую не один год и для решения этой задачи она не подходит. Добавлено @ 13:23 не надо обращать моё внимание к документации. я её читаю не один раз в день. |
| Автор: Morello 1.4.2004, 14:05 |
| Слушай, Master ! А ведь ты не прав! Просто не хочешь в этом сознаться! |
| Автор: Master 1.4.2004, 14:24 |
| в чем признаться? в том, что функция trim, обрезающая начальные и конечные пробельные символы строки подойдет для замены в строке всех символов новой строки на <BR> в этом я должен признаться? RTFM! Добавлено @ 14:29 Morello ты сначала сам внимательно прочти вопрос. подумай, знаеш ли ты как на него ответить, потом проверь решение если не уверен в его правильности, а потом предлогай, а так извини. Ты не зная броду лезеш в воду. |
| Автор: IZ@TOP 1.4.2004, 15:11 | ||
| Модератор: Мастер прав, функция trim не подходит для решения этой проблемы. Но это не повод для флейма. Все последующие сообщения не относящиеся к теме или которые будут продолжать спор в данном топике - будут удалены.
По идее должно помочь, если ф функии str_replace приоритет выполнения начинается с первого индекса массива замены. |
| Автор: sergejzr 1.4.2004, 19:48 |
| Добрый день! Гость_Chuck eсли у тебя РНР 5 то можешь юзать БД http://www.sqlite.org. Есть она и для старых версий РНР, но надо специально устанавливать. Об этой БД мы говорили http://forum.vingrad.ru/index.php?showtopic=18926. Там пример на Си. В 5 РНР можешь пользоваться интерфейсом DB. Если решишь использовать SQLite и нужен будет пример на PHP я его здесь предоставлю. |
| Автор: sergejzr 1.4.2004, 20:04 | ||
| Хотя вот пример под рукой нашёл. Может ещё кому понадобится. Эта история во время отработки создаёт файл, в котором и хранится информация.
никакой другой БД или ДЛЛь не надо. B РНР 5 всё уже есть. Удачи! Сергей |