За последние 24 часа нас посетили 14937 программистов и 1725 роботов. Сейчас ищут 1244 программиста ...

Удаление символов перевода строки

Тема в разделе "PHP для новичков", создана пользователем Беляш, 13 апр 2010.

  1. Беляш

    Беляш Активный пользователь

    С нами с:
    31 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Как можно удалить из строки ВСЕ символы перевода строки? trim() не подходит, так как удаляет только начальные и концевые. str_replace() почему-то тоже не помогает. Уже даже попробовал поизвращаться: сначала nl2br, а потом strip_tags(), но так тоже не получилось.
     
  2. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    А что не получилось то? Может хоть свой пример покажете?

    P.S.
    HTML:
    1.  
    2. <?xml version="1.0" encoding="utf-8"?>
    3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    4.  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    5.  <html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
    6.     <head>
    7.         <title>Title</title>
    8.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    9.     </head>
    10.     <body>
    11.         <div>
    12.         <?php  
    13.             $str  =   '
    14. Я текст
    15. с
    16. переводами
    17. строк
    18. туда сюда и
    19. все такое
    20. .
    21.             ';
    22.            
    23.             $PCREpattern  =  '/\r\n|\r|\n/u';
    24.  
    25.             echo  preg_replace($PCREpattern, '', $str);
    26.             echo  '<hr />';
    27.             echo  str_replace($strReplacePattern, '', $str);
    28.         ?>
    29.         </div>
    30.     </body>
    31. </html>
    32.  
    Такой вариант пробовали?
     
  3. Беляш

    Беляш Активный пользователь

    С нами с:
    31 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Делал так.
    PHP:
    1. <?php
    2. ...
    3. $comment = str_replace("\n", ' ', strip_tags($_POST['comment']));
    4. ...
    5. ?>
    Не понимаю в чем ошибка... переменная $_POST['comment'] приходит из <textarea>...

    UPD: Все нашел свою ошибка, сорри. Все нормально работало, проблема в том что ночью спать надо было: оказывается ниже повторное присваивание описал $comment = strip_tags($_POST['comment']); :D
     
  4. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Мой пример, не смотрите, я еще кофе тогда не выпил.

    PHP:
    1.  
    2. <?php
    3.     // Разные редакторы по разному выставляют: некоторые только возврат каретки, некоторые перевод строки
    4.     // а часть и то и другое вместе. Так что лучше перестраховаться.
    5.     $comment = str_replace(array("\r\n", "\r", "\n"), '',  strip_tags($_POST['comment']));
    6. ?>
    7.  
    М?
     
  5. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Аминь.
     
  6. Беляш

    Беляш Активный пользователь

    С нами с:
    31 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    akrinel
    Спасибо, выше пост обновил.
     
  7. Беляш

    Беляш Активный пользователь

    С нами с:
    31 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Это (наверно) все же зависит от того в какой ОС ты, в windows конец строки \r\n , тогда как в *nix просто \n
     
  8. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Это само собой. Просто во многих редакторах дополнительно настраивается как переводить строку.
     
  9. Беляш

    Беляш Активный пользователь

    С нами с:
    31 янв 2010
    Сообщения:
    20
    Симпатии:
    0
    Спасибо, возьму на заметку.
     
  10. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Нужна была разбивка по строкам, explode('\r', $text) работала ровно так же как и explode('\r\n', $text) и как explode('\n', $text). Может они все в интерпретаторе приравниваются к массиву из 3-х стилей перевода строки?
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Neka
    видимо там было "\n\r", поэтмоу работало во всех трех случаях =)
     
  12. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Двойные кавычки использовать надо, двойные.
    Одинарные не парсируются.
     
  13. phper

    phper Новичок

    С нами с:
    21 авг 2013
    Сообщения:
    2
    Симпатии:
    0
    Вот здесь есть решение по замене всех символов перевода строки тегами br, думаю, что изменить под ваши нужды не составит труда.
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    4 года прошло, думаю автор уже нашел решение.