コード例 #1
0
 /**
  * テストデータを取得して更新する
  *
  * @param  AbstractTestData $plugin
  * @return void
  **/
 private function _updateTestData(AbstractTestData $plugin)
 {
     // エラー用のデータ(error.html, error2.html)を除外するため-2する
     $count = count($plugin->getHtmlPaths()) - 2;
     $dom = new \DOMDocument('1.0', 'UTF-8');
     $dom->load($plugin->getRssPath());
     $items = $dom->getElementsByTagName('item');
     if ($items->length === 0) {
         $items = $dom->getElementsByTagName('entry');
     }
     foreach ($items as $key => $item) {
         $test_data = $this->_downloadTestData($item);
         $test_data_path = $plugin->getHtmlPaths()[$key];
         file_put_contents(ROOT . '/data/fixtures/html/' . $test_data_path, $test_data);
     }
 }
コード例 #2
0
 /**
  * HTMLを取得する
  *
  * @param  string $url
  * @return
  **/
 public function fetchHtml($url = false)
 {
     if (!is_null($this->test_data)) {
         $html_paths = $this->test_data->getHtmlPaths();
         $html_path = ROOT . '/data/fixtures/html/';
         // テストデータを示したurlかどうか
         if (in_array($url, $html_paths)) {
             $html_path .= $url;
         } else {
             $html_path .= $html_paths[0];
         }
         $html = str_get_html(file_get_contents($html_path));
     } else {
         $html = file_get_html($url);
     }
     if ($html === false) {
         throw new CrawlerException('htmlが取得出来ませんでした');
     }
     return $html;
 }