у меня есть долгие часы работы цикла foreach, который выводит правильно в конце, когда все элементы обрабатываются ..
foreach ($matches[0] as $map_link) {
if ($map_link!='' && $i < $max_tags ) {
include('reg-process.php');
}
$i++;
}
Infact для каждого $ match [0], который содержит более 600 совпадений, включает
Страница ‘reg-process.php’, которая обрабатывает каждое совпадение по очереди, и после одного часа она завершает работу и выводит все результаты.
мне не нужно ждать до последнего элемента, чтобы увидеть результаты, поэтому, пока цикл работает после обработки каждого элемента, он может отображаться …
так что опять мне нужно каждый раз, когда цикл включает в себя распечатку страницы ‘reg-process.php’
результат, чтобы не дойти до последнего пункта, потом все распечатать сразу .. что-то вроде продолжения?
включают не следует использовать так, как вы его используете, его следует использовать для включения функциональности или уменьшения сложности одного файла, а не для неправильного использования его в качестве функции. Поэтому, во-первых, избавьтесь от включения, так как это приведет к проблемам в определенный момент времени (то есть вы не можете включать один файл несколько раз, если он содержит функции).
Есть разные способы получить то, что вы хотите, вот только две возможности:
1.) Файловое ведение журнала:
<?php
// file: register_process.php
function registerProgress($map_link)
{
// YOUR CODE
// ...
// assuming that the result of your code is a string variable that can be logged
file_put_contents('registration.log', $logResult, FILE_APPEND);
}
include('register_progress.php');
foreach ($matches[0] as $map_link) {
if ($map_link!='' && $i < $max_tags ) {
registerProgress($map_link);
}
$i++;
}
2.) Переключитесь на ajax:
в случае, если вы запускаете сценарий как часть веб-приложения (а не как консольное приложение), вы можете переписать свой код для выполнения одного запроса страницы для каждой ссылки на карту.
Преимущества: вы получите видимый результат за каждый выполненный вызов, уменьшенное использование памяти скриптов, меньший риск тайм-аутов (из-за тайм-аутов PHP, веб-сервера или браузера).
Недостатки: требуется увеличение количества запросов к страницам и рефакторинг кода.
ob_flush()
не будет работать, так как браузеры не анализируют содержимое ожидающего запроса страницы; вместо этого вам придется использовать сетевой сниффер, чтобы прочитать частично очищенный контент.
Вы не используете формат foreach с правильным синтаксисом. Идеальный код:
foreach ($arr as $value) {
$value = $value * 2;
}
Удостоверься что, $ матчей [0] это массив. Без массива это не сработает. Просто переписать свой код, надеюсь, будет работать правильно.