我被困在某个地方。我想要你的帮助。我需要找到一个网站的导航页面并把它换成for循环。我已经完成了硬编码,但我需要它动态。 以下是示例:
<?php
for ($x = 1; $x <= 5; $x++) {
$olxcom = file_get_contents('http://olx.com.pk/cars/?page=' . $x . '');
$file1 = 'olx.txt';
file_put_contents($file1 , $olxcom, FILE_APPEND);
}
for ($y = 1; $y <= 5; $y++) {
$pakwheels = file_get_contents('http://www.pakwheels.com/used-cars/search/-/?page=' . $y . '');
$file2 = 'pakwheels.txt';
file_put_contents($file2 , $pakwheels, FILE_APPEND);
}
for ($z = 1; $z <= 5; $z++) {
$carmudi = file_get_contents('http://www.carmudi.pk/cars/?page=' . $z . '');
$file3 = 'carmudi.txt';
file_put_contents($file3 , $carmudi, FILE_APPEND);
}
?>
这些数字5是我硬编码的页码。我试图找到那些带有for循环或其他的东西。 感谢
答案 0 :(得分:1)
尝试:而不是传递给你的数组;
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $node)
{
echo $node->nodeValue.': '.$node->getAttribute("href")."\n";
}
使用多维数组(); http://php.net/manual/en/language.types.array.php
示例:
<?php
$my_array = array('x','y','z');
for ($row = 0; $row < 3; $row++) {
echo "<p> your stuff item ". $row."<p>";
for ($col = 0; $col <5; $col++) {
echo "the inner stuff";
}
}
?>
这可以解决你的问题......
答案 1 :(得分:0)
您需要下载并解析页面的html以查找页码。试试Simple HTML DOM Parser。
//random example of selecting from html content
$ret = $html->find('div.foo');
//OR
$ret = $html->find('div[class=foo]');
基本上你可以访问元素,比如你如何使用css选择器。找到网页的导航ID并解析其中的页数。
检查页面的How to find HTML elements? section, tab Advanced
。
例如http://www.carmudi.pk/cars/
包含
<li class="total-pages"> of <strong>1036</strong> </li>
您可以使用类total-pages
访问它并解析文本。
如果您正在寻找适用于所有网站的通用解决方案,因为每个网站都有不同的导航html,每个网站都需要单独解析。