【问题标题】:Explode from html tags in php从php中的html标签展开
【发布时间】:2013-10-24 08:58:39
【问题描述】:
我想从下面的字符串中获取订单号。
$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
最主要的是所有的值都是动态的:(
【问题讨论】:
标签:
php
joomla2.5
explode
virtuemart
【解决方案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;
【解决方案2】:
几乎不可能做到,PHP 不知道订单号从哪里开始。试试 jQuery,输入 class="order_nr" 就可以轻松访问了。
在 PHP 中唯一的可能是使用 strip_tags($str) 然后看看如何从剩余的字符串中获取 order nr。