begin process at 2012 02 09 12:36:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Curl et domaines


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Curl et domaines

mardi 25 mars 2008 à 12:09:49 | Curl et domaines

M000004965

Bonjour à toutes et tous,

J'utilise un script fondé sur CURL pour analyser des sites web mobil.
Je dispose donc d'une liste d'url désignant la home de chaque site à tester.
Je définis le domaine en fonction de l'url de base hors, lorsqu'un site procède à une redirection, le domaine n'est plus bon.
Je cherche donc le moyen d'identifier le domaine après la réponse http que me retourne CURL.

Pour ce faire j'utilise la RegExp suivante :

     preg_match('@^(?:http://)?([^/]+)@i',$UrlHome, $matches);
     $Domaine = $matches[1];

J'ai besoin de cette étape pour reconstituer l'adresse complète des liens relatifs contenus dans les pages analysées.

Peut-être existe-t-il une autre méthode, si c'est le cas, je suis preneur de toute info et piste de recherche.

D'avance, merci

Autodidact, je ne demande qu'à apprendre... Merci de votre aide
mardi 25 mars 2008 à 15:26:29 | Re : Curl et domaines

neigedhiver

Salut,

Tu peux récupérer les entêtes HTTP avec la fonction apache_request_headers() : http://fr.php.net/manual/fr/function.apache-request-headers.php
Dans ces entêtes doit figurer l'url de redirection.
Peut-être consulter les spécifications HTTP1.1 pour savoir quelle valeur chercher...


Neige
mercredi 26 mars 2008 à 17:12:57 | Re : Curl et domaines

M000004965

bonjour,

dsl je n'ai pas répondu + tot, mon easyphp c'était envoyé en l'air. (merci pour ton aide )

Bon, c'est pas gagné, j'ai lu tout ce que j'ai pu trouver sur apache-request-headers mais tout est lié avec du local.

