2009-09-30 5 views
0

Hay les gars j'ai besoin d'aide sur une regex. J'utilise file_get_contents() pour obtenir la source d'une page, je veux ensuite parcourir la source et trouver toutes les valeurs de HREF dans un tableau.php regex pour l'URL de lien

Merci

Répondre

1

Vous devriez mieux utiliser un vrai analyseur comme SimpleXML ou DOMDocument que des expressions régulières. Voici un exemple avec DOMDocument qui vous donnera un tableau de A éléments:

$doc = new DOMDocument(); 
$doc->loadHTML($str); 
$aElements = $doc->getElementsByTagName("a"); 
foreach ($aElements as $aElement) { 
    if ($aElement->hasAttribute("href")) { 
     // link; use $aElement->getAttribute("href") to retrieve the value 
    } else { 
     // not a link 
    } 
} 
+0

Dois-je supposer que $ str est la valeur retournée par file_get_contents()? – dotty

+0

@dotty: Oui, '$ str' est la chaîne avec le code source HTML. – Gumbo

+0

Eh bien j'ai utilisé votre code, mais à travers une charge d'erreurs sur les tags non formatés et autres. J'ai donc creusé et trouvé une regex preg_match_all ("/ href = \" (. *?) \ "/", $ Html, $ aElements); Comment l'utiliser pour trouver uniquement des sources http? – dotty