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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа со строками, Проблем с отсуцтвием пробелов в начале  
:(
    Опции темы
hexen
Дата 14.10.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



   Уважаемые программисты подскажите пожалуста такую вещь.
Проблема следующая. текст набранный в форме <textarea></textarea> где я ставил пробелы в начале строки и на новых обзацах. 
сохранил его в БД и когда хочу текст вывести как новость на сайте. пробелы в начале строки отсуцтвуют.

     добавил функцию nl2br() помогает но ставит только <br>. 
        А где пробелы делись? 
        Где их взять?
        хотя если этот текст вывести в форме опять то весь текст выглядит как нужно.
что делать направьте, подскажите. Бьюсь второй день.
PM MAIL WWW ICQ Skype   Вверх
SelenIT
Дата 14.10.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Цитата(hexen @  14.10.2007,  13:02 Найти цитируемый пост)
 А где пробелы делись?

Остались в исходном коде HTML, при рендеринге проигнорированы, как всегда...

Цитата(hexen @  14.10.2007,  13:02 Найти цитируемый пост)
что делать

Вариант 1: выводить текст в теге <pre></pre>, без nl2br().

Вариант 2: регулярками заменять подряд идущие пробелы на неразрывные, напр.
Код
preg_replace("/(?<=\s) (?=\s)/s", "&nbsp;", $text);

Вариант 3+: см. первую тему внизу страницы.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
sTa1kEr
Дата 14.10.2007, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

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



Цитата(SelenIT @  14.10.2007,  15:32 Найти цитируемый пост)
Вариант 2: регулярками заменять подряд идущие пробелы на неразрывные, напр.

Я бы рекомендовал заменять не на "&nbsp;", а на "\xA0"
PM MAIL   Вверх
hexen
Дата 14.10.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(sTa1kEr @ 14.10.2007,  18:36)
Цитата(SelenIT @  14.10.2007,  15:32 Найти цитируемый пост)
Вариант 2: регулярками заменять подряд идущие пробелы на неразрывные, напр.

Я бы рекомендовал заменять не на "&nbsp;", а на "\xA0"

 Спасибо щас попробую. 

PM MAIL WWW ICQ Skype   Вверх
SelenIT
Дата 14.10.2007, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



sTa1kEr, а какие еще плюсы "\xA0", кроме экономии трафика? А вдруг там (маловероятно, конечно, но чем шут не чертит...) окажется KOI-8?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
hexen
Дата 14.10.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(hexen @ 14.10.2007,  18:49)
Цитата(sTa1kEr @ 14.10.2007,  18:36)
Цитата(SelenIT @  14.10.2007,  15:32 Найти цитируемый пост)
Вариант 2: регулярками заменять подряд идущие пробелы на неразрывные, напр.

Я бы рекомендовал заменять не на "&nbsp;", а на "\xA0"

 Спасибо щас попробую.

вот что выводит на странице вместе с текстом \xA0как\xA0дела\xA0прохо

    Вобще смотрю на форуме винграда сообщения выводятся как мне нужно. А как из обк. формы такое слепить?

Добавлено через 10 минут и 43 секунды
Вобщем парни, спасибо большое за помощь, сделал сам и получил результат, что нужен.

function nls2p($str)
{  
  for ($i = 0;$i < strlen($str); $i++)
  {
    
    if(' ' == $str{$i}){ $strA{$i} .='&nbsp;';}
     else{ $strA{$i} .= $str{$i};}

    
  }
        $str = implode(NULL,$strA);
return  nl2br($str);
        
        
}

<td><?=nls2p(stripslashes($edit->news_text))?></td>

Это сообщение отредактировал(а) hexen - 14.10.2007, 19:01
PM MAIL WWW ICQ Skype   Вверх
sTa1kEr
Дата 14.10.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

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



Цитата(SelenIT @  14.10.2007,  18:55 Найти цитируемый пост)
sTa1kEr, а какие еще плюсы "\xA0", кроме экономии трафика?

Не надо декодировать символы. И, имхо, более правильный стиль. Просмотрите как нибудь html код, где в качестве отступов &nbsp; используется... Это же просто издевательство над html.

Цитата(SelenIT @  14.10.2007,  18:55 Найти цитируемый пост)
А вдруг там (маловероятно, конечно, но чем шут не чертит...) окажется KOI-8? 

А вдруг там ASCII-7? Тогда вообще остается либо htmlentities(), либо сразу удавится, что бы не мучатся smile
PM MAIL   Вверх
hexen
Дата 14.10.2007, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(sTa1kEr @ 14.10.2007,  19:13)
Цитата(SelenIT @  14.10.2007,  18:55 Найти цитируемый пост)
sTa1kEr, а какие еще плюсы "\xA0", кроме экономии трафика?

Не надо декодировать символы. И, имхо, более правильный стиль. Просмотрите как нибудь html код, где в качестве отступов &nbsp; используется... Это же просто издевательство над html.

Цитата(SelenIT @  14.10.2007,  18:55 Найти цитируемый пост)
А вдруг там (маловероятно, конечно, но чем шут не чертит...) окажется KOI-8? 

А вдруг там ASCII-7? Тогда вообще остается либо htmlentities(), либо сразу удавится, что бы не мучатся smile

  все там будет в норме, так как проверил на вывод,  просто без &nbsp; небыло красной строки 
все по одному уровню. а теперь гуд.
  и никто небудет мучаться асобенно я.
так как сервер мой, страница моя. СПС

Это сообщение отредактировал(а) hexen - 14.10.2007, 19:18
PM MAIL WWW ICQ Skype   Вверх
SelenIT
Дата 14.10.2007, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Цитата(sTa1kEr @  14.10.2007,  19:13 Найти цитируемый пост)
html код, где в качестве отступов &nbsp; используется... Это же просто издевательство над html.

Согласен. Вообще, имхо, правильнее всего использовать настоящие абзацы и text-indent... ;)

Цитата(sTa1kEr @  14.10.2007,  19:13 Найти цитируемый пост)
А вдруг там ASCII-7?

Ни разу не видел на сайтах. А KOI-8 видел (правда, это было так давно...). Если сейчас точно нет в ходу кодировок, где 160-й символ занят чем-то "левым" - то у меня вопросов больше нет smile.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




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


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

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