Как повторить что-то в цикле while с sleep ()? - PullRequest
0 голосов
/ 02 июля 2019

У меня есть цикл while для чтения CSV-файла с данными клиента (имя, адрес электронной почты, веб-сайт). Я использую, чтобы повторить каждую строку каждую секунду. так что я делаю цикл while с sleep (1) и много надежды, но браузер подождет, пока его полностью загрузится. Я знаю, вот как работает PHP и, возможно, это легко с javacript, но я не имею никакого отношения к javascript. Даже техника flush () не работает. Может быть проблема на моем хосте? я использую one.com

Я уже пробовал только сон () в цикле. - загрузка до конца я пробовал уже сбрасывать функции - то же самое

$handle = fopen ("csv.csv","r");
$csv = array();

while ( ($data = fgetcsv ($handle, 1000, "\t")) !== FALSE ) {
    $csv[] = $data;
    echo "Name=".$data[0]."<br>Email=".$data[1]."<br>Website=".$data[2];
    sleep(1);
}
fclose ($handle);

1 Ответ

0 голосов
/ 02 июля 2019

Вы можете использовать оба, php и javascript для выполнения этой операции.

Шаг 1: Javascript сделает один вызов ajax на php, чтобы получить данные csv в виде json.

Шаг 2: PHP прочитает файл csv, сохранит данные в массив и вернет закодированные в json данные обратно в javascript.

Шаг 3: Выполните циклический просмотр данных бэкэнда в javascript с помощью функции setInterval, например:

var data = /* json data from ajax call */;

var i=0, html='';
var loop = setInterval(function(){
    // Perform the operation here, which will print some data at interval of 1 second
    if(i==data.length) {
        clearInterval(loop);
    }
}, 1000);
...