可能重复:
抓取A元素的href属性
我正在尝试从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>
Run Code Online (Sandbox Code Playgroud)
到目前为止我创建的内容,我可以提取一些文件夹,但没有正确提取.
这就是我所做的......
<?php
$url = "URL";
$page_data = file_get_contents($url);
$search_pattern = "<li><a href=";
$position = 0;
while($position = strpos($page_data,$search_pattern, $position+strlen($search_pattern)))
{
//$pos2 = strpos($page_data, "\"> ", $position);
//echo $position . " - " . $pos2 . " = " . ($pos2-$position) . "<br />";
$str = substr($page_data,$position+strlen($search_pattern)+1, $pos2-$position);
echo "<pre>" . $position . " || " . $str . "\n</pre>";
}
?>
Run Code Online (Sandbox Code Playgroud)
每个文件夹都包含一些我将copy()使用Windows 复制的文件,所以我没有wget.
我在这做错了什么?
这是我的输出:
156 || /"> Parent Directory
.ftpquota
Folder 1/
Folder 2/
Folder N/
Run Code Online (Sandbox Code Playgroud)
但我真正需要的是:
Folder 1
Folder 2
Folder N
Run Code Online (Sandbox Code Playgroud)
之后的原因,我将遍历文件夹并复制文件.
$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";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |