Je suis en utilisant le code suivant:expression régulière Soi-disant valide ne retourne pas de données en PHP
<?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];
?>
J'ai vérifié les expressions régulières here et ils semblent être valides. Si je vérifie seulement $ url ou $ data, ils ressortent correctement et si j'imprime $ data et que je vérifie la source, le code que je cherche à utiliser dans l'expression rationnelle est là. Si vous êtes intéressé à vérifier quelque chose, un exemple d'une URL correcte serait http://biz.yahoo.com/research/earncal/g/goog.html
J'ai essayé tout ce que je pouvais penser, y compris var_dump ($ header) et var_dump ($ date), qui retournent tous les deux tableaux vides.
J'ai été capable de créer d'autres expressions régulières qui fonctionnent. Par exemple, ce qui suit renvoie correctement "Gains":
$r_header = '/Company (.+?) Calendar/';
preg_match($r_header,$data,$header);
echo $header[1];
Je suis en train d'essayer de comprendre pourquoi cela ne fonctionne pas. Toute aide serait géniale. Merci.