Оставить только HTML

Тема в разделе "PHP", создана пользователем Raccoon, 28 сен 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Raccoon

    Raccoon

    Регистр.:
    31 июл 2007
    Сообщения:
    172
    Симпатии:
    9
    Как оставить из пришедшего от юзера текста только html и js код, а php удалить?
     
  2. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    пример в студию
     
  3. Raccoon

    Raccoon

    Регистр.:
    31 июл 2007
    Сообщения:
    172
    Симпатии:
    9
    а какой пример, обычное поле <textarea>, в него юзер вставляет html код и нажимает кнопку сохранить, такое часто используется при указании заглушки в баннерных сетях.
     
  4. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    200
    Симпатии:
    55
    Нужно удалить все от <?php или <? до ?>
    Функция str_pos в помощь.
    Регулярка будет примерно такой (означает удалить все теги ПХП и содержимое между ними.)
    preg_replace('/(<\?|<\?php).+\?>/isU',"",$txt);
     
    Raccoon нравится это.
  5. pitkina

    pitkina

    Регистр.:
    1 апр 2007
    Сообщения:
    253
    Симпатии:
    176
    или еще вариант через встроенный парсер php кода (tokenizer), где T_INLINE_HTML означает все кроме php кода

    PHP:
    // $code
    foreach (token_get_all($code) as $token)
    if(
    $token[0]==T_INLINE_HTML$res_code .= $token[1];
    // $res_code;
     
    Raccoon нравится это.
  6. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    strip_tags() как вариант.
     
  7. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    И что ты собираешься перечислять там все возможные html-теги чтобы ненароком что-то не удалить? К тому же strip_tags() не проверяет корректность HTML кода, незавершенные тэги могу привести к удалению текста, не входящего в тэги. Для таких задач существуют регулярные выражения.
     
  8. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Если HTML-код некорректен, то это не проблема инструментария, это раз.
    Определять дозволенные теги - хорошая идея, это два.
     
  9. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    1) Это проблема не инструментария, а разработчика. В рамках поставленной ТС задачи это значение не имеет, но раз ты предлагаешь вариант с strip_tags, ты должен учитывать все возможные последствия. Иначе твой совет просто вреден.
    2) И как же ты будешь их определять, раскрой секрет? будешь перечислять все возможные и невозможные варианты?
     
  10. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    1) Программист не может предугадать все возможные входящие данные, особенно если это rich-text. Ты мыслишь исходя из поставленной задачи и не смотришь в даль - это для программиста фатально.
    2) Немыслимых вариантов не должно быть, все должно быть жестко декларировано.

    P. S. С ветряной мельницей воюешь, честное пионерское.
     
Статус темы:
Закрыта.