php рекурсивная функция отрывок строки - PullRequest
0 голосов
/ 02 ноября 2011

Я пытаюсь создать отрывок из записи блога в формате 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...