Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Curl et domaines [ Divers / Débutant(e) ] (M000004965)

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é 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 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 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 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 deconnexion d'un espace membre [ par joebuz ] Hello,voila j'utilise les sessions pour un espace membre " session_start();  "puis j'utilise $_SESSION pour avoir l'id d'un membremais je n'arrive pas


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.