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.

Al vast bedankt voor de reacties^^.
En waarom werkten beiden niet?
- SanThe - op 08/03/2014 13:20:26

En waarom werkten beiden niet?


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...
Wrm gebruik je geen while loop en dan hoef je ook die 2 dingen te gebruiken!
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 ^^.
doe gewoon

header('Refresh: 0; url=hierdepagina.php');

dan begint hij ook gewoon opnieuw
Christian k op 08/03/2014 14:44:00

doe gewoon

header('Refresh: 0; url=hierdepagina.php');

dan begint hij ook gewoon opnieuw

Dankje, die kende ik nog niet^^. Het werkte.
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.

Reageren