Executer un script sans attendre la réponse de l'url

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 523 fois - Téléchargée 16 fois

Contenu du snippet

Des fois on a besoin d’exécuter un script en appelant une url, sans attendre la réponse dans le cas ou le script risque de prendre beaucoup de temps.

l'astuce c'est d'utiliser "curl_multi_exec" qui permet de lancer plusieurs urls en même temps (asynchrone)
et c'est en utilisant une boucle qu'on récupère le contenu de chaque url. donc il faut juste breaker la boucle aussitôt..

Source / Exemple :


<?php
function callUrl($url){
	$cmi = curl_multi_init();
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_multi_add_handle($cmi, $curl);
	
	do {
		curl_multi_exec($cmi, $running);
		//on attends quelques micro secondes puis on break la boucle.
		//comme ça on arrive a appeler l'url sans attendre la réponse  
		usleep(1000);
		break;
	} while ($running > 0);
	
	curl_multi_remove_handle($cmi, $curl);
	curl_multi_close($cmi);
}

//l'url du script en a executer
callUrl("http://www.bing.com");

A voir également

Ajouter un commentaire Commentaires
Bonsoir les amis.
J'ai resolu mon probleme et je poste mon code qui a marche.

		function getSSLPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSLVERSION,3);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
if($finoff>0)
{
for($i=0;$i<$nbabonne;$i++)
{
$phon=$listeabonne[$i]['telephone'];
$phon = substr($phon,1).',';
$phon =str_replace(' ','',$phon);
$phone .= $phon;

$url = "http://xxx.x.xxx.xxx/bulksms/bulksend.go?username=$user.com&password=$pass&originator=$signator&phone=$phone&msgtext=$message";

//echo $url.'</br>';
}
ar_dump(getSSLPage("$url"));


Merci a tous pour votre aide
Bonjour et desole pour le retard de ma reponse.
Je vais voir la doc de CURL et vous tenir informer de la suite
Grand merci
Messages postés
14781
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 avril 2021
154
As-tu essayé avec des requêtes non bloquantes ?

$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, "....");
curl_exec ($ch);
curl_close ($ch);


Regardes la doc de CURL (php curl).
Regardes le code retour, etc.

Il se peut que CURL soit bloqué ou limité selon ton hébergeur.
Bonjour,
Oui j'ai affiché l'url et elle est bien formée de plus ca m'affiche les urls avec chaque numero ce qui veut dire ma boucle marche alors ma préocupation est pourquoi les sms ne sont pas envoyé?
Merci pour votre aide et votre disponibilité
Messages postés
14781
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 avril 2021
154
Cette source traite des requêtes non bloquantes, avec CURL, tu peux facilement faire des requêtes bloquantes.
Sinon, as-tu affiché l'URL générée, histoire de voir si ce ne serait pas l'URL qui serait mal formée ?
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.