所以我有一个PHP脚本,它显示一个html页面。我需要做的是提取特定元素的innerHTML,下面我将显示我需要提取的确切内容
所以,我需要提取的是0.0225
序列。下面是一个HTML文件的片段:
<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:
$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:
$html = file_get_contents('the link');
$dom = new DOMDocument();
$dom->load($html);
$element = $dom->getElemetById("income")->innerHTML;
发布于 2018-07-30 07:12:33
这是不值得深入为什么你的正则表达式不工作,国际海事组织(一般的正则表达式知识....
不计入新行(除非使用了s
修饰符),并且字符类中的.*
允许这两个文字字符中的任何一个)。
对于domdocument,您需要深入到DOM树中才能获得值。为此,您可以使用xpath。
$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;
https://stackoverflow.com/questions/51585140
复制相似问题