在HTML代码中提取两个字符串 - php

我有一个具有以下结构的HTML表:

<tr>
    <td class='tablesortcolumn'>atest</td>
    <td >Kunde</td>
    <td ><a href="">[email protected]</a></td>
    <td align="right"><a href="module/dns_reseller/user_edit.php?ns=3&uid=6952"><img src="images/iconedit.gif" border="0"/></a> <img src="images/pixel.gif" width="2" height="1" border="0"/> <a href="module/dns_reseller/user.php?delete=true&uid=6952" onclick="return confirm('Möchten Sie den Datensatz wirklich löschen?');"><img src="images/icontrash.gif" border="0"/></a></td>
</tr>

这些tr块有数百个。

我想提取atest[email protected]

我尝试了以下方法:

$document = new DOMDocument();
$document->loadHTML($data);
$selector = new DOMXPath($document);
$elements = $selector->query("//*[contains(@class, 'tablesortcolumn')]");

foreach($elements as $element) {
  $text = $element->nodeValue;
  print($text);
  print('<br>');
}

提取atest没问题,因为我可以使用tablesortcolumn类获取元素。我如何获得电子邮件地址?

我不能简单地使用//table/tr/td/a,因为网站上还有其他结构类似的元素。因此,我需要选择一个空的href标签来获取它。我已经尝试过//table/tr/td/a[contains(@href, '')],但是它返回与//table/tr/td/a相同的结果

有谁知道如何解决这个问题?

参考方案

您可以尝试运行包含字符串@的xpath吗?这似乎不太可能用于其他任何用途。

所以这样的事情可能会起作用

//*[text()[contains(.,'@')]]

PHP-复选框组 - php

我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

当使用jquery的id做某事时,id可以来自任何一种标记吗? - php

我是JQuery的新手,我正尝试使用PHP,HTML和JQuery编写代码。我想用具有ID的标签替换HTML中的所有<?php echo $var; ?>。例如,我想使用<div id="name"></div>之类的东西,然后使用$("#name")将其显示在该div字段中。我的问…

PHP中奇怪的sprintf行为 - php

我试图做sprintf("<%s>", "Sat");,但是什么也没出现。当您删除小于符号时,它将再次开始工作。任何人都经历过这种行为以及是否会发生这种情况?因为我认为这是一个错误。您甚至可以在这里使用printf .....获得相同的结果。http://writecodeonline.com/php/ 参…

jQuery不起作用 - php

我正在使用带有ajax的jquery。有时,给出错误$未定义。这是我的代码:<script language="javascript" type="text/javascript"> var base_path="<? echo $this->baseUrl().'/…