Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с символом перевода строки, нету базы, юзаю текстовые файлы 
:(
    Опции темы
Гость_Chuck
Дата 31.3.2004, 21:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет
У меня на хостинге не поддерживается база данных - мускл
Поэтому я столкнулся с проблемой сохранения в файл данных
Приведу пример. Что бы сделать гостевую книгу - нужен файл, куда будет записываться вся ваша инфа + посты!!!
Так вот проблема в том, что если кто-то нажмет Энтер в поле <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 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата
$text = str_replace(array("\r","\n"), "<br />", $text);



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Morello
Дата 1.4.2004, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 24.2.2004

Репутация: -1
Всего: нет



что-то не совсем понял проблему...кажется здесь можно обойтись функцией trim(). то бишь $text = trim($text)
PM MAIL   Вверх
Master
Дата 1.4.2004, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



Morello
причем тут трим?
он обрезает начальные и конечные пробельные символы... а в этой ситуации еу надо убрать все символы новой строки.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
DENNN
Дата 1.4.2004, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



самое простое, но не самое экономичное по времени и объему перекидываемых данных:
Код
urlencode($text) -> запись в файл, urldecode($text)->htmlentities($text, ENT_QUOTES, "cp1251");->echo $text

PM ICQ   Вверх
IZ@TOP
Дата 1.4.2004, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



DENNN , я ни чего не понял из твоего поста. Мне кажеться что я все сказал по решению проблемы. Думаю в доп. постах эта тема не нуждается... если только у Автора не появится еще вопросы по этой теме.



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Гость_Chuck
Дата 1.4.2004, 12:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(IZ @ 31.3.2004, 21:52)
Цитата
$text = str_replace(array("\r","\n"), "<br />", $text);

Спасибо, Изатоп!!! Огромное!
У меня вопрос, а почему нужно использовать массив, а просто нельзя
$a = str_replace('\n\r', "<br>", $a);
Дело в том, что мне это посоветовали сделать на другом форуме, но это не работает, потом мне посоветовали поиграться с serialaze();
Что Вы на это скажете???
  Вверх
Master
Дата 1.4.2004, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



потому что не во всех операционках, в которых заполняют форму посылается именно \r\n
иногда сивмол возврата коретки может отстутствовать... вернее интерпритатор должен подсознательно его видеть, только вот по моему данный пример в строку:

123\r\n456

добавит 2 <br>, что тоже не правильно.
Вообче на мой взгляд \r вообче можно не использовать. Он твоей задачи повредить не должен.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Morello
Дата 1.4.2004, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 24.2.2004

Репутация: -1
Всего: нет



Master
По поводу trim()
Обращаю твое внимание к документации: http://www.php.net/manual/en/function.trim.php
Кажется там ясно сказано, что делает данная функция!
PM MAIL   Вверх
Master
Дата 1.4.2004, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



Morello
Цитата
This function returns a string with whitespace stripped from the beginning and end of str.


я эту функцию использую не один год и для решения этой задачи она не подходит.
Добавлено @ 13:23
не надо обращать моё внимание к документации.
я её читаю не один раз в день.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Morello
Дата 1.4.2004, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 24.2.2004

Репутация: -1
Всего: нет



Слушай, Master ! А ведь ты не прав! Просто не хочешь в этом сознаться!
PM MAIL   Вверх
Master
Дата 1.4.2004, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

Репутация: 8
Всего: 10



в чем признаться?

в том, что функция trim, обрезающая начальные и конечные пробельные символы строки подойдет для замены в строке всех символов новой строки на <BR>

в этом я должен признаться?

RTFM!
Добавлено @ 14:29
Morello
ты сначала сам внимательно прочти вопрос. подумай, знаеш ли ты как на него ответить, потом проверь решение если не уверен в его правильности, а потом предлогай, а так извини. Ты не зная броду лезеш в воду.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
IZ@TOP
Дата 1.4.2004, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Модератор: Мастер прав, функция trim не подходит для решения этой проблемы. Но это не повод для флейма.
Все последующие сообщения не относящиеся к теме или которые будут продолжать спор в данном топике - будут удалены.


Цитата
$test = str_replace(array("\r\n", "\r", "\n"), "<br />", $text);

По идее должно помочь, если ф функии str_replace приоритет выполнения начинается с первого индекса массива замены.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 1.4.2004, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 5
Всего: 360



Добрый день!
Гость_Chuck eсли у тебя РНР 5 то можешь юзать БД SQLite.
Есть она и для старых версий РНР, но надо специально устанавливать.
Об этой БД мы говорили здесь. Там пример на Си.
В 5 РНР можешь пользоваться интерфейсом DB.
Если решишь использовать SQLite и нужен будет пример на PHP я его здесь предоставлю.

Это сообщение отредактировал(а) sergej.z - 1.4.2004, 20:07


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
sergejzr
Дата 1.4.2004, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 5
Всего: 360



Хотя вот пример под рукой нашёл. Может ещё кому понадобится.

Эта история во время отработки создаёт файл, в котором и хранится информация.
Код

include("DB.php");
include("DB/sqlite.php");

if (!extension_loaded("sqlite")) {
dl("sqlite.so");
}
$dsn = array (
       'phptype'   => "sqlite",
       'database'  => "c:\protokol.db", //имя файла с информацией.Это и есть собственно сама БД.
       'mode'      => 0644                    //Будем читать и писать в БД
   );
//"соединяемся" то есть создаём файл
$SDB=&new DB_sqlite();
$SDB->connect($dsn,array('persistent'=> true));
$SDB->setFetchMode(DB_FETCHMODE_ASSOC);
//Юзаем SQL
$SDB->query("create table person(id integer primary key,name string);");
$SDB->query("insert into person values('"."1"."','"."ivanov"."');");
$r = $SDB->query("select name from person;");
 while ($row = $SDB->fetchRow($r ))
{
     print_r(row);
}


никакой другой БД или ДЛЛь не надо. B РНР 5 всё уже есть.
Удачи!
Сергей

Это сообщение отредактировал(а) sergej.z - 1.4.2004, 20:05


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1276 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.