Mit dem simple_html_dom_parser, ich versuche, die TeamId-Nummer aus dem Anchor Tags href -Attribut zu extrahieren, mit regulären Ausdruck, um zu überprüfen, ob die Zelle der Tabelle ein Anchor-Tag hat.Wie preg_match_all zu überprüfen href für einen Wert
$rowData= array();
foreach($table->find('tr') as $row){
$flight = array();
foreach ($row->find('td') as $cell){
if ($cell->find('a')){
foreach ($cell as $anchor)
$anchor = $cell->getAttribute('href');
$pattern = '/^.*?teamId=(\d+).*$/';
// write the pregmatch
preg_match_all($anchor, $pattern, $team_id);
//put the team_id into the end flight array
$flight[]= $team_id;
}
$flight[]= $cell->plaintext;
}
//pushes each TR into the array
$rowData[] = $flight;
}
Wenn ich das Skript ausführen, bekomme ich einen leeren regulären Epressionsfehler. Ich habe RegEx-Checker verwendet, um sicherzustellen, dass ich die korrekten IDs verwende, um die TeamId von der href-URL zu erhalten. Ich kann nicht herausfinden, ob ich den DOM-Parser falsch benutze, um den href-Wert zu wählen, oder ob es ein logischer Fehler ist.
Dies ist der Wert des href im Anker-Tag: /ffl/Clubhaus Liga-= 347987 & Mannschafts-ID = 15 & seasonId = 2015
ich entlang den angepassten Mannschafts-ID in den $ Flug Array setzen will? mit dem anderen td (oder Zellen $) aus der Tabelle
Warum verwenden Sie Regex dafür? Warum greifen Sie nicht einfach auf die Zeichenfolge zu und teilen sie auf? 'explode ('=', explodieren ('&', explodieren ('?', $ urlstring) [1]) [1]) [1]' gibt das Ergebnis '15' aus dem obigen Beispiel. – junkfoodjunkie