К примеру переменная содержит строку:
$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);
}
Не нашел ничего более адекватного. Пришлось оставлять так.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
documentreferrer с чужого домена у которого https - получаю пустое значение, это понятно, как можно по другому получить значение (домен) в ajax? $_SERVER['HTTP_REFERER']...