无法打开流:php中没有这样的文件或目录-scandir

时间:2018-07-04 18:14:05

标签: php laravel file-get-contents scandir

我正在使用Laravel 5.1 在文件夹/ p​​ublic / download中,我需要获取许多.htm页面,所以我写:

<div class="flex">
  <div class="flex w-100 special">
    <input type="" class="flex-1" />
    <div class="flex-2">
      <i class="fa fa-address-book" aria-hidden="true"></i>
    </div>
  </div>
  <div class="content">
    content info box content
  </div>
</div>

但是我得到了错误:

AdminController.php第133行中的

ErrorException: file_get_contents(1742-wine-bar-1.htm):无法打开流:没有此类文件或目录 enter image description here 我也尝试:

public function scraper() {

 $path = 'downloads/';
$files = scandir($path);
foreach ($files as $k => $file) {
    if ($k < 2) continue;
  $html = file_get_contents($file);

//parse the html into a DOMDocument
$dom = new DOMDocument();
@$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("//div[@class='merchant-links']/a/@href");

echo $hrefs;
}
}

2 个答案:

答案 0 :(得分:2)

我通过以下方式解决了我的问题:

$files = glob('downloads/*.{htm}', GLOB_BRACE);

答案 1 :(得分:1)

我认为您应该使用

$html = file_get_contents($path.$file);

因为在$ html变量中,您只有文件名,但是必须在函数file_get_contents()中包含目录路径