php递归函数字符串摘录

时间:2011-11-02 15:57:36

标签: php string recursion

我正在尝试在html中创建博客条目的摘录。我不希望摘录包含任何图像,所以我包含了一个功能,可以将图像剥离出来,这是正常工作的。

我正在使用包装图像的fckeditor

。所以如果html是

<p><img src="/yada" /> Here is some sample text. </p>

该函数的输出将是

Here is some sample text.

但是......如果图像是p标签内的唯一内容,则该函数返回一个空字符串,这是正确的,但不合需要。

我试图创建一个递归函数,从空p标签的末尾开始传递内容,直到找到包含内容的p标签,但它只是不断返回一个空字符串。

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;
}

0 个答案:

没有答案