我从其他网站抓取一些信息使用php,所以我使用DomDocument,DomXpath和某些类似php的功能,如explode();
我爬了一些桌子,有很多td数据。无论如何,我把它们拿到文本中,并根据“[空格]”进行划分。但有些数据分歧很好,但有些数据不能。
我仍然不知道为什么explode()函数不起作用。我该如何解决这个问题?
<?php
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$src = file_get_contents_curl("http://finance.naver.com/item/main.nhn?code=005930");
$dom = new DOMDocument();
@$dom->loadHTML(mb_convert_encoding($src, 'HTML-ENTITIES', 'euckr'));
$stacks = $dom->getElementsByTagName('table')->item(4)->textContent;
$arr = explode(" ",$stacks);
print_r($arr);
?>
答案 0 :(得分:0)
您的代码运行正常。问题是,有多个空格和类似字符(tab,newline,..)。由于explode
查找字面值,因此您需要检查每一个字符。
为了更轻松地完成这项工作,只需使用preg_split()
就好了
preg_split('/\s+/', $str)