繁体   English   中英

如何从MySQL表中提取多个HTML标记

[英]How can I extract multiple HTML tags from a MySQL table

我在基于MySQL的CMS中有一个表,其中一个字段包含在CMS网页中显示的文章文本。

一些文章包含以HTML'img'标签形式嵌入文本的图像。 该字段中的文本中可能有一个或几个图像。

我想做的是创建一个查询,该查询将提取所有文章中所有图像的列表。 我设法创建了一些代码,如下所示:

SELECT nid, 
substr(body,locate('<img', body),(locate('>',body,locate('<img', body)) - locate('<img', body))) as image,
body FROM `node_revisions` where body like '%<img%'

而且这似乎行得通,但是当然它只提取第一个图像,而我真的很想提取所有图像(实际上,这通常意味着要使用循环,但在MySQL中似乎不可能)。

仅供参考,有问题的CMS为Drupal 6,因此为字段和表的名称。 但是,这实际上是关于MySQL而不是Drupal的问题,这就是为什么我在这里没有在Drupal Stackexchange网站上问这个问题。

您将疯狂地尝试使用locate(),substring()或正则表达式来解析HTML或XML。 参见https://blog.codinghorror.com/parsing-html-the-cthulhu-way/

我建议您使用PHP的DOMDocument类:

<?php

$bodyHtml = "now is the time for all <img src='good.jpg'> men to come to the <img src='aid.jpg'> of their country";

$dom = new DOMDocument();
$dom->loadHTML($bodyHtml);
$imgs = $dom->getElementsByTagName("img");
foreach ($imgs as $img) {
        print "$img->nodeName\n";
        foreach ($img->attributes as $attr) {
                print "  $attr->name=$attr->value\n";
        }
}

输出:

img
  src=good.jpg
img
  src=aid.jpg

使用regex解析html绝不会100%,您永远不会感到自己拥有每张图片并正确设置格式,

您遇到的另一个问题是您在问题中暗示的一个问题。 您在node_revisions中有一条记录,其中可能包含1张,2张或10,000张图像。 在SQL中,您无法在查询结果中将每个图像作为新行返回,因此您必须将每个图像作为新列返回。

这意味着您实际上需要手动指定每个列:

SELECT code_to_return_img_1 as url1
      ,code_to_return_img_2 as url2
      ,code_to_return_img_3 as url3
      ,code_to_return_img_4 as url4
      ,code_to_return_img_5 as url5
      ,code_to_return_img_6 as url6
      ....
      and so on

如果您知道每篇文章只有少于20张图片,并且没有php / java / python可供使用,而这只是您需要的一项hacker工作,那么您可以使用regex和SQL来完成,您30分钟的工作可能会变成2天的工作和破裂的脉搏。

如果可以选择使用Java: https//jsoup.org/

如果可以选择使用Python: https//docs.python.org/2/library/htmlparser.html

如果可以选择使用PHP: http : //htmlparsing.com/php.html

$dom = new DOMDocument;
$dom->loadHTML($html);
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
    $imgurl = $image->getAttribute('src');
}

