不工作的explode()函数

时间:2015-07-09 11:46:52

标签: php

我从其他网站抓取一些信息使用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);


?>

1 个答案:

答案 0 :(得分:0)

您的代码运行正常。问题是,有多个空格和类似字符(tab,newline,..)。由于explode查找字面值,因此您需要检查每一个字符。

为了更轻松地完成这项工作,只需使用preg_split()就好了

preg_split('/\s+/', $str)