Я пытаюсь создать отрывок из записи блога в формате html.Я не хочу, чтобы выдержка включала какие-либо изображения, поэтому я включил функцию, которая удаляет изображения, которая работает правильно.
Я использую fckeditor, который упаковывает изображения в
.Таким образом, если html был
<p><img src="/yada" /> Here is some sample text. </p>
, выход из функции был бы
Here is some sample text.
Однако ... Если изображение является единственным внутри тегов p, функция возвращаетпустая строка, которая является правильной, но нежелательной.
Я попытался создать рекурсивную функцию, которая передает содержимое, начиная с конца пустых тегов p, пока не найдет теги ap, содержащие содержимое, нопросто возвращает пустую строку.
function get_excerpt($content) {
$start = strpos($content, '<p');
if($start !== FALSE) {
$p_open = strpos($content, '>', $start) + 1;
$p_close = strpos($content, '</p>', $p_open);
$length = $p_close - $p_open;
$p_contents = substr($content, $p_open, $length);
$p_contents = removeImages($p_contents);
$contentLength = strlen($content);
$newContent = substr($content, $p_close);
if($p_contents == "")
{
get_excerpt($newContent);
}
else
{
return $p_contents;
}
}
else
{
return 'Excerpt not available';
}
}
function removeImages($string)
{
$newString = preg_replace("/<img[^>]+\>/i", "", $string);
return $newString;
}