2010-01-01 8 views
2

J'essaie de faire correspondre un modèle afin que je puisse récupérer une chaîne à partir d'un site Web. Voici la chaîne en question:Regex pour correspondre à des attributs html

<a title="Posts by ivek dhwWaVa" 
href="http://www.example.com/author/ivek/" 
rel="nofollow">ivek</a> 

Je suis en train de faire correspondre la chaîne « IVEK » entre la balise et je veux le faire pour chaque poste et raconterai au nombre de commentaires. Tout d'abord, quelle est la regex que je devrais utiliser ci-dessus afin que je puisse l'utiliser comme un exemple pour le reste. Je n'ai rien à ce jour:

$content = file_get_contents('http://www.example.com'); 
preg_match_all("", $content, $matches); 

Et comment je raconterais les commentaires au nom des auteurs comme il y a beaucoup d'autres auteurs sur le site ainsi que leur propre ensemble de commentaires. Est-ce que j'utilise des divs pour casser ça? Comme chaque ensemble d'informations est enroulé autour de cette div:

<div id="post-54" class="excerpt"> 

Merci à tous pour toute aide!

+1

On y va encore: regex + html ... Je sens un gros Schloooop venir. –

+0

Vous utilisez généralement un analyseur XML * (comme l'extension DOM) * pour travailler avec des fichiers HTML plutôt qu'avec des expressions régulières. – Atli

+0

'regex' + 'html' = drapeaux rouges, sirènes hurlantes, plaqueurs débogueurs ... –

Répondre

5

S'il vous plaît laissez-moi être le premier à vous présenter à la most famous answer on Stack Overflow.

Les expressions régulières ne sont pas adaptées à l'analyse HTML. Vous avez vraiment besoin d'un analyseur HTML, même pour ce qui peut sembler être une tâche simple.

Je recommande quelque chose comme PHP Simple HTML DOM Parser.

+1

Grr, j'essayais de trouver cet exemple: P – brianreavis

+0

Ha ha, je viens toujours google "codage horreur cthulu", et obtenir le lien de la poste de Jeff. – zombat

+0

Putain de Dieu! Merci beaucoup pour ça. Probablement devrait rechercher regex + html en premier! :) – Abs

Questions connexes