Как обрабатывать ошибки очистки страниц с помощью простого HTML Dom Parser - PullRequest
5 голосов
/ 21 июня 2011

Подобно Facebook, я создаю приложение, которое позволяет пользователям публиковать ссылку.

Пользователь заполняет ссылку в поле ввода, и контроллер возвращает

Title
Link
Meta description
Images (as thumbnails)

к виду.

Вот код контроллера:

    $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);

Проблема, с которой я столкнулся, заключается в том, что нет изображений, заголовка или описания (отдельно или в комбинации).

Я использую codeigniter, и он вызывает несколько ошибок в представлении, которые я бы предпочел подавить.

Есть ли лучший способ подавить эти ошибки или поместить пустые переменные в случае отсутствия заголовка/ images / описания возвращаются анализатором DOM?

Например, я пробовал

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

, но это не решает мою проблему.

Есть предложения?

Спасибо.

Ответы [ 3 ]

1 голос
/ 21 июня 2011

Вам необходимо предварительно определить переменные, прежде чем использовать их.Для $images это будет

$images = array();

сразу после if (!empty($url)) { и т. Д.

0 голосов
/ 21 июня 2011
if (array_key_exists('images', $data)) {
    // display the image
    }
else
{

    //set a default image, etc
}

или что-то вроде isset

0 голосов
/ 21 июня 2011

вы можете подавить ошибки, используя символ @. т.е.

 @     $data['images']     = $images;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...