Я использую следующий код:
<?php
$stock = $_GET[s]; //returns stock ticker symbol eg GOOG or YHOO
$first = $stock[0];
$url = "http://biz.yahoo.com/research/earncal/".$first."/".$stock.".html";
$data = file_get_contents($url);
$r_header = '/Prev. Week(.+?)Next Week/';
$r_date = '/\<b\>(.+?)\<\/b\>/';
preg_match($r_header,$data,$header);
preg_match($r_date, $header[1], $date);
echo $date[1];
?>
Я проверил регулярные выражения здесь , и они кажутся действительными. Если я проверяю только $ url или $ data, они получаются правильно, и если я печатаю $ data и проверяю источник, то код, который я ищу для использования в регулярном выражении, находится там. Если вы заинтересованы в проверке чего-либо, пример правильного URL будет http://biz.yahoo.com/research/earncal/g/goog.html
Я перепробовал все, что мог придумать, включая var_dump ($ header) и var_dump ($ date), которые возвращают пустые массивы.
Мне удалось создать другие регулярные выражения, которые работают. Например, следующее правильно возвращает «Доходы»:
$r_header = '/Company (.+?) Calendar/';
preg_match($r_header,$data,$header);
echo $header[1];
Я схожу с ума, пытаясь понять, почему это не работает. Любая помощь будет потрясающей. Спасибо.