如何使用Simple HTML Dom Parser处理页面抓取错误

pep*_*epe 5 php parsing dom codeigniter web-scraping

与Facebook类似,我正在构建一个允许用户发布链接的应用程序.

用户在输入字段中填写链接,然后控制器返回

Title
Link
Meta description
Images (as thumbnails)
Run Code Online (Sandbox Code Playgroud)

到了视野.

这是控制器代码:

    $url = $this->input->post('posts_link');

    if (!empty($url)) {

        $html = file_get_html($url);

        foreach ($html->find('img') as $element) {

          $src = "";

          $src = $element->src;

            if (preg_match("/\.jp[e]?g$/i", $src)) {

            $images[] = $src;

            }
        }

        $data['posts_link'] = $url;
        $data['images']     = $images;
        $data['title']          = $html->find('title', 0)->plaintext;
        $data['meta']           = get_meta_tags($url);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是没有图像,没有标题或没有描述(单独或组合).

我正在使用codeigniter,它会在视图上抛出几个错误,我宁愿压制它.

是否有最佳实践来抑制这些错误或放置空变量,以防DOM解析器没有返回标题/图像/描述?

比如我试过了

$data['images'] = $images ? $images : '';

但它并没有解决我的问题.

有什么建议?

谢谢.

zer*_*kms 1

在使用变量之前,您需要预先定义它们。因为$images这将是

$images = array();
Run Code Online (Sandbox Code Playgroud)

紧接着if (!empty($url)) {