-1

I have a heavy processing script which can be started from a user via frontend in our intranet. Imagine something like this:

            $html = file_get_contents($url);
            $pattern = '/[A-Z0-9._%+-]+(@|\(at\)|\[at\])[A-Z0-9.-]+\.[A-Z]{2,4}\b/i'; //also (at) and [at]
            preg_match_all($pattern,$html,$emails);
            foreach ($emails[0] as $m)
            {
                $m[] = $m;
            }
foreach($m as $n){echo $n."<br>";}

This is just an example for illustration of the question! Don't judge it on common sense.

NOW what i want is 2 things:

  1. Stop the process on Click on a button from the user. This means: outputting the already collected array $m[].

  2. Stop the process (or better: stop the array-collecting process and jump to the echo of the already collected array) based on time (for example max. 1 minute collecting the array, THAN jumping to echoing.

I don't want to echo live and setting max execution time will stop the script without echoing.

Thanks for your wise advise on both subquestions

Email
  • 2,395
  • 3
  • 35
  • 63

1 Answers1

0

You have to run script through ajax, and button click regsiter session by ajax

foreach ($emails[0] as $m)
            {
      if (!isset($_SESSION['STOP'])) {
                $m[] = $m;
                   } 
               else { //stop code here } 
            }
user1844933
  • 3,296
  • 2
  • 25
  • 42