使用多个<a>标签后代</a>抓取 HTML 页面<div id="text_translate"><p>我在数据库字段中有这个 html 源代码。 我想分析这段代码,特别是一些表格的字段,并将它们打印在屏幕上。 这是关于表的代码:</p><pre> &lt;table cellspacing="1" cellpadding="1" class="troop_details inReturn" &gt; &lt;thead&gt; &lt;tr&gt; &lt;td class="role"&gt; &lt;a href="/karte.php?d=91628"&gt;01] #WorkInProgress&lt;/a&gt; &lt;/td&gt; &lt;td colspan="11" class="troopHeadline"&gt; &lt;a href="/karte.php?d=91611"&gt;Return from 01-soldier&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody class="units"&gt; &lt;tr&gt; &lt;th class="coords"&gt; &amp;#x202d;&lt;span class="coordinates coordinatesWrapper coordinatesAligned coordinatesltr"&gt;&lt;span class="coordinateX"&gt;(&amp;#x202d;&amp;minus;&amp;#x202d;1&amp;#x202c;&amp;#x202c;&lt;/span&gt;&lt;span class="coordinatePipe"&gt;|&lt;/span&gt;&lt;span class="coordinateY"&gt;&amp;#x202d;&amp;minus;&amp;#x202d;28&amp;#x202c;&amp;#x202c;)&lt;/span&gt;&lt;/span&gt;&amp;#x202c; &lt;/th&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u21" title="Phalanx: 1:12:51" alt="Phalanx" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u22" title="Swordsman: 1:25:00" alt="Swordsman" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u23" title="Pathfinder: 0:30:00" alt="Pathfinder" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u24" title="Theutates Thunder: 0:26:51" alt="Theutates Thunder" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u25" title="Druidrider: 0:31:53" alt="Druidrider" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u26" title="Haeduan: 0:39:14" alt="Haeduan" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u27" title="Ram: 2:07:30" alt="Ram" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u28" title="Trebuchet: 2:50:00" alt="Trebuchet" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u29" title="Chieftain: 1:42:00" alt="Chieftain" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u30" title="Settler: 1:42:00" alt="Settler" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon last"&gt; &lt;img class="unit uhero" title="Hero" alt="Hero" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="units last"&gt; &lt;tr&gt; &lt;th&gt;Troops&lt;/th&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit"&gt; 500 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none last"&gt; 0 &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="infos"&gt; &lt;tr&gt; &lt;th&gt;Bounty&lt;/th&gt; &lt;td colspan="11"&gt; &lt;div class="res"&gt; &lt;div class="inlineIconList resourceWrapper"&gt;&lt;div class="inlineIcon resources" title="Lumber"&gt;&lt;i class="r1"&gt;&lt;/i&gt;&lt;span class="value "&gt;6758&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Clay"&gt;&lt;i class="r2"&gt;&lt;/i&gt;&lt;span class="value "&gt;8093&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Iron"&gt;&lt;i class="r3"&gt;&lt;/i&gt;&lt;span class="value "&gt;6908&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Crop"&gt;&lt;i class="r4"&gt;&lt;/i&gt;&lt;span class="value "&gt;15741&lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;div class="carry"&gt; &lt;img class="carry full" title="carry" alt="carry" src="/img/x.gif"/&gt; &amp;#x202d;&amp;#x202d;37500&amp;#x202c;&amp;nbsp;/&amp;nbsp;&amp;#x202d;37500&amp;#x202c;&amp;#x202c; &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="infos"&gt; &lt;tr&gt; &lt;th&gt;Arrival&lt;/th&gt; &lt;td colspan="11"&gt; &lt;div class="in"&gt;in&amp;nbsp;&lt;span class="timer" counting="down" value="85"&gt;0:01:25&lt;/span&gt;&amp;nbsp;hrs.&lt;/div&gt; &lt;div class="at"&gt;&lt;span&gt;at&amp;nbsp;00:43:10&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;a name="at"&gt;&lt;/a&gt; &lt;table cellspacing="1" cellpadding="1" class="troop_details inReturn" &gt; &lt;thead&gt; &lt;tr&gt; &lt;td class="role"&gt; &lt;a href="/karte.php?d=91628"&gt;01] #WorkInProgress&lt;/a&gt; &lt;/td&gt; &lt;td colspan="11" class="troopHeadline"&gt; &lt;a href="/karte.php?d=94829"&gt;Return from 0-New Hulk&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody class="units"&gt; &lt;tr&gt; &lt;th class="coords"&gt; &amp;#x202d;&lt;span class="coordinates coordinatesWrapper coordinatesAligned coordinatesltr"&gt;&lt;span class="coordinateX"&gt;(&amp;#x202d;&amp;minus;&amp;#x202d;1&amp;#x202c;&amp;#x202c;&lt;/span&gt;&lt;span class="coordinatePipe"&gt;|&lt;/span&gt;&lt;span class="coordinateY"&gt;&amp;#x202d;&amp;minus;&amp;#x202d;28&amp;#x202c;&amp;#x202c;)&lt;/span&gt;&lt;/span&gt;&amp;#x202c; &lt;/th&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u21" title="Phalanx: 0:45:33" alt="Phalanx" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u22" title="Swordsman: 0:53:09" alt="Swordsman" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u23" title="Pathfinder: 0:18:46" alt="Pathfinder" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u24" title="Theutates Thunder: 0:16:47" alt="Theutates Thunder" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u25" title="Druidrider: 0:19:56" alt="Druidrider" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u26" title="Haeduan: 0:24:32" alt="Haeduan" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u27" title="Ram: 1:19:44" alt="Ram" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u28" title="Trebuchet: 1:46:18" alt="Trebuchet" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u29" title="Chieftain: 1:03:47" alt="Chieftain" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u30" title="Settler: 1:03:47" alt="Settler" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon last"&gt; &lt;img class="unit uhero" title="Hero" alt="Hero" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="units last"&gt; &lt;tr&gt; &lt;th&gt;Troops&lt;/th&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit"&gt; 400 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none last"&gt; 0 &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="infos"&gt; &lt;tr&gt; &lt;th&gt;Bounty&lt;/th&gt; &lt;td colspan="11"&gt; &lt;div class="res"&gt; &lt;div class="inlineIconList resourceWrapper"&gt;&lt;div class="inlineIcon resources" title="Lumber"&gt;&lt;i class="r1"&gt;&lt;/i&gt;&lt;span class="value "&gt;6130&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Clay"&gt;&lt;i class="r2"&gt;&lt;/i&gt;&lt;span class="value "&gt;5835&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Iron"&gt;&lt;i class="r3"&gt;&lt;/i&gt;&lt;span class="value "&gt;5638&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Crop"&gt;&lt;i class="r4"&gt;&lt;/i&gt;&lt;span class="value "&gt;12397&lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;div class="carry"&gt; &lt;img class="carry full" title="carry" alt="carry" src="/img/x.gif"/&gt; &amp;#x202d;&amp;#x202d;30000&amp;#x202c;&amp;nbsp;/&amp;nbsp;&amp;#x202d;30000&amp;#x202c;&amp;#x202c; &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="infos"&gt; &lt;tr&gt; &lt;th&gt;Arrival&lt;/th&gt; &lt;td colspan="11"&gt; &lt;div class="in"&gt;in&amp;nbsp;&lt;span class="timer" counting="down" value="920"&gt;0:15:20&lt;/span&gt;&amp;nbsp;hrs.&lt;/div&gt; &lt;div class="at"&gt;&lt;span&gt;at&amp;nbsp;00:57:05&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;</pre><p> 我感兴趣的数据如下:</p><ol><li> 从 01-士兵<strong>归来 00:43:10</strong></li><li> 从 0-新绿巨人<strong>归来 00:57:05</strong></li></ol><p> 感谢您的建议,这是我目前的代码:</p><pre> &lt;?php include 'database.php'?&gt; &lt;?php session_start(); ?&gt; &lt;?php include_once('simple_html_dom.php'); $caserma = $_SESSION["caserma"]; $dom = new DOMDocument; libxml_use_internal_errors(true); $dom-&gt;loadHTML($_SESSION["caserma"], LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $xpath = new DOMXPath($dom); $texts = []; foreach ($xpath-&gt;query("//table[contains(@class, 'troop_details') and contains(@class, 'inReturn')]//td[@class='troopHeadline']//a[@href]/text()") as $textNode) { $texts[] = $textNode-&gt;nodeValue; } var_export($texts); ?&gt;</pre><p> 但是作为 output 它给了我数组()</p></div>标签并从特定的文本中提取文本<table> </table>

