2009-09-03 6 views
1

Je client de moi, ont 542 fichiers php (oui beaucoup) chacun d'entre eux appelle un iframe avec certains paramètres tous différents. Donc, je veux faire cela un peu plus efficent, et convertir tous les fichiers à une base de données, mais pour cela j'ai besoin d'obtenir 2 chosesComment obtenir les paramètres dans un lien dans un fichier php?

  1. La contiennent de la balise title
  2. Un paramètre de l'iframe (cat)

Je montre l'exemple iframe

<iframe src="http://www.todobariloche.com/shop/xml_galeria1.php?cat=1044&amp;cant=21&amp;ord=MAS_OFERTADOS&amp;pais=MLA" name="nombre_frame" width="500" height="1000" id="nombre_frame" border="0"> </iframe> 

J'espère que quelqu'un pourrait me aider j'ai juste besoin le match preg en PHP.

Merci d'avance.

Répondre

4

Si c'est un travail unique, alors vous pouvez probablement le pirater avec des expressions grep et régulières. Si vous voulez le faire correctement, alors vous aurez besoin de DOM et XPath.

$doc = DOMDocument::loadHTML($page); 
$xp = new DOMXPath($doc); 
$src = $xp->evaluate('string(//iframe/@src)'); 
$title = $xp->evaluate('string(//title)'); 
+0

Débarrasse les expressions régulières. – GZipp

+0

Salut: Merci, Son (un seul) travail ponctuel, mais je veux le faire correctement: D Je vais l'essayer et puis je suis revenu ici, pour vous dire mes résultats – bicho44

1

Quelque chose comme cela devrait faire le travail:

if (preg_match("/http:\/\/www\.todobariloche\.com\/shop\/xml_galeria1\.php\?cat=(.*?)&amp;cant=(.*?)&amp;ord=(.*?)&amp;pais=([^\"]*)/i", $pageData, $parameters)) { 
    // $parameters[1] and on now contains the matched patterns. 
} 

.*? indique que le modèle capture doit être ungreedy. ([^\"]*) est juste un moyen de l'empêcher de capturer quoi que ce soit après la fin de l'attribut src.

/<title>(.*?)</title>/i/<title>(.*?)</title>/i devrait fonctionner pour le titre, sauf si quelque chose d'étrange se passe là-bas.

+0

Je vais essayer aussi: D – bicho44

Questions connexes