1

我正在尝试解析 html 页面Google play并获取有关应用程序的一些信息。Simple-html-dom 工作完美,但如果页面包含没有空格的代码,它会完全忽略属性。例如,我有 html 代码:

<div class="doc-banner-icon"><img itemprop="image"src="https://lh5.ggpht.com/iRd4LyD13y5hdAkpGRSb0PWwFrfU8qfswGNY2wWYw9z9hcyYfhU9uVbmhJ1uqU7vbfw=w124"/></div>

如您所见,imageand之间没有任何空格src,因此 simple-html-dom 忽略src属性并仅返回<img itemprop="image">. 如果我添加空间,它会完美运行。要获取此属性,我使用以下代码:

foreach($html->find('div.doc-banner-icon') as $e){          
        foreach($e->find('img') as $i){
            $bannerIcon = $i->src;              
        }
}

我的问题是如何更改这个美丽的图书馆以获得完整的内部文本div

4

1 回答 1

1

我只是创建了向内容添加必要空间的函数:

function placeNeccessarySpaces($contents){
$quotes = 0; $flag=false;
$newContents = '';
for($i=0; $i<strlen($contents); $i++){
    $newContents.=$contents[$i];
    if($contents[$i]=='"') $quotes++; 
    if($quotes%2==0){
        if($contents[$i+1]!== ' ' && $flag==true) {             
            $newContents.=' ';
            $flag=false;
        }           
    }
    else $flag=true;        
}   
return $newContents;
}

然后在函数之后使用它file_get_contents。所以:

$contents = file_get_contents($url, $use_include_path, $context, $offset);
$contents = placeNeccessarySpaces($contents);

希望对其他人有所帮助。

于 2013-06-20T14:20:00.657 回答