gpt4 book ai didi

php - HTML 表格到 php 数组

转载 作者:行者123 更新时间:2023-12-03 00:51:39 25 4
gpt4 key购买 nike

--------------编辑------------------------

所以我将采用 DOM 方法。这是我到目前为止所拥有的:

  <?php function getdata(){
$contents = file_get_contents('internatdata.htm');
//create a DOM based off of the string from the html table
$DOM = new DOMDocument;
$DOM->loadHTML($contents);

//get all tr and td
$items = $DOM->getElementsByTagName('tr');
$tds = $DOM->getElementsByTagName('td');

function tdrows($elements){
$str = "";
for ($ii =0; $ii < $elements->length; $ii++){
$str .= $elements->item($ii)->nodeValue . ",";


}
return $str;
}

for ($i = 0; $i < $items->length; $i++){


echo tdrows($tds) . "; <br />";

}

}
?>

我遇到的问题是我只想从每个表行中选择 td。我正在尝试通过嵌套循环来实现这一点。不幸的是,它会根据标签的数量打印页面上每个标签的文本多少次。我怎样才能得到它,这样它只打印每个 tr 的 td 而不是 dom 上的每个 td?

<小时/>

我需要使用 html 表作为数据源,因为我无权访问数据库。我想能够从 html 表中查询数据,我需要创建一个函数来将表转换为数组或多维数组。

我有我认为的基本想法,但我需要一些帮助来完成代码以返回基于 html 表的数组。

此外,如果除了将表转换为数组之外,您还有更好的方法来执行此操作,请告诉我

这是我到目前为止的想法:

 <?php
function getdata(){

$contents = file_get_contents('data.htm');
//add delimiters (semicolon for a row and comma for a cell) ???

$stripped = strip_tags($contents);

//explode into an array based off the delimiters above ???


}
?>

最佳答案

我已更新您的编辑以修复该问题。

function tdrows($elements)
{
$str = "";
foreach ($elements as $element) {
$str .= $element->nodeValue . ", ";
}

return $str;
}

function getdata()
{
$contents = "<table><tr><td>Row 1 Column 1</td><td>Row 1 Column 2</td></tr><tr><td>Row 2 Column 1</td><td>Row 2 Column 2</td></tr></table>";
$DOM = new DOMDocument;
$DOM->loadHTML($contents);

$items = $DOM->getElementsByTagName('tr');

foreach ($items as $node) {
echo tdrows($node->childNodes) . "<br />";
}
}

getdata();

关于php - HTML 表格到 php 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8449116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com