J'ai écrit un script pour géocodage quelques points qui a une structure essentiellement comme suit:While combinée avec en-tête() en PHP
//get an unupdated record
$arr_record;
while(count($arr_record) > 0)
{
//strings are derived from $arr_record
geocode($string1);
geocode($string2);
geocode($string3);
array_pop($arr_record);
}
function geocode($string) {
//if successful
update($coords)
}
function update($coords) {
//update the database
header('Location:http://localhost/thisfile.php')
}
Le problème est que même lorsque le géocodage est réussie et la base de données est mis à jour, et l'en-tête renvoyé, le script retourne encore dans la boucle while sans recharger la page et recommencer sur un nouvel enregistrement.
Est-ce un comportement normal pour PHP? Comment puis-je éviter qu'il se comporte comme ça?
Je suis un peu confus, pourquoi avez-vous besoin de recharger la page? – xenon
Pour la conformité, pensez à mettre un espace après le: - 'Location: http ...' - et assurez-vous de quitter(); – gahooa
La raison pour recharger la page est que je ne peux pas exécuter php en tant que CGI, et si je dis à une page de l'itérer trop de fois, il expire. Recharger la page me permet de parcourir autant que je veux sans aucun délai. – wheresrhys