IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Retirer des mots d'un résultat


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut Retirer des mots d'un résultat
    Bonjour,

    J'utilise ce code que j'ai trouvé sur le net, pour récupérer le title et description d'un site :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    if(!$_GET['url']) : die(); endif;
     
    libxml_use_internal_errors(true);
     
    $doc = new DOMDocument();
    $doc->loadHTMLFile($_GET['url']);
     
    $xpath = new DOMXPath($doc);
     
    $name = $xpath->query('//title')->item(0);
    $des = $xpath->query('//meta[@name="description"]/@content')->item(0);
     
    $name = $name->nodeValue;
    $des = $des->nodeValue;
     
    echo $name .'<br />'.$des.'<br />';
    Mais ce que j'aimerais, assez (trop) compliqué pour moi, c'est retirer du title et de la description le nom du site s'il y est...

    Par exemple si le site s'appelle www.yahoo.fr
    le titre : "Portail internet - Yahoo"
    La description : "Yahoo le 1er portail du internet avec news, moteur de recherche et plus encore"

    Il faudrait que mon code me ressorte
    Portail internet
    le 1er portail du internet avec news, moteur de recherche et plus encore

    Auriez-vous une merveilleuse idée pour mon problème ?
    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 391
    Points
    9 391
    Par défaut
    str_replace() ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    Salut,

    Oui merci, mais j'avais oublié de préciser que le "get url" peut retourner des milliers de sites différents ! Donc je ne vais bien sûr pas faire des str replace à la main

    Il me faudrait un système qui capte si le mot entre www et .com (ou http:// et .fr .net etc...) se trouve dans le title ou la description, et le supprimer le cas échéant...

  4. #4
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Avec les regex: preg_replace()

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    Merci,

    En fait j'aurais du poster ça dans "débutant" car je ne connais pas la syntaxe, c'est difficile pour moi.

    Pourriez-vous me donner le code php pour :
    remplacer TOUT ce qu'il y a avant le 1er point dans l'url :
    http://www.
    ftp.
    Et remplacer TOUT ce qu'il y a après le 2e point :
    .com
    .fr
    .net/balbala.html

    Sachant que pour un site :
    http://lesite.com/balbala
    Il ne faut pas retirer avant le 1er point.... mais après le 1er point...

    Vous saisissez là difficulté de la chose ? :/

  6. #6
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par skeud Voir le message
    Avec les regex: preg_replace()

  7. #7
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Bonjour,

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
     
    $urls = array("http://www.google.com/","http://google.com","http://google.com?hl=fr");
    $pattern= "`https?://(w{3}\.)?([^\.]\w+)\.(\w)+`";
     
    $texte = " test : google - le site de recherche Google";
    echo "<h3>texte original : </h3> : $texte <hr/>";
     
    foreach($urls as $url) {
       preg_match($pattern, $url, $matches);
       $toRemove=$matches[2];
       echo "<h3>pour l'url : $url le texte devient : </h3> : ".str_ireplace($toRemove, "", $texte)."<hr/>";
    } 
     
    ?>

Discussions similaires

  1. [XL-2007] ALEA.ENTRE.BORNE() avec des mots en résultats : Est ce possible ?
    Par kenycolasdu43 dans le forum Excel
    Réponses: 2
    Dernier message: 31/03/2011, 15h22
  2. Réponses: 13
    Dernier message: 16/11/2005, 14h15
  3. Mettre la première lettre des mots en majuscule
    Par seb.49 dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2003, 15h26
  4. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo