Ошибка Simple_Dom: file_get_contents (): поток не поддерживает поиск в Laravel - PullRequest
0 голосов
/ 23 октября 2018

Я получаю ошибку, как показано ниже.

file_get_contents (): поток не поддерживает поиск

Я установил simple_dom композитором:

composer require sunra/php-simple-html-dom-parser

и использовал это тоже:

use Sunra\PhpSimple\HtmlDomParser;

Это мой код:

$weblink = "http://www.sumitomo-rd-mansion.jp/kansai/";
    function fetch_sumitomo_links($weblink)
    {
        $htmldoc = HtmlDomParser::file_get_html($weblink);
        foreach ($htmldoc->find(".areaBox a") as $a) {
            $links[]          = $a->href . '<br>';
        }
        return $links;
    }

    $items = fetch_sumitomo_links($weblink);

    print_r($items);

Но я получаю ошибку.Любая идея?Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Это исправление проблемы:

$url = 'http://www.sumitomo-rd-mansion.jp/kansai/';

    function fetch_sumitomo_links($url)
    {
        $htmldoc = HtmlDomParser::file_get_html($url, false, null, 0 );
        foreach ($htmldoc->find(".areaBox a") as $a) {
            $links[]          = $a->href . '<br>';
        }
        return $links;
    }

    $items = fetch_sumitomo_links($url);

    print_r($items);
0 голосов
/ 23 октября 2018

Ответ есть в сообщении об ошибке.Источник ввода, который вы используете для чтения данных, не поддерживает поиск.

В частности, метод $htmldoc->find() пытается выполнить чтение непосредственно в файл, чтобы найти то, что ему нужно.Но поскольку вы читаете файл напрямую через http, который не поддерживает это.

Вы можете сначала загрузить файл, чтобы HtmlDomParser не приходилось искать с диска или, если вам нужноискать с диска, чтобы он мог по крайней мере считывать данные из локального источника данных, который поддерживает поиск.

...