Я пытаюсь очистить текстовый файл между шаблоном и 12-й запятой строки.
Все, что я получаю, это пустая страница.
Мой ожидаемый результат:
WHEAT-SRW - CHICAGO BOARD OF TRADE",200114,2020-01-14,001602,CBT ,00,001 , 476764, 146061, 107856, 162340, 136922
Это код:
$scrape = scrape_between($scraped_page,
'WHEAT-SRW - CHICAGO BOARD OF TRADE',
'/[.*^,]+,[.*^,]+,[.*^;]+,[.*^,]+,[.*^,]+/'
);
Если я использую другой шаблон, например fghi
, все в порядке и Я получил свой результат.
Что не так?
Полный сценарий:
<?php
function scrape_between($data, $start, $end){
$data = stristr($data, $start);
$data = substr($data, strlen($start));
$stop = stripos($data, $end);
$data = substr($data, 0, $stop);
return $data;
}
function curl($url) {
$options = Array(
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_AUTOREFERER => TRUE,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
CURLOPT_USERAGENT => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8",
CURLOPT_URL => $url,
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$scraped_page = curl("https://www.cftc.gov/dea/newcot/deafut.txt");
$scraped_wheat = scrape_between($scraped_page, 'WHEAT-SRW - CHICAGO BOARD OF TRADE', '/(?:,[^,]+){11}/');
echo ($scraped_wheat."<br>");
?>