Door
RareAMV Unknown
op 08-03-2014 13:16
gewijzigd op 08-03-2014 13:18
1.781 views
Hallo,
Ik zou graag willen weten of het mogelijk is om een php script opnieuw op te starten als een bepaalde conditie waar is. Bijvoorbeeld met dit scriptje:
<?php
$i = 0;
while($i < 100){
$i++;
echo $i . '<br>';
if($i == 60){
// herstart script.
echo 'hier zou hij opnieuw moeten beginnen';
}
}
?>
Deze vraag kwam spontaan bij me op, ik had
header('location: test.php');
en
$ch = curl_init('test.php'); curl_exec($ch);
geprobeerd, bijde werkte niet. Ik zou graag willen weten of het uberhaupt mogelijk is.
Ik ben een beginner in php, dus ik heb er nog niet veel verstand van.
Als ik header gebruik, dan blijft hij maar de pagina laden zonder enig resultaat te geven, bij curl laad hij het script en laat hij tot honderd zien, maar volgens mij zou hij als hij elke keer bij 60 komt de script moeten herladen en dus zou hij alleen getallen tm 60 moeten laten zien, volgens mij...
Even voor de duidelijkheid: dit is gewoon een voorbeeld die ik nergens voor zal gebruiken, ik vroeg het me gewoon af of het uberhaupt mogelijk is, misschien zal ik in de toekomst er wat aan hebben ^^.
Als je dat soort dingen gebruikt (in welke vorm dan ook), zorg er dan wel heel duidelijk voor dat je een eind conditie hebt. Dus dat er een bepaalde conditie is die op zeker moment de loop (herstart) stopt en dat het niet oneindig door gaat. In de oplossing die Christian geeft loopt de herstart via de browser, waardoor de gebruiker het kan stoppen mocht het te lang gaan duren.In gevallen waar je het puur op de server doet (bijvoorbeeld met een curl request) dan kan het zijn dat je op de server in een oneindige loop komt en zelfs als de gebruiker dan zijn browser sluit zal je loop door blijven gaan.
Zorg dus altijd, bij elke vorm van een loop, dat je er een veiligheid in bouwt die oneindige herhaling onmogelijk maakt.