我有一個while循環,它從文本文件中獲取ip和密碼,並登錄到使用HTTP Auth租用的某些服務器。PHP - while循環加載
<?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);
};
?>
該腳本工作正常。但是,當我在本地主機上加載頁面時,需要永久加載,然後在完成整個文件時立即打印所有內容。
我想在每次執行文件時打印出Something went wrong
或completed
,我不希望它等待整個文件通過循環。
你可以在while循環中'echo'一些東西嗎? – muttley91
作爲@rar,建議,你可以'回聲'的東西,因爲你正在循環的項目。如果你想在解析這些項目時與頁面進行交互,你唯一的選擇就是加載頁面,然後做一個'ajax'調用來解析這些項目 – mituw16
問題是web服務器在發送之前完成腳本的完成整個輸出到客戶端。這只是它的工作方式。如果您希望交互式或至少定期迴應,請使用AJAX。 –