2010-02-25 6 views
2

Je suis en train de créer un moteur de balayage qui récupère les URL du film à partir d'une liste imdb. Je suis en mesure d'obtenir tous les liens sur la page dans un tableau et que vous souhaitez sélectionner uniquement ceux avec "titre" en eux.URL correspondant à l'aide de preg_match_all en PHP et regex

preg_match_all($pattern, "[125] => href=\"/chart/2000s?mode=popular\" [126] => href=\"/title/tt0111161/\" ", $matches); 

$pattern='/title/'.

Je reçois l'erreur suivante:

Warning: preg_match_all() [function.preg-match-all]: Delimiter must not be alphanumeric or backslash in C:\xampp\htdocs\phpProject1\index.php on line 53

Toute idée sur la façon d'aller à ce sujet? Merci beaucoup.

Répondre

1

Utilisez un DOM Parser:

// Create DOM from URL or file 
$html = file_get_html('http://www.example.com/'); 

// Find all links containing title as part of their HREF 
$links = $html->find('a[href*=title]'); 

// loop through links and do stuff 
foreach($links as $link) { 
     echo $element->href . '<br>'; 
} 

http://simplehtmldom.sourceforge.net/manual.htm

1

Êtes-vous sûr $pattern est '/title/' au moment où preg_match_all est appelé? L'erreur que vous obtenez vient quand le modèle fourni à preg_match_all (1er argument) n'est pas correctement délimité.