Jump to content
  • 0

BB коды, запрет тегов.


JessyStorm
 Share

Question

Сделал комментирование, но столкнулся с проблемой, ведь можно использовать html теги, что может быть опасным, еще хотелось бы сделать BB коды, где можно взять парсер BB кодов и как запретить html теги?

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Для того чтобы убрать из кода или нейтрализовать html код, можно использовать встроенные php функции:

strip_tags()

htmlentities()

htmlspecialchars()

Либо Сделать тоже самое с помощью регулярного выражения самостоятельно.

BBcode обычно тоже реализуют с помощью регулярных выражений.

Link to comment
Share on other sites

  • 0

Спасибо функция помогла, возник еще вопрос, как проверить строку на пустоту?


if($str != ""){
//код здесь выполнится только если значение переменной отлично от ""
}

Link to comment
Share on other sites

  • 0

if (!strlen(trim($tring))) echo 'пустая строка'

ну или

if (empty($string)) echo 'пустая строка'

Кстати сказать это не всегда верно )


$string = " ";
if (!strlen(trim($string))) echo 'пустая строка';//вернет 'пустая строка' хотя она не пустая она состоит из нескольких пробельных символов что тоже может быть важно.
if (empty($string)) echo 'пустая строка';

и со вторым вариантом есть проблема:


$string = "0";
if (!strlen(trim($string))) echo 'пустая строка';
if (empty($string)) echo 'пустая строка';//вернет 'пустая строка' ибо "0" это false

Edited by wwt
Link to comment
Share on other sites

  • 0

Нужно на пустоту проверять так, чтоб наверняка:


if ((string) $str !== "") {
// значит не пусто
}

Я имел ввиду что если заранее известно что $str это строка.

Если может еще отличатся и тип переменной, то начинаются грабли даже после приведения типа, к примеру:


$str = false;//или null, или $undef
if ((string) $str !== "") {
echo "значит не пусто";
}

$str и "" будут считаться идентичными, и проверять нужно еще и на тип, но тогда приведение типов уже ненужно:


$str = false;
if(!is_string($str)) {
die('$str не строка');
}
if ($str != "") {
echo "значит не пусто";
}

Link to comment
Share on other sites

  • 0

Вообще граблей нет вроде:


$str = false;

echo ((string) $str === ""); // 1 - типа равно пустой строке

Ой, невнимательно прочитал. Ну типа я имел в виду, что нам пофиг на такие типы как boolean и null, т.к. false или null - это заведомо невалидная строка, а значит проверка на пустоту для этого случая тоже подходит.

Кстати, кому интересно нашел песочницу, где можно по-быстрому проверить PHP-код.

Link to comment
Share on other sites

  • 0

Вообще граблей нет вроде:


$str = false;

echo ((string) $str === ""); // 1 - типа равно пустой строке

Ой, невнимательно прочитал. Ну типа я имел в виду, что нам пофиг на такие типы как boolean и null, т.к. false или null - это заведомо невалидная строка, а значит проверка на пустоту для этого случая тоже подходит.

Кстати, кому интересно нашел песочницу, где можно по-быстрому проверить PHP-код.

Ну это да. Но есть еще переменные которым не присвоено значение, я записал это в виде $undef, для примера если по какой-то причине отосланные данные не будут присвоены переменной $str условие вернет не совсем что ожидалось. Хотя мы в какие-то дебри уже полезли )), а человек спросил всего лишь как проверить на пустоту строки ))

ЗЫ Сейчас заценим песочницу, спс.

Edited by wwt
Link to comment
Share on other sites

  • 0


$string = " ";
if (!strlen(trim($string))) echo 'пустая строка';//вернет 'пустая строка' хотя она не пустая она состоит из нескольких пробельных символов что тоже может быть важно.
if (empty($string)) echo 'пустая строка';

А есть такой вариант, что кто-то хочет видеть комментарии, состоящие из одних пробелов?
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy