За последние 24 часа нас посетили 61008 программистов и 1744 робота. Сейчас ищут 906 программистов ...

перевод строки

Тема в разделе "PHP для новичков", создана пользователем AniMEshKa, 25 янв 2008.

  1. AniMEshKa

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

    С нами с:
    4 сен 2007
    Сообщения:
    151
    Симпатии:
    0
    Адрес:
    Минск
    вопрос кажется сперва лёгким.. но на самом деле сижу вот голову ломаю..
    в общем.. в базе записан какой-то текст с переводом строки.. ну вот к примеру
    идея в том, чтобы передать этот текст в js
    с выводом наэкран всё в порядке.. с помощью функций nl2br и str_ replace можно заменить записанные в базе переводы строк на <br> НО текст тогда примет вид
    то есть в функцию js передастья примерно следующее
    HTML:
    1.  
    2. ... onMouseOver="func('абв
    3. <br>
    4. где')"  ....
    а так как тут получается наш текст на три строки.. естественно JS выдаёт ошибку..
    идеальным варинатом было бы к примеру следующее:
    PHP:
    1. print_r("наш текст с переводами строк");
    2.  
    а далее уже значение передать в JS
    но к сожалению print_r - языковая конструкция. которую не передашь.. значение её вернёт 1 если выведено.
    подскажите что тут моно сделать.. что-то я запуталась. :(
    Спасибо!
     
  2. AniMEshKa

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

    С нами с:
    4 сен 2007
    Сообщения:
    151
    Симпатии:
    0
    Адрес:
    Минск
    вопрос решился при исопльзовании str_replace("\r\n", "<br>",$r)
    до этого пробывала просто с str_replace("\n", "<br>",$r) и ничего не выходило толкового
     
  3. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. <?php
    2. print preg_replace('/(\n|\r\n|\r)/s', '<br />', <<<TEXT
    3. aa
    4.  
    5. bb
    6. TEXT
    7. );
    8.  
     
  4. AniMEshKa

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

    С нами с:
    4 сен 2007
    Сообщения:
    151
    Симпатии:
    0
    Адрес:
    Минск
    а что делать если в качестве текста воттакая бяка
     
  5. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    В чём проблема?
     
  6. AniMEshKa

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

    С нами с:
    4 сен 2007
    Сообщения:
    151
    Симпатии:
    0
    Адрес:
    Минск
    наверное в преобразовании кавычек.. но не уверена..
    print preg_replace('/(\n|\r\n|\r)/s', '<br />' ... чётко работает для пе6ревода строк.. а вот для крокозябры той не работает..
     
  7. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1. $var = print_r("наш текст с переводами строк", true);
    2. echo $var;
     
  8. AniMEshKa

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

    С нами с:
    4 сен 2007
    Сообщения:
    151
    Симпатии:
    0
    Адрес:
    Минск
    похоже дело в кавчках
    то есть если в JS передать текст
    то что сделать с этой двойной кавычкой?

    притом с одинарными кавычками всё получатеся ! :shock:
     
  9. AniMEshKa

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

    С нами с:
    4 сен 2007
    Сообщения:
    151
    Симпатии:
    0
    Адрес:
    Минск
    всё.. разобралась с крокозяблами.. всё норм. спасибо всем!
     
  10. Mr.Gordon

    Mr.Gordon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    37
    Симпатии:
    0
    а как на счёт заменить переносы до добавления в БД?
     
  11. Adil

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

    С нами с:
    21 сен 2006
    Сообщения:
    280
    Симпатии:
    0
    Mr.Gordon наверное потому, что в бд они должны присутствовать...
     
  12. AniMEshKa

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

    С нами с:
    4 сен 2007
    Сообщения:
    151
    Симпатии:
    0
    Адрес:
    Минск
    ахха.. точно.. да всё уже получилось :)) хыхы
     
  13. Adil

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

    С нами с:
    21 сен 2006
    Сообщения:
    280
    Симпатии:
    0
    AniMEshKa
    ну тогда покажи как ты это сделала, чтобы новичок, который придет не задавал вопрос точно с такой же проблемой, а просто посмотрел на твой пример, который найдет по поиску (что многие новички отказываются делать), и останется довольным.
     
  14. AniMEshKa

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

    С нами с:
    4 сен 2007
    Сообщения:
    151
    Симпатии:
    0
    Адрес:
    Минск
    оо.. хорошо.. в общем в итоге получилось следующее

    PHP:
    1.  
    2. $text="текст с кавычками (одинарными и двойными) и переводом строки";
    3. $task_descr=preg_replace('/(\n|\r\n|\r)/s', '<br />', $text);
    4. $task_descr=preg_replace('(")', '&quot;',$task_descr);
    5. $task_descr=preg_replace("(')", "(\')",$task_descr);
    далее значение переменной $task_descr передавать в JS, то есть сюда


    HTML:
    1. .. onMouseOver="func('{сюда значение}')"  ....