[英]Scrape HTML page with multiple <table> tags and extract text from specific <a> tag descendants

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我可以从mysql表中提取html而不是纯文本吗? 如何从使用php echo显示的html表中的mysql中插入多行 我如何使用php从字符串中提取所有html标签和内容 如何将网页中的所有HTML标签提取到数组中? 我如何合并从MySQL获取的HTML表的行 使用多个<a>标签后代</a>抓取 HTML 页面<div id="text_translate"><p>我在数据库字段中有这个 html 源代码。 我想分析这段代码,特别是一些表格的字段,并将它们打印在屏幕上。 这是关于表的代码:</p><pre> &lt;table cellspacing="1" cellpadding="1" class="troop_details inReturn" &gt; &lt;thead&gt; &lt;tr&gt; &lt;td class="role"&gt; &lt;a href="/karte.php?d=91628"&gt;01] #WorkInProgress&lt;/a&gt; &lt;/td&gt; &lt;td colspan="11" class="troopHeadline"&gt; &lt;a href="/karte.php?d=91611"&gt;Return from 01-soldier&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody class="units"&gt; &lt;tr&gt; &lt;th class="coords"&gt; &amp;#x202d;&lt;span class="coordinates coordinatesWrapper coordinatesAligned coordinatesltr"&gt;&lt;span class="coordinateX"&gt;(&amp;#x202d;&amp;minus;&amp;#x202d;1&amp;#x202c;&amp;#x202c;&lt;/span&gt;&lt;span class="coordinatePipe"&gt;|&lt;/span&gt;&lt;span class="coordinateY"&gt;&amp;#x202d;&amp;minus;&amp;#x202d;28&amp;#x202c;&amp;#x202c;)&lt;/span&gt;&lt;/span&gt;&amp;#x202c; &lt;/th&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u21" title="Phalanx: 1:12:51" alt="Phalanx" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u22" title="Swordsman: 1:25:00" alt="Swordsman" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u23" title="Pathfinder: 0:30:00" alt="Pathfinder" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u24" title="Theutates Thunder: 0:26:51" alt="Theutates Thunder" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u25" title="Druidrider: 0:31:53" alt="Druidrider" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u26" title="Haeduan: 0:39:14" alt="Haeduan" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u27" title="Ram: 2:07:30" alt="Ram" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u28" title="Trebuchet: 2:50:00" alt="Trebuchet" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u29" title="Chieftain: 1:42:00" alt="Chieftain" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u30" title="Settler: 1:42:00" alt="Settler" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon last"&gt; &lt;img class="unit uhero" title="Hero" alt="Hero" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="units last"&gt; &lt;tr&gt; &lt;th&gt;Troops&lt;/th&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit"&gt; 500 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none last"&gt; 0 &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="infos"&gt; &lt;tr&gt; &lt;th&gt;Bounty&lt;/th&gt; &lt;td colspan="11"&gt; &lt;div class="res"&gt; &lt;div class="inlineIconList resourceWrapper"&gt;&lt;div class="inlineIcon resources" title="Lumber"&gt;&lt;i class="r1"&gt;&lt;/i&gt;&lt;span class="value "&gt;6758&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Clay"&gt;&lt;i class="r2"&gt;&lt;/i&gt;&lt;span class="value "&gt;8093&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Iron"&gt;&lt;i class="r3"&gt;&lt;/i&gt;&lt;span class="value "&gt;6908&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Crop"&gt;&lt;i class="r4"&gt;&lt;/i&gt;&lt;span class="value "&gt;15741&lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;div class="carry"&gt; &lt;img class="carry full" title="carry" alt="carry" src="/img/x.gif"/&gt; &amp;#x202d;&amp;#x202d;37500&amp;#x202c;&amp;nbsp;/&amp;nbsp;&amp;#x202d;37500&amp;#x202c;&amp;#x202c; &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="infos"&gt; &lt;tr&gt; &lt;th&gt;Arrival&lt;/th&gt; &lt;td colspan="11"&gt; &lt;div class="in"&gt;in&amp;nbsp;&lt;span class="timer" counting="down" value="85"&gt;0:01:25&lt;/span&gt;&amp;nbsp;hrs.&lt;/div&gt; &lt;div class="at"&gt;&lt;span&gt;at&amp;nbsp;00:43:10&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;a name="at"&gt;&lt;/a&gt; &lt;table cellspacing="1" cellpadding="1" class="troop_details inReturn" &gt; &lt;thead&gt; &lt;tr&gt; &lt;td class="role"&gt; &lt;a href="/karte.php?d=91628"&gt;01] #WorkInProgress&lt;/a&gt; &lt;/td&gt; &lt;td colspan="11" class="troopHeadline"&gt; &lt;a href="/karte.php?d=94829"&gt;Return from 0-New Hulk&lt;/a&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody class="units"&gt; &lt;tr&gt; &lt;th class="coords"&gt; &amp;#x202d;&lt;span class="coordinates coordinatesWrapper coordinatesAligned coordinatesltr"&gt;&lt;span class="coordinateX"&gt;(&amp;#x202d;&amp;minus;&amp;#x202d;1&amp;#x202c;&amp;#x202c;&lt;/span&gt;&lt;span class="coordinatePipe"&gt;|&lt;/span&gt;&lt;span class="coordinateY"&gt;&amp;#x202d;&amp;minus;&amp;#x202d;28&amp;#x202c;&amp;#x202c;)&lt;/span&gt;&lt;/span&gt;&amp;#x202c; &lt;/th&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u21" title="Phalanx: 0:45:33" alt="Phalanx" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u22" title="Swordsman: 0:53:09" alt="Swordsman" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u23" title="Pathfinder: 0:18:46" alt="Pathfinder" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u24" title="Theutates Thunder: 0:16:47" alt="Theutates Thunder" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u25" title="Druidrider: 0:19:56" alt="Druidrider" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u26" title="Haeduan: 0:24:32" alt="Haeduan" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u27" title="Ram: 1:19:44" alt="Ram" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u28" title="Trebuchet: 1:46:18" alt="Trebuchet" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u29" title="Chieftain: 1:03:47" alt="Chieftain" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon"&gt; &lt;img class="unit u30" title="Settler: 1:03:47" alt="Settler" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;td class="uniticon last"&gt; &lt;img class="unit uhero" title="Hero" alt="Hero" src="/img/x.gif" /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="units last"&gt; &lt;tr&gt; &lt;th&gt;Troops&lt;/th&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit"&gt; 400 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none"&gt; 0 &lt;/td&gt; &lt;td class="unit none last"&gt; 0 &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="infos"&gt; &lt;tr&gt; &lt;th&gt;Bounty&lt;/th&gt; &lt;td colspan="11"&gt; &lt;div class="res"&gt; &lt;div class="inlineIconList resourceWrapper"&gt;&lt;div class="inlineIcon resources" title="Lumber"&gt;&lt;i class="r1"&gt;&lt;/i&gt;&lt;span class="value "&gt;6130&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Clay"&gt;&lt;i class="r2"&gt;&lt;/i&gt;&lt;span class="value "&gt;5835&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Iron"&gt;&lt;i class="r3"&gt;&lt;/i&gt;&lt;span class="value "&gt;5638&lt;/span&gt;&lt;/div&gt;&lt;div class="inlineIcon resources" title="Crop"&gt;&lt;i class="r4"&gt;&lt;/i&gt;&lt;span class="value "&gt;12397&lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt; &lt;div class="carry"&gt; &lt;img class="carry full" title="carry" alt="carry" src="/img/x.gif"/&gt; &amp;#x202d;&amp;#x202d;30000&amp;#x202c;&amp;nbsp;/&amp;nbsp;&amp;#x202d;30000&amp;#x202c;&amp;#x202c; &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;tbody class="infos"&gt; &lt;tr&gt; &lt;th&gt;Arrival&lt;/th&gt; &lt;td colspan="11"&gt; &lt;div class="in"&gt;in&amp;nbsp;&lt;span class="timer" counting="down" value="920"&gt;0:15:20&lt;/span&gt;&amp;nbsp;hrs.&lt;/div&gt; &lt;div class="at"&gt;&lt;span&gt;at&amp;nbsp;00:57:05&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;</pre><p> 我感兴趣的数据如下:</p><ol><li> 从 01-士兵<strong>归来 00:43:10</strong></li><li> 从 0-新绿巨人<strong>归来 00:57:05</strong></li></ol><p> 感谢您的建议,这是我目前的代码:</p><pre> &lt;?php include 'database.php'?&gt; &lt;?php session_start(); ?&gt; &lt;?php include_once('simple_html_dom.php'); $caserma = $_SESSION["caserma"]; $dom = new DOMDocument; libxml_use_internal_errors(true); $dom-&gt;loadHTML($_SESSION["caserma"], LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $xpath = new DOMXPath($dom); $texts = []; foreach ($xpath-&gt;query("//table[contains(@class, 'troop_details') and contains(@class, 'inReturn')]//td[@class='troopHeadline']//a[@href]/text()") as $textNode) { $texts[] = $textNode-&gt;nodeValue; } var_export($texts); ?&gt;</pre><p> 但是作为 output 它给了我数组()</p></div>标签并从特定的文本中提取文本<table> </table> 如何使用php正确显示来自mysql数据库的html标签? 使用1(插入)按钮,我可以从HTML表向MySQL数据库表插入多行数据吗? 我可以从mysql提取html段落而不是计算字符吗? 如何从多个网站中提取元标记?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM