使用PHP Simple HTML DOM Parser解析所有项目

时间:2018-05-26 08:25:52

标签: php html dom simple-html-dom

我试图用PHP中的Simple HTML DOM Parser解析DOM。解析的内容是电影,所以我希望得到所有类型,但是当我运行我的代码时,我只得到最后一种类型,而不是全部。我的代码如下所示:

DateTime.ParseExact

如您所见,我将内容作为数组获取。然后在里面我运行另一个foreach循环来获取所有类型的项目,但它只获得最后一个流派项目。我的代码出了什么问题?

3 个答案:

答案 0 :(得分:1)

您每次只是覆盖最后一组数据。您需要将其设置为空白,然后每次使用.=附加它,例如......

$item['genres'] = '';
foreach($data->find('a.movie-genre-item') as $genre) {
   $item['genres'] .= $genre->plaintext . ', ';
}

答案 1 :(得分:0)

代码正在保存相同的' $ genre->明文' in $ item with key'流派' 所以相同的键会替换每个循环的值。

 foreach($data->find('a.movie-genre-item') as $genre) {
            $item['genres'] = $genre->plaintext . ', ';
 }

May $ item [' genres]可以是一个关联数组..我的意思是:

foreach($data->find('a.movie-genre-item') as $genre) {
             if ( !isset($item[$genre]) ) {
                      $item[$genre] = array();
              }
          array_push($item[$genre],$genre->plaintext);
     }

答案 2 :(得分:0)

以下是您必须更新的类型代码

    // Here is you genre code 
    $movie_genre='';
    foreach($data->find('a.movie-genre-item') as $genre) {
        $movie_genre .= $genre->plaintext . ',';
    }

    // Here you can use rtrim for removing last comma from genre
    $item['genres'] = rtrim($movie_genre,',');