PHP-while循环加载
我有一个while循环,它从一个文本文件中获取ip和密码,并登录到我使用httpauth租用的一些服务器PHP-while循环加载,php,while-loop,Php,While Loop,我有一个while循环,它从一个文本文件中获取ip和密码,并登录到我使用httpauth租用的一些服务器 <?php $username = 'admin'; function login($server, $login){ global $username, $password, $server; $options = array( CURLOPT_URL => $server, CURLOPT_HEADER => 1, CURLOPT_R
<?php
$username = 'admin';
function login($server, $login){
global $username, $password, $server;
$options = array(
CURLOPT_URL => $server,
CURLOPT_HEADER => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5",
CURLOPT_HTTPHEADER => array("
Host: {$server}
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Authorization: Basic {$login}
"));
$ch = curl_init();
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ( $http_status == 200 ) {
//do something
echo "Completed";
}
else { echo "Something went wrong";}
};
$file = fopen('myServers.txt', 'r');
while (! feof($file)) {
$m = explode(fgets($file), ':');
$password = $m[0];
$server = $m[1];
$login = base64_encode("{$username}:{$password}");
login($server, $login);
};
?>
剧本写得很好。但是,当我在本地主机上加载页面时,加载需要花费很长时间,然后在处理完整个文件后立即打印出所有内容
我想打印出
出错的部分
或完成的部分
,每次打印文件时,我不希望它等待整个文件通过循环 您可能会想看看PHP刷新,它将内容推送到浏览器,然后再继续创建更多页面内容。请注意,根据我对PHP的记忆,您需要同时ob_flush()和flush(),以便正确地将内容刷新到浏览器中
[编辑]
示例:您可以尝试将echo语句更改为类似以下内容:
echo "Completed";
ob_flush();
flush();
您可能会想看看PHP flushing,它将内容推送到浏览器,然后再继续创建更多页面内容。请注意,根据我对PHP的记忆,您需要同时ob_flush()和flush(),以便正确地将内容刷新到浏览器中 [编辑] 示例:您可以尝试将echo语句更改为类似以下内容:
echo "Completed";
ob_flush();
flush();
您可能会想看看PHP flushing,它将内容推送到浏览器,然后再继续创建更多页面内容。请注意,根据我对PHP的记忆,您需要同时ob_flush()和flush(),以便正确地将内容刷新到浏览器中 [编辑] 示例:您可以尝试将echo语句更改为类似以下内容:
echo "Completed";
ob_flush();
flush();
您可能会想看看PHP flushing,它将内容推送到浏览器,然后再继续创建更多页面内容。请注意,根据我对PHP的记忆,您需要同时ob_flush()和flush(),以便正确地将内容刷新到浏览器中 [编辑] 示例:您可以尝试将echo语句更改为类似以下内容:
echo "Completed";
ob_flush();
flush();
您是否可以执行您想要执行的操作取决于所使用的web服务器,以及它在输出缓冲方面的配置方式 开始阅读PHP函数的文档是一个好地方 调用
flush
是为了将输出推送到最终用户,但有时web服务器会实现自己的输出缓冲,这会破坏效果
从flush
文档中:
一些服务器(尤其是Win32上的服务器)仍会缓冲脚本的输出,直到脚本终止,然后再将结果传输到浏览器
您是否可以执行您想要执行的操作取决于所使用的web服务器,以及它在输出缓冲方面的配置方式 开始阅读PHP函数的文档是一个好地方 调用
flush
是为了将输出推送到最终用户,但有时web服务器会实现自己的输出缓冲,这会破坏效果
从flush
文档中:
一些服务器(尤其是Win32上的服务器)仍会缓冲脚本的输出,直到脚本终止,然后再将结果传输到浏览器
您是否可以执行您想要执行的操作取决于所使用的web服务器,以及它在输出缓冲方面的配置方式 开始阅读PHP函数的文档是一个好地方 调用
flush
是为了将输出推送到最终用户,但有时web服务器会实现自己的输出缓冲,这会破坏效果
从flush
文档中:
一些服务器(尤其是Win32上的服务器)仍会缓冲脚本的输出,直到脚本终止,然后再将结果传输到浏览器
您是否可以执行您想要执行的操作取决于所使用的web服务器,以及它在输出缓冲方面的配置方式 开始阅读PHP函数的文档是一个好地方 调用
flush
是为了将输出推送到最终用户,但有时web服务器会实现自己的输出缓冲,这会破坏效果
从flush
文档中:
一些服务器(尤其是Win32上的服务器)仍会缓冲脚本的输出,直到脚本终止,然后再将结果传输到浏览器
你可以在while循环中
echo
一些东西吗?正如@rar所建议的,你可以echo
在项目中循环时输出一些东西。如果您想在页面解析这些项目时与页面进行交互,那么您唯一的选择就是加载页面,然后调用ajax
来解析项目。问题是web服务器在将整个输出发送到客户机之前完全完成了脚本。这就是它的工作方式。如果您想要交互式的,或者至少是周期性的响应,请使用AJAX。仍然在加载整个文件,你能不能在while循环中回送
一些东西?正如@rar所建议的,你可以回送
一些东西,就像你在项目中循环一样。如果您想在页面解析这些项目时与页面进行交互,那么您唯一的选择就是加载页面,然后调用ajax
来解析项目。问题是web服务器在将整个输出发送到客户机之前完全完成了脚本。这就是它的工作方式。如果您想要交互式的,或者至少是周期性的响应,请使用AJAX。仍然在加载整个文件,你可以jus吗