je ne vois comment je passe une url au code suivant par exemple: (c'est juste le code exemple sur php.net)

$headers apache_request_headers();

foreach (
$headers as $header => $value) {
    echo 
"$header: $value <br />\n";
}
================
Ci dessous mon code pour que vous puissiez recreer la situation:
(normalement l'url procède à une redirection mais à confirmer)
au pire celle-ci fait une redirection, je viens de vérifier:
http://m.shozu.com


$url = "http://meteolive1.mc-wetter.de";
$UserAgent ="SonyEricssonK810i/R1KG Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1";

// Identification du domaine
preg_match('@^(?:http://)?([^/]+)@i',$url, $matches);
$Domaine = $matches[1];

processURL($url,$Domaine,$UserAgent);

function processURL($url,$Domaine,$UserAgent)
{

set_time_limit(300);

echo "<B>URL interogee : </B>".$url."<br>";

        //Connection wap
        $ch=curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
                // Proxy wap toto
                curl_setopt($ch, CURLOPT_PROXY, '000.000.000.000:8080');
                curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM);
                curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
                curl_setopt($ch, CURLOPT_PROXYUSERPWD, ":");

                curl_setopt($ch, CURLOPT_USERAGENT, $UserAgent);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   // a 1 pour suivre les redirections
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
        $recuppage = curl_exec ($ch);
        //echo $recuppage;
        $info = curl_getinfo($ch);
        curl_close ($ch);

    if (empty($info['http_code'])) {
            echo "No HTTP code was returned<br>";
            echo $url.'<br>';
    } else {
        echo "http_code : ".$info['http_code']."<br>";
        echo "url : ".$info['url']."<br>";
        echo "content_type : ".$info['content_type']."<br>";
        echo "header_size : ".$info['header_size']."<br>";
        echo "request_size : ".$info['request_size']."<br>";
        echo "filetime : ".$info['filetime']."<br>";
        echo "redirect_count : ".$info['redirect_count']."<br>";
        echo "total_time : ".$info['total_time']."<br>";
        echo "namelookup_time : ".$info['namelookup_time']."<br>";
        echo "connect_time : ".$info['connect_time']."<br>";
        echo "pretransfer_time : ".$info['pretransfer_time']."<br>";
        echo "size_upload : ".$info['size_upload']."<br>";
        echo "size_download : ".$info['size_download']."<br>";
        echo "speed_download : ".$info['speed_download']."<br>";
        echo "speed_upload : ".$info['speed_upload']."<br>";
        echo "download_content_length : ".$info['download_content_length']."<br>";
        echo "upload_content_length : ".$info['upload_content_length']."<br>";
        echo "starttransfer_time : ".$info['starttransfer_time']."<br>";
        echo "redirect_time : ".$info['redirect_time']."<br>";
        //echo '<br><br>';
        //echo $recuppage.'<br>';
        //echo '<br><br>';
        echo "Domaine = ".$Domaine;
    }
}

 
Autodidact, je ne demande qu'à apprendre... Merci de votre aide
mercredi 26 mars 2008 à 17:59:11 | Re : Curl et domaines

M000004965

Ho Ho,

en fait après une analyse approfondie, il semble que je récupère l'url après redirection grace à
echo "url : ".$info['url']."<br>";
En effet, lorsqu'il y a redirection le contenue de cette variable retournée par CURL contient l'url exacte après redirection.
Je ne l'avais pas vue car sur plus de 1100 url avec les quelles je travaille, seule 5 procèdent à des redirections

Autodidact, je ne demande qu'à apprendre... Merci de votre aide
mercredi 26 mars 2008 à 18:03:43 | Re : Curl et domaines

M000004965

Réponse acceptée !
Pour info, la solution est donc:

modifier le script et insérer un test sur $info['redirect_count']  car si c'est égale à 1 allors il y a redirection.
Il n'y a plus qu'à récupérer le contenu de $info['url']  et d'en extraire le domaine.

Kipp Cool

Autodidact, je ne demande qu'à apprendre... Merci de votre aide


Cette discussion est classée dans : url, utilise, domaine, curl, domaines


Répondre à ce message

Sujets en rapport avec ce message

Action sur changement d'url [ par fcdconnect ] Bonjour,Est t'il possible d'introduire une condition avec action si il y a changement de domaine...si le nom de domaine de l'url change alors action ( Headers (fct CURL) [ par malik7934 ] Hello,Depuis quelques temps, je bricole avec les fonctions CURL et j'adore  mais j'ai un probleme Je cherche a recupere les heades que j'envoie quand Curl & Yahoo [ par WhiteDwarf ] Bonjour, en fait je cherche à créer un script qui permettrai de récupérer les contacts des boites mail Yahoo! et Gmail (et autres éventuellement)Jusqu [WAMP5] 2 sites, 2 ip fixes et donc 2 nom de domaine [ par dekovince ] bonjour a tous !!apres quelque recherche jen ai pas trouver grand chose !!!alors voila : j ai un serveur win xp avec wamp avec un site sous nom de dom str_replace et condition [ par christobal ] bonjour,je cherche via la fonction str_replace a rajouter au url d'un text le nom de domaine du site.Pour être plus clair, certains articles de mon si Creation d'un bot pour skyblog ( aide ) [ par djhanzo ] Bonjour je veux crée un bot pour la plateforme skyblog qui mais des commentaires sur un blog automatiquement voila des sites qui on le bot http://plei sous-domaines [ par bobertin89 ] Salut à tous, problème certainement déjà largement commenté mais je n'ai pas trouvé de soluce... J'ai un domaine "mondomaine.com" sur un serveur semi détection des sous domaines d'un nom de domaine [ par jabs123 ] Bonjour tout le monde,Je cherche le moyen de trouver tous les sous domaines d'un nom de domaine donnée .Actuellement, j'utilise le site http://searchd deux listes de choix select dependentes [ par 5athra ] Voila  les table de ma base de donnee:create table domaine(idDomaine int(3) primary key ,DesDomaine varchar(70));create table Sousdomaine(idSousDomain Boucle infinie avec curl_setopt et SSL!!! [ par malik7934 ] Hello, J'ai un problème agaçant avec curl_setopt (je débute dans le domaine). J'essaie de me connecter à un site avec SSL. Voici le tout début de mon


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales