[résolu] Enchaîner la visite de pages web

WRInaute accro
Bonjour,

La question pourra paraître bête à certains mais je ne sais pas comment faire...

Je fais la mise à jour de mon site en enchaînant l’exécution de plusieurs pages .php (qui modifient mes tables sql).
Je souhaite faire un script qui executent à la suite chacune de ces pages, séparées par un sleep (une bonne quinzaine...).

Comment écrire un script qui "exécute" automatiquement plusieurs pages les unes après les autres ?

Merci d'avance !

OTP
 
WRInaute impliqué
Re: Enchaîner la visite de pages web

P'têtre ça :


Code:
<?php

$scripts = array(
	'script1.php',
	'script2.php',
	'script3.php',
);

foreach($scripts as $script) {
	include($script);
	sleep(15);
}

edit: mwai, c'est pas top, suffit que tu fasse un "exit()" dans un des scripts pour que ça s'arrête.
faudrait p'têtre faire des file_get_contents() sur les url :

Code:
<?php

$scripts = array(
	'http://example.com/script1.php',
	'http://example.com/script2.php',
	'http://example.com/script3.php',
);

foreach($scripts as $script) {
	set_time_limit(0); // ne fonctionne pas toujours en mutualisé
	/* echo */ file_get_contents($script); // echo si tu veux afficher les réponses des scripts
	sleep(15);
}
 
WRInaute accro
Re: Enchaîner la visite de pages web

Rho, t'as oublié le ?> ! ;)

Merci, je vais tester ça.

OTP
 
WRInaute impliqué
Re: Enchaîner la visite de pages web

perso j'utilise une redirection je fais une requête avec un LIMIT $k,$p et j'incremente le $k

édit : à la lecture de la réponse précédente j'ai lu trop vite la question :D
 
WRInaute impliqué
Re: Enchaîner la visite de pages web

Oui, les redirections, ca peut le faire, avec la meta y a même moyen de spécifier le délai avant redirection.

Ca résoudrait le problème éventuel de "time limit" / "max execution time" en php
 
WRInaute occasionnel
Re: Enchaîner la visite de pages web

J'utilise la meta refresh en y passant en paramètre le nom de la prochaine page.
Un truc perso qui marche pour moi, je ne sais pas s'il y a des contres indications...
 
WRInaute passionné
Re: Enchaîner la visite de pages web

Si tu es en dédié et que tes scripts sont executable en console, ça peut être utile :
Code:
 for file in `ls /home/la/où/sont/tes/scripts/`; do php -f $file; sleep 2; done
Si tu dois les "pinguer":
Code:
 for file in `ls /home/la/où/sont/tes/scripts/`; do curl -I http://tonsite.com/${file}; sleep 2; done
(Pas sûr du ${file} à tester).
 
WRInaute passionné
Re: Enchaîner la visite de pages web

tu fait une boucle en php/js pour mettre tes pages en iframe.

puis tu ouvre cette page dans un navigateur.
 
WRInaute accro
Re: Enchaîner la visite de pages web

les pages a enchainer dans un array (session)
un refresh de array[0]
et delete de la premiere ligne a chaque fois
 
WRInaute accro
Re: Enchaîner la visite de pages web

seebz a dit:
P'têtre ça :


Code:
<?php

$scripts = array(
	'script1.php',
	'script2.php',
	'script3.php',
);

foreach($scripts as $script) {
	include($script);
	sleep(15);
}

Ca marche, merci
 
WRInaute impliqué
Fait quand même attention car le jour où la durée d'exécution totale de tes scripts dépasseront la valeur définie à max_execution_time (dans php.ini), ton script s'arrêtera avant la fin.
(A noter que les pauses ne "compte" pas)

Si ton hébergeur le permet, un set_time_limit(0) placé au début du script résoudrai aussi le problème.
 
WRInaute impliqué
Avec ini_get() ;)

essaye ce script, ca te permettra aussi de savoir si tu peux modifier cette valeur :
Code:
<?php

echo 'max_execution_time : ' , ini_get('max_execution_time'), '<br>';

set_time_limit(123);

echo '"new" max_execution_time : ' , ini_get('max_execution_time'), '<br>';
 
WRInaute impliqué
Oui, c'est spécifié en secondes.

Pour être sûr de ne pas avoir le problème d'interruption du script si part la suite le traitement devient plus important, je te conseille d'ajouter "set_time_limit(600);" au début du script.

la valeur 600 est un exemple, c'est à toi de voir ce qui te semble le mieux... mais n'hésite pas à mettre au moins 2/3 fois plus que nécessaire ;)
 
Discussions similaires
Haut