Привет, ребята, я использую этот замечательный класс здесь, чтобы сделать небольшую фильтрацию встраивания кода: http://simplehtmldom.sourceforge.net/. Он расширяет класс документа PHP DOM.PHP Simple DOM Parser
Я занимаюсь синтаксическим анализом строки этого класса, содержащей код вставки, я получаю уникальные биты информации, например, идентификатор, ширину и высоту отправки через функцию обработчика, которая вставляет идентификатор, ширину, высоту и т. Д. мой предопределенный «безопасный» шаблон и повторно вставьте мой безопасный шаблон вместо кода вставки, который пользователь вложил. Может показаться, что это делается наоборот, но это так, как это нужно сделать :)
Все это работает отлично. Проблема в том, что в строке есть нечто большее, чем просто вставлять код, поскольку я не могу просто заменить код для встраивания. Я могу только заменить всю строку, которая вытирает остальную часть тэгов и т. Д. Например, если есть тег p, который будет вытерт.
Так что мой вопрос в том, как с помощью этого класса я могу просто заменить определенную часть строки? Провел последние несколько дней, пытаясь разобраться в этом, и нужно еще немного ввода. Кажется, класс может это сделать, поэтому я в тупике.
Вот основной вариант того, что я до сих пор :)
// load the class
$html = new simple_html_dom();
// load the entire string containing everything user entered here
$return = $html->load($string);
// check for embed tags
if($html->find('embed') == true
{
foreach($html->find('embed') as $element)
{
// send it off to the function which returns a new safe embed code
$element = create_new_embed($parameters);
// this is where i somehow i need to save the changes and send it back to $return
}
}
Любой вход будет с благодарностью оценили. Если я объяснил свою проблему достаточно хорошо, пожалуйста, дайте мне знать :)
Конечно, это было очевидно. Большое спасибо. –
Благодарим вас за быстрый ответ! –
Нет проблем. Если это ответит на ваш вопрос, подумайте о том, чтобы щелкнуть хороший галочкой, что означает ... он наилучшим образом отвечает на ваш вопрос :-) И добро пожаловать в Stackoverflow. – Erik