Php 从HTML中提取文本
可能重复:Php 从HTML中提取文本,php,parsing,Php,Parsing,可能重复: 我试图从HTML页面中提取一些文件夹名称,HTML的源代码如下 <li><a href="/"> Parent Directory</a></li> <li><a href=".ftpquota"> .ftpquota</a></li> <li><a href="Folder%201/"> Folder 1/</a></li> <li
我试图从HTML页面中提取一些文件夹名称,HTML的源代码如下
<li><a href="/"> Parent Directory</a></li>
<li><a href=".ftpquota"> .ftpquota</a></li>
<li><a href="Folder%201/"> Folder 1/</a></li>
<li><a href="Floder%202/"> Folder 2/</a></li>
<li><a href="Folder%20N/"> Folder N/</a></li>
但我真正需要的是:
$string = '<li><a href="/"> Parent Directory</a></li>
<li><a href=".ftpquota"> .ftpquota</a></li>
<li><a href="Folder%201/"> Folder 1/</a></li>
<li><a href="Floder%202/"> Folder 2/</a></li>
<li><a href="Folder%20N/"> Folder N/</a></li>
<li><a href="file.bin"> file.bin</a></li>';
$html = new DOMDocument();
$html->loadHTML($string);
$xpath = new DOMXPath($html);
$filtered = $xpath->query("//a/@href");
foreach($filtered as $one){
if(strlen($one->nodeValue) > 1) {
echo urldecode($one->nodeValue)."\n";
}
}
因为稍后,我将循环浏览文件夹并复制文件。使用and forHTML
$string='
';
$html=新的DOMDocument();
$html->loadHTML($string);
$xpath=newdomxpath($html);
$filtered=$xpath->query(“//a/@href”);
foreach($过滤为$1){
如果(strlen($one->nodeValue)>1){
echo urldecode($one->nodeValue)。“\n”;
}
}
print\r(explode(“”,strip\u tags($string))
将为您提供标记之间所有数据的数组。。。其中,$string
等于输入的html。或者您可以使用$html->getElementsByTagName('a')代码>,对吗?也许他只想要页面的一部分,而不是全部,他可以使用DOMXPath
更轻松地搜索..这是真的,我没想到!回答得好!:)是的,我看到了$search\u pattern
,没有读其余的:)这段代码提供了我想要的一半,它只获取文件夹,我还需要文件。。正如我所说,文件夹中有一些文件,我稍后将检索它们。
156 || /"> Parent Directory
.ftpquota
Folder 1/
Folder 2/
Folder N/
Folder 1
Folder 2
Folder N
$string = '<li><a href="/"> Parent Directory</a></li>
<li><a href=".ftpquota"> .ftpquota</a></li>
<li><a href="Folder%201/"> Folder 1/</a></li>
<li><a href="Floder%202/"> Folder 2/</a></li>
<li><a href="Folder%20N/"> Folder N/</a></li>
<li><a href="file.bin"> file.bin</a></li>';
$html = new DOMDocument();
$html->loadHTML($string);
$xpath = new DOMXPath($html);
$filtered = $xpath->query("//a/@href");
foreach($filtered as $one){
if(strlen($one->nodeValue) > 1) {
echo urldecode($one->nodeValue)."\n";
}
}