т.е. если кто-то пишет и вставляет ролик м youtube то ковычки из всего комента уберает, только в ютубе осталяет ...
Спустя 2 минуты, 50 секунд (16.09.2011 - 22:27) Winston написал(а):
Так ты сначала покажи текст в котором нужно убрать, а то нифига не ясно.
Спустя 29 секунд (16.09.2011 - 22:27) Игорь_Vasinsky написал(а):
эт точно.. хоть и безцеремонно!
Спустя 4 часа, 50 минут, 14 секунд (17.09.2011 - 03:17) vital написал(а):
htmlspecialchars(весь_текст);
preg_replace_all('#\<\;object\&rt\;#','<object>');
и т.п.
preg_replace_all('#\<\;object\&rt\;#','<object>');
и т.п.
Спустя 2 минуты, 56 секунд (17.09.2011 - 03:20) vital написал(а):
И вот вам кусок функции по этому принципе работающуюю, только чуть сложнее, она еще атрибуты парсит.
private $allowed_tags = array(
array('b', true),
array('i', true),
array('u', true),
array('s', true),
array('strong', true),
array('em', true),
array('strike', true),
array('big', true),
array('small', true),
array('h1', true),
array('h2', true),
array('h3', true),
array('h4', true),
array('h5', true),
array('h6', true),
array('abbr', true, array(array('title', true))),
array('acronym', true),
array('blockquote', true),
array('br', false),
array('p', true),
array('sub', true),
array('sup', true),
array('ul', true),
array('ol', true),
array('li', true),
array('a', true, array(array('href', true, '[\/:a-z0-9-.?=&]+?'), array('title', false))),
array('img', false, array(array('src', true, '[\/:a-z0-9-.?=&]+?'), array('alt', false)))
);
//============================
foreach ($this->allowed_tags as $value)
{
$regexp_attributes = '';
$pattern_attributes = '';
$i = 1;
if (isset($value[2]) && is_array($value[2]))
{
foreach ($value[2] as $attr)
{
if (isset($attr[2]))
$val = '(' . $attr[2] . ')';
else
$val = '(.*?)';
if ($attr[1])
{
$regexp_attributes .= ' ' . $attr[0] . '="' . $val . '"';
$pattern_attributes .= ' ' . $attr[0] . '="$' . $i . '"';
$i++;
} else
{
$regexp_attributes .= '( ' . $attr[0] . '=")?' . $val . '(")?';
$i++;
$pattern_attributes .= ' ' . $attr[0] . '="$' . $i . '"';
$i+=2;
}
}
}
if ($value[1])
{
$regexp = '/<' . $value[0] . $regexp_attributes . '>(.*?)<\/' . $value[0] . '>/is';
$pattern = '<' . $value[0] . $pattern_attributes . '>$' . $i . '</' . $value[0] . '>';
} else
{
$regexp = '/<' . $value[0] . $regexp_attributes . '(\s?)(\/?)>/is';
$pattern = '<' . $value[0] . $pattern_attributes . ' />';
}
$str = preg_replace($regexp, $pattern, $str);
}