从silverstripe中获取内容的第一张图片

时间:2015-07-16 12:12:26

标签: silverstripe

我有以下方法,它假设从内容中获取第一个图像。

public function FirstImage($content)
{
    $dom = new DOMDocument();
    $dom->loadHTML($content);

    Debug::dump($content);

}

奇怪的是当我做 $ dom-> loadHTML 时,我收到以下错误Empty string supplied as input,但是一旦我转储它,我就会得到正确的数据。我该如何解决这个问题?

我也完成了$ this->所有者 - >具有相同内容的内容。

1 个答案:

答案 0 :(得分:1)

很抱歉周末期间我的计算机上没有响应,我找到了一个更好的解决方案,然后使用preg_match_all使用DOMDocument实例。以下是我使用过的代码。

    $pattern = '/<img[^>]+src[\\s=\'"]';
    $pattern .= '+([^"\'>\\s]+)/is';

    if (preg_match_all($pattern, $content, $match)) {
        $imageLink = preg_replace('/_resampled\/resizedimage[0-9]*-/', '', $match[1][0]);

        return (string) $imageLink;
    }