【发布时间】:2013-10-24 00:53:58
【问题描述】:
我正在尝试从网页中的表格中获取值,为此我正在使用简单的 HTML Dom 库。这就是我的代码的样子:
include('simple_html_dom.php');
$html = file_get_html('http://www.lvbp.com/posicion.html');
$arr = array();
foreach ($html->find('tr') as $e) {
array_push($arr, $e->innertext);
}
echo '<pre>';
print_r($arr);
echo '</pre>';
for ($i = 2; $i < count($arr); $i++) {
str_replace("", "-", $arr[$i]);
print_r($arr[$i]);
}
当print_r($arr):
Array
(
[0] => EQUIPOS J G P Vent
[1] =>
[2] => Navegantes 11 8 3 0
[3] => Tigres 11 8 3 0
[4] => Caribes 11 6 5 2
[5] => Leones 11 6 5 2
[6] => Aguilas 11 5 6 3
[7] => Tiburones 10 4 6 3.5
[8] => Cardenales 10 3 7 4.5
[9] => Bravos 11 3 8 5
)
但是从这里我需要分别表示“Navegantes”、“11”、“8”等等......对于每个数组位置。为此我的最后一个代码:
for ($i = 2; $i < count($arr); $i++) {
str_replace("", "-", $arr[$i]);
print_r($arr[$i]);
}
但它不起作用,因为我得到了这个结果:
Navegantes 11 8 3 0 Tigres 11 8 3 0 Caribes 11 6 5 2 Leones 11 6 5 2 Aguilas 11 5 6 3 Tiburones 10 4 6 3.5 Cardenales 10 3 7 4.5 Bravos 11 3 8 5
我错过了什么?有什么帮助吗?
更新
根据建议,我的代码如下所示:
include('simple_html_dom.php');
$html = file_get_html('http://www.lvbp.com/posicion.html');
$arr = array();
foreach ($html->find('tr') as $e) {
$narr = array();
foreach ($e->find('td') as $vp) {
array_push($narr, $vp->plaintext);
}
$arr[] = array($narr);
}
【问题讨论】:
-
使用 $arr[$i]=str_replace("", "-", $arr[$i]);而不是 str_replace("", "-", $arr[$i]);
-
@Subin 更改但得到相同的结果,单词之间没有破折号 (-)
-
您是否尝试将 tr 中的每个 td 值作为数组获取?
-
@Subin,是的,这正是我想要做的
标签: php php-5.3 simple-html-dom