首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP解析一个非常简单的表

如何使用PHP解析一个非常简单的表
EN

Stack Overflow用户
提问于 2010-12-19 11:05:15
回答 2查看 203关注 0票数 0

你好,亲爱的社区!

我需要构建一个函数来解析一个非常简单的表的内容(带有一些标签和值),请参阅下面的url。我使用了各种方法来解析html源代码。但这个有点棘手!看到我想解析的目标-它有一些入侵标记:

目标:http://www.schulministerium.nrw.de/BP/SchuleSuchen?action=644.0013008534253&SchulAdresseMapDO=194190

嗯,我试过这个

代码语言:javascript
复制
<?php
require_once('config.php'); // call config.php for db connection
$filename = "url.txt"; // Include the txt file which have urls
$each_line = file($filename);
foreach($each_line as $line_num => $line)
{
    $line = trim($line);
    $content = file_get_contents($line);
    //echo ($content)."<br>";
    $pattern = '/<td>(.*?)<\/td>/si';
    preg_match_all($pattern,$content,$matches);

    foreach ($matches[1] as $match) {
        $match = strip_tags($match);
        $match = trim($match);
        //var_dump($match);
        $sql = mysqli_query("insert into tablename(contents) values ('$match')");
        //echo $match;
    }
}
?>

好的-参见第7-11行中的正则表达式:它不匹配!

Conclusio:,我必须重新工作解析器--这个脚本的一部分。我需要以不同的方式解析--因为parsercode与目标不完全匹配。它的目的是拿回表格的结果。

有人能帮我找到一个更好的正则表达式或者更好的解析这个网站的方法吗.任何和所有的帮助都会得到极大的帮助。

视为零

EN

回答 2

Stack Overflow用户

发布于 2010-12-19 11:20:12

您可以使用使用preg_split('/<td width="73%">&nbsp;/', $str, -1);拆开表(注意:我没有麻烦转义字符)

你会想要删除第一个条目。之后,您可以使用stripos和substr来删除所有的内容。

这是一个基本的设置!你将不得不微调它相当多,但我希望这给你一个想法,什么将是我的方法。

票数 0
EN

Stack Overflow用户

发布于 2010-12-19 12:33:32

Regex并不总是提供完美的结果。使用任何HTML解析器都是个好主意。如戈登的回答中所描述的,有许多HTML解析器。

我以前用过简单HTML DOM解析器,它对我很管用。

例如,

代码语言:javascript
复制
// Create DOM from URL or file
$html = file_get_html('http://www.example.com/');

// Find all <td> in <table> which class=hello 
$es = $html->find('table.hello td');

// Find all td tags with attribite align=center in table tags 
$es = $html->find('table td[align=center]');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4482635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档