使用simple_html_dom_parser,我试图从锚标记href属性中提取teamId编号,使用正则表达式检查表格单元格是否有锚标记。
$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;
}
当我运行脚本时,我得到一个空的常规出现错误。我已经使用RegEx检查程序来确保我使用正确的标识符从href url获取teamId。我不知道我是否错误地使用DOM解析器来选择href值或者它是否是逻辑错误。
这是锚标记中href的值: / ffl第/会所leagueId = 347987&安培; teamId = 15&安培; seasonId = 2015
我想将匹配的teamId与表中的其他td(或$ cells)一起放入$ flight数组
答案 0 :(得分:0)
你应该改变这个......
if ($cell->find('a')){
foreach ($cell as $anchor)
到此......
foreach ($cell->find('a') as $anchor){
目前您只是将$cell
转换为$anchor
,因此您在href
元素而不是td
上寻找a
。< / p>