<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'pass');
define('DB_DATABASE', 'table');
$mysqli = new mysqli(DB_SERVER, DB_USERNAME,DB_PASSWORD,DB_DATABASE);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
include 'simple_html_dom.php';
$startpage=2;
$endpage=8;
for($i=$startpage;$i<=$endpage;$i++){
$html = file_get_html("http://some site.com/page=$i");
}
foreach($html->find("div.tt-name") as $title2)
{
$title[]= $mysqli->real_escape_string(trim($title2->plaintext));
echo $title2->plaintext.'<br>';
}
?>
我想解析页面编号,例如从page = 2到page = 8我想从所有这些页面中获取数据,如2,3,4,5,6,7,8但是现在它只显示页面= 8 ..我错过了什么?
答案 0 :(得分:0)
解析这里是错误的词,但让我们忽略它。你的问题是你不了解循环的概念。
运行此代码:
for($i=0; $i<10; $i++)
{
$y = $i;
}
echo $y . '<br/>';
您会注意到要打印的唯一值是9.为什么?因为循环的每次迭代都会覆盖变量中的值。
如果您想对每个值而不是仅使用最后一个值执行某些操作,请将使用 值 值的代码放在循环中:
for($i=0; $i<10; $i++)
{
$y = $i;
echo $y . '<br/>';
}
因此,对于您的代码:
for($i=$startpage;$i<=$endpage;$i++)
{
$html = file_get_html("http://some site.com/page=$i");
foreach($html->find("div.tt-name") as $title2)
{
$title[]= $mysqli->real_escape_string(trim($title2->plaintext));
echo $title2->plaintext.'<br>';
}
}