[英]Getting values from webpage using Simple HTML Dom library
我正在尝试从网页中的表中获取值,为此,我正在使用简单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
我想念的是什么? 有什么帮助吗?
UPDATE
根据建议,这是我的代码的样子:
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 = array();
foreach ($html->find('tr') as $e) {
$narr=array();
foreach($e->find('td') as $vp){
array_push($narr,$vp->plaintext);
}
$arr[]=array($narr);
}
代替 :
foreach ($html->find('tr') as $e) {
array_push($arr, $e->innertext);
}
并删除代码:
for ($i = 2; $i < count($arr); $i++) {
str_replace("", "-", $arr[$i]);
print_r($arr[$i]);
}
您将获得一个数组,其中键作为tr标记,其值作为tr的每个td 。
这是一个方法:
// includes Simple HTML DOM Parser
include "simple_html_dom.php";
$url = "http://www.lvbp.com/posicion.html";
//Create a DOM object
$html = new simple_html_dom();
// Load HTML from a string
$html->load_file($url);
// parse rows
foreach ($html->find('tr') as $i => $row) {
// Skip the second empty row
if ($i == 1)
continue;
// parse and print cells
foreach ($row->find('td') as $j => $col) {
echo $col->plaintext;
echo "|";
}
echo "<hr>";
}
// Clear DOM object (needed essentially when using many)
$html->clear();
unset($html);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.