К примеру переменная содержит строку:
$string = 'Hello world</p>';
или
$string = '<p>Hello world';
Как проверить открытие/закрытие тегов и в случае если ошибка найдена - исправить..
Проверку парных тегов, расположенных в одной строке, можно сделать с использованием регулярных выражений.
<?php
$arr = [
' <p>Hello world',
' Hello world</p>',
'<span>Hello world',
'Hello world</h1>'
];
function checker($str)
{
if (preg_match('/^\s*(<([a-z0-9]+)>).*/', $str, $res)) {
$str = $str . "</" . $res[2] . ">";
return $str;
}
if (preg_match('/^(\s*)(.*)<\/([a-z0-9]+)>$/', $str, $res)) {
if ($res[1]) {
$str = str_replace(
$res[1],
$res[1] . '<' . $res[3] . '>',
$str
);
} else {
$str = '<' . $res[3] . '>' . $str;
}
return $str;
}
}
foreach ($arr as &$item) {
$item = checker($item);
}
var_dump($arr);
лучше всего использовать html парсер, но если это делать вручную то надо еще учитывать тот факт что не все теги парные... если бы все были парными то тогда можно было бы проверять количество > и < (должно быть четное число)
$closed_tag = substr_count($text, "</p>");
$open_tag = substr_count($text, "<p>");
if ($closed_tag != $open_tag) {
$text = str_replace("<p>", "", $text);
$text = str_replace("</p>", "", $text);
}
Не нашел ничего более адекватного. Пришлось оставлять так.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
documentreferrer с чужого домена у которого https - получаю пустое значение, это понятно, как можно по другому получить значение (домен) в ajax? $_SERVER['HTTP_REFERER']...