2012-12-16 1 views
0

Possible en double:
How to extract img src, title and alt from html using php?Impossible d'identifier ce qui est erroné avec mon Regex

Je suis en train d'analyser une page Web et d'obtenir les images complètes. Par exemple,

<html> 

<body> 
<a href='1.jpg'><img src='tn1.jpg /></a> 
<a href='2.jpg'><img src='tn2.jpg /></a> 
<a href='3.jpg'><img src='tn3.jpg /></a> 
<a href='4.jpg'><img src='tn4.jpg /></a> 
</body> 
</html> 

Je suis en train de les capturer pour obtenir les vignettes complètes qui sont:

1.jpg 
2.jpg 
3.jpg 
4.jpg 

Mon code PHP Regex est:

$text = file_get_contents($website); //Get webpage 

preg_match_all("~$[0-9](.*?)\.jpg~i", $text, $matches); 

Mais quand je le lance, le Le tableau $ matches est vide mais les chemins sont là dans le webiste. Quel pourrait être le problème avec mon Regex?

INFO: Toutes les images suivent un modèle et sont un nombre suivi par .jpg

+1

Cela a été demandé plusieurs fois. Essayez http://stackoverflow.com/questions/138313/how-to-extract-img-src-title-and-alt-from-html-using-php ou http://stackoverflow.com/questions/2120779/regex -php-isolate-src-attribut-de-img-tag ou http://stackoverflow.com/questions/11406453/how-to-get-link-from-img-tag – Oldskool

Répondre

2

Je ne recommande pas l'utilisation de regex pour analyser html, mais si vous ne voulez pas le faire correctement, voici une expression rationnelle qui fait l'affaire: /(?<=['"])\d+\.jpg/i

Demo ici: http://regex101.com/r/xC8nP2

le problème avec votre regex est l'utilisation abusive de la $ -anchor.

+0

Désolé..peut-être que j'ai oublié d'écrire ça il y a d'autres .jpgs. Votre Regex correspondra également à un autre qui ressemblera à ceci: '

+0

J'ai révisé ma réponse. –

+0

Avec ces '', comment écrire dans preg_match_all? J'essaye ce 'preg_match_all ('/ (? <= ['"]) \ D + \. Jpg/i ', $ text, $ matches); ' et son crachent une erreur dans mon éditeur. –

Questions connexes