我想从下面的字符串中获取订单号。
$str = '<table class="adminlist">
<tbody><tr>
<td>Payment Name</td>
<td align="left"><span class="vmpayment_name">Aurthorize.net</span><span class="vmpayment_description">New payment gateway</span></td>
</tr>
<tr>
<td>Order number</td>
<td align="left">9b27041</td>
</tr>
<tr>
<td>Amount</td>
<td align="left">51.30 USD</td>
</tr>
<tr>
<td>Transaction ID</td>
<td align="left">2200484213</td>
</tr>
</tbody></table>';
我是如何在php中爆炸的。我试过但没有爆炸。我想要上面的字符串中的订单号,如
9b27041
主要的是所有价值观都是动态的:(
答案 0 :(得分:1)
我认为xpath是提取价值的好方法。为此,我假设订单号行的位置总是相同的。下面的代码对我有用。
<?php
$str = '<table class="adminlist">
<tbody><tr>
<td>Payment Name</td>
<td align="left"><span class="vmpayment_name">Aurthorize.net</span><span class="vmpayment_description">New payment gateway</span></td>
</tr>
<tr>
<td>Order number</td>
<td align="left">9b27041</td>
</tr>
<tr>
<td>Amount</td>
<td align="left">51.30 USD</td>
</tr>
<tr>
<td>Transaction ID</td>
<td align="left">2200484213</td>
</tr>
</tbody></table>';
$dom = new DOMDocument();
$dom->loadHTML($str);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//tr[2]/td[2]");
$node = $nodes->item(0);
echo $node->textContent;
答案 1 :(得分:0)
几乎不可能做到,PHP无法知道订单号的开始位置。尝试jQuery,给出class =“order_nr”,你可以轻松访问它。
只有PHP的可能性才是使用strip_tags($ str),然后看看如何从剩余的字符串中获取订单nr。
答案 2 :(得分:0)
你可以使用“PHP Simple HTML DOM解析器”这个问题的绝佳解决方案,你可以在这里阅读更多相关信息http://simplehtmldom.sourceforge.net/