@danylokiz

Как через if проверять была ли функция успешна?

Можно ли проверять через if была ли функция успешна?
От пример:
$url = $_POST['link'];
echo $url;
require('simple_html_dom.php');
$html = file_get_html($url);
// Проверять есть ли результат в этой функции, если нет - echo "Ничего";
foreach($html->find('iframe[src]') as $element) {

    $newurl = $element->content;
    $_SESSION['newurl'] = $newurl;

  }
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 1
JimmDiGreez
@JimmDiGreez
Full-stack Developer
Гадать не буду, какая либа для работы с dom деревом используется, потому в лоб.
Конкретно в данном случае очевидно, что на выходе из функции у нас ожидается iterable (то есть либо array, либо объект реализующий Traversable). Соотственно можно проверить:
$iframes = $html->find('iframe[src]');

if (!is_iterable($iframes) 
    || ($iframes instanceof Countable && 0 === count($iframes)) 
    || ($iframes instanceof Traversable && 0 === iterator_count($iframes))) {
   // empty
}


А если речь про file_get_html, то в случае отсутствия контента или превышения размеров файла функция возвращает false и можно проверить простым сравнением с false.
$html = file_get_html($url);

if (false === $html) {
    // empty
}

Код функции тут
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы