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

  • Auteur de la discussion Auteur de la discussion OTP
  • Date de début Date de début
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
 
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);
}
 
Re: Enchaîner la visite de pages web

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

Merci, je vais tester ça.

OTP
 
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
 
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
 
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...
 
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).
 
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.
 
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
 
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
 
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.
 
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>';
 
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 ;)
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut