HTML表到php数组

前端之家收集整理的这篇文章主要介绍了HTML表到php数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
– – – – – – – 编辑 – – – – – – – – – – – –

所以我正在使用DOM方法.这是我到目前为止

  1. <?PHP function getdata(){
  2. $contents = file_get_contents('internatdata.htm');
  3. //create a DOM based off of the string from the html table
  4. $DOM = new DOMDocument;
  5. $DOM->loadHTML($contents);
  6.  
  7. //get all tr and td
  8. $items = $DOM->getElementsByTagName('tr');
  9. $tds = $DOM->getElementsByTagName('td');
  10.  
  11. function tdrows($elements){
  12. $str = "";
  13. for ($ii =0; $ii < $elements->length; $ii++){
  14. $str .= $elements->item($ii)->nodeValue . ",";
  15.  
  16.  
  17. }
  18. return $str;
  19. }
  20.  
  21. for ($i = 0; $i < $items->length; $i++){
  22.  
  23.  
  24. echo tdrows($tds) . "; <br />";
  25.  
  26. }
  27.  
  28. }
  29. ?>

我遇到的问题是我只想从每个表行中选择td.我试图用嵌套循环来实现这一点.不幸的是,正在打印页面上每个标签的文本多少次,因为有标签.我怎么能得到它,所以它只打印每个tr的td,而不是每个td在dom?

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

我有基本的想法,但我需要一些帮助,完成代码返回一个基于html表的数组.

另外如果你有一个更好的方式做这个,而不是将表转换为数组,那么请让我知道

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

  1. <?PHP
  2. function getdata(){
  3.  
  4. $contents = file_get_contents('data.htm');
  5. //add delimiters (semicolon for a row and comma for a cell) ???
  6.  
  7. $stripped = strip_tags($contents);
  8.  
  9. //explode into an array based off the delimiters above ???
  10.  
  11.  
  12. }
  13. ?>

解决方法

我已更新您的编辑以修复它.

有关演示,请参阅http://codepad.viper-7.com/Vu5WdK

  1. function tdrows($elements)
  2. {
  3. $str = "";
  4. foreach ($elements as $element) {
  5. $str .= $element->nodeValue . ",";
  6. }
  7.  
  8. return $str;
  9. }
  10.  
  11. function getdata()
  12. {
  13. $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>";
  14. $DOM = new DOMDocument;
  15. $DOM->loadHTML($contents);
  16.  
  17. $items = $DOM->getElementsByTagName('tr');
  18.  
  19. foreach ($items as $node) {
  20. echo tdrows($node->childNodes) . "<br />";
  21. }
  22. }
  23.  
  24. getdata();

猜你在找的HTML相关文章