gpt4 book ai didi

PHP DOM 解析多个页面使用 while 循环多次只加载单个页面语句

转载 作者:行者123 更新时间:2023-11-30 22:01:08 24 4
gpt4 key购买 nike

我正在尝试使用 PHP dom 解析器解析来自论坛站点的帖子相关语句。当我们插入页面的单个 url 时,它会起作用,但是当我们尝试应用 while 循环逻辑时,它会多次打印一页。

我的代码是:

<?php
set_time_limit(3600);
$i = 1;
$e = 839304-$i;
while(true){
require_once('dom/simple_html_dom.php');
$html =file_get_html('http://www.usmleforum.com/files/forum/2017/1/'.$e.'.php');
foreach ($html->find("tr") as $row) {
$element = $row->find('td.Text2',0);
if ($element == null) { continue; }
$textNode = array_filter($element->nodes, function ($n) {
return $n->nodetype == 3; //Text node type, like in jQuery
});
if (!empty($textNode)) {
$text = current($textNode);
echo $text."<br>";
}
}
$i++;
}
?>

正如结果所示,它只打印第 839303 页的语句,但它打印了多次并仍然加载......所以很明显这段代码以某种方式跳过了 $i++ 行并再次运行......

感谢任何帮助...

最佳答案

插入 $e在 while 循环内将解决问题。但这是一个无限循环。所以尝试为 while 循环提供一个退出条件,例如:while($i < 100)或者是其他东西。

 <?php
set_time_limit(3600);
$i = 0;

while($i < 10){
$e = 839303 + $i;
require_once('dom/simple_html_dom.php');
$html =file_get_html('http://www.usmleforum.com/files/forum/2017/1/'.$e.'.php');
foreach ($html->find("tr") as $row) {
$element = $row->find('td.Text2',0);
if ($element == null) { continue; }
$textNode = array_filter($element->nodes, function ($n) {
return $n->nodetype == 3; //Text node type, like in jQuery
});
if (!empty($textNode)) {
$text = current($textNode);
echo $text."<br>";
}
}
$i++;
}
?>

关于PHP DOM 解析多个页面使用 while 循环多次只加载单个页面语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43305481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com