За последние 24 часа нас посетили 18790 программистов и 1612 роботов. Сейчас ищет 991 программист ...

Как убрать мягкие переносы ?

Тема в разделе "PHP для новичков", создана пользователем Kokaln, 8 апр 2009.

  1. Kokaln

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

    С нами с:
    8 апр 2009
    Сообщения:
    16
    Симпатии:
    0
    Помогите, пож, как убрать мягкие переносы при приеме из формы ?
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    мягкие переносы — это &shy; , <wbr> и & #8203;​ Ты про какой?
     
  3. Kokaln

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

    С нами с:
    8 апр 2009
    Сообщения:
    16
    Симпатии:
    0
    я про &shy;
    в форму человек вставляет текст &shy;, как из вырезать?
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    так, вроде ж,
    PHP:
    1. <? $str=str_replace('&shy;','',($str));
    справляется…
     
  5. Kokaln

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

    С нами с:
    8 апр 2009
    Сообщения:
    16
    Симпатии:
    0
    так пробовал, нет :(
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Значить не &shy;
     
  7. Kokaln

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

    С нами с:
    8 апр 2009
    Сообщения:
    16
    Симпатии:
    0
    в форму вставляются из буфера с &shy;
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Покажите код, где режете, сдается мне, что пытаетесь после htmlspecialchars
     
  9. Kokaln

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

    С нами с:
    8 апр 2009
    Сообщения:
    16
    Симпатии:
    0
    нет, в самом начале:
    $text = str_replace('&shy;', '', $text);
    $text = trim(ereg_replace("<.*>","",$text));
    $text = nl2br($text);
    $text = strip_tags($text);
    $text = preg_replace("/[\f|\r|\n|\t]+/"," ", $text);
    $text = stripslashes($text);
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    $text - надеюсь, что это $_POST["text"]?

    Сначала ereg_replace("<.*>","",$text), а потом strip_tags($text)? Первой функцией Вы убираете все теги, и второй снова пытаетесь это сделать.
    preg_replace("/[\f|\r|\n|\t]+/"," ", $text); - \r|\n и так убирает nl2br($text).

    Посмотрите, что в $text (только смотрите исходный html).
     
  11. Kokaln

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

    С нами с:
    8 апр 2009
    Сообщения:
    16
    Симпатии:
    0
    Например :
    пи­ло­ма­те­ри­ал (кстати и здесь не вырезались переносы, попробуйте втавьте в блокнот "пи­ло­ма­те­ри­ал")

    в исходном html как: пи-ло-ма-те-ри-ал
    на экране в форме: пиломатериал

    "-" тоже пробовал заменять, не получается
     
  12. Kokaln

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

    С нами с:
    8 апр 2009
    Сообщения:
    16
    Симпатии:
    0
    Помогите, пож, так как их вырезать? См. предыдущий пост.
     
  13. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
  14. Kokaln

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

    С нами с:
    8 апр 2009
    Сообщения:
    16
    Симпатии:
    0
    Ti, спасибо, получилось вот так :
    $text = htmlentities($text);
    $text = str_replace('&shy;', '', $text);
    $text = html_entity_decode($text);