首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP从html文件中提取特定标记之间的数据

PHP从html文件中提取特定标记之间的数据
EN

Stack Overflow用户
提问于 2018-07-30 06:41:36
回答 1查看 643关注 0票数 1

所以我有一个PHP脚本,它显示一个html页面。我需要做的是提取特定元素的innerHTML,下面我将显示我需要提取的确切内容

所以,我需要提取的是0.0225序列。下面是一个HTML文件的片段:

代码语言:javascript
复制
<tr>
    <td>Income</td>
    <td id="income">
        <font color="green">
            <span data-c="2250000">0.0225 RP</span>
        </font>
    </td>
</tr>

我试着用RegEx解析它(我知道不推荐这样做,但我试过了),什么也没得到。我为PHP尝试了不同的DOM实现,但结果是相同的。我不知道我还能做什么,所以我问我如何提取这些数字,以便进一步编辑,并将它们放回原处……

因此,以下是我的尝试:

尝试使用RegEx:

代码语言:javascript
复制
$html = file_get_contents('the link');    
$regex = '#<td id="income"><font color="green"><span data-c="[.*]">(.*?) BTC</span></font></td>#';
if (preg_match($regex, $html)){echo yay;};

尝试使用DOM:

代码语言:javascript
复制
$html = file_get_contents('the link');    
$dom = new DOMDocument();
$dom->load($html);
$element = $dom->getElemetById("income")->innerHTML;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-30 07:12:33

这是不值得深入为什么你的正则表达式不工作,国际海事组织(一般的正则表达式知识....不计入新行(除非使用了s修饰符),并且字符类中的.*允许这两个文字字符中的任何一个)。

对于domdocument,您需要深入到DOM树中才能获得值。为此,您可以使用xpath。

代码语言:javascript
复制
$html = '<tr>
    <td>Income</td>
    <td id="income">
        <font color="green">
            <span data-c="2250000">0.0225 RP</span>
        </font>
    </td>
</tr>';
$dom = new domdocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
echo $xpath->query('//tr/td[@id="income"]/font/span')[0]->nodeValue;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51585140

复制
相关文章

相似问题

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