Php 简单HTMLDOM和通过嵌套循环提取数据的奇怪问题
如果这是一个新手问题,我很抱歉,但我不明白为什么这不起作用——而且我在搜索时似乎找不到任何关于它的信息 基本上,我正在尝试从我们的站点中获取一些用户详细信息,这些信息在站点RESTAPI中是不可用的,所以我必须手动完成。我已经编译了一个带有userid的文本文件,用于通过简单的HTMLDOM从每个用户获取想要的详细信息Php 简单HTMLDOM和通过嵌套循环提取数据的奇怪问题,php,html,file,parsing,dom,Php,Html,File,Parsing,Dom,如果这是一个新手问题,我很抱歉,但我不明白为什么这不起作用——而且我在搜索时似乎找不到任何关于它的信息 基本上,我正在尝试从我们的站点中获取一些用户详细信息,这些信息在站点RESTAPI中是不可用的,所以我必须手动完成。我已经编译了一个带有userid的文本文件,用于通过简单的HTMLDOM从每个用户获取想要的详细信息 <?php include('simple_html_dom.php') ; include('functions.php') ; $file = fopen("user
<?php
include('simple_html_dom.php') ;
include('functions.php') ;
$file = fopen("userids2.txt", "r") ;
while(!feof($file)) {
$userid = fgetss($file) ;
$url = 'http://<our URL>/user/'.$userid ;
echo $url ;
webscraper($url) ;
}
fclose($file) ;
?>
下面是functions.php的内容:
<?php
function webscraper($loopurl) {
$html = new simple_html_dom();
$html->load_file($loopurl);
$test = $html->getElementsById('ctl00_ContentPlaceHolderDefault_UserViewUC_tabContainer_tabProfile_userProfile_ddWork') ;
foreach ($test as $element) {
echo $element ;
}
}
?>
使用的特定文本文件包含4个用户名,我知道这些用户名包含我想要的信息。当我运行脚本时,它只会给我文本文件最后一行的url输出。它可以很好地打印URL,但拒绝加载前三个条目的远程html。如果我删除文本文件的最后一行,它将加载它以前拒绝执行的新的最后一行
有什么想法吗??提前谢谢。Doh。。我发现了问题所在。文本文件中除最后一个条目外的所有条目上都有一个不可见的行尾字符。这就是它拒绝工作的原因。检索线时添加修剪修复了该问题:
$userid = trim(fgetss($file));
我也许应该知道这一点,但至少下次我不会犯这个错误:-