Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/07/2011, 09h07   #1
Invité régulier
 
Inscription : mai 2011
Messages : 49
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 49
Points : 7
Points : 7
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 :
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 !
maxence64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 09h10   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
str_replace() ?
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/07/2011, 10h24   #3
Invité régulier
 
Inscription : mai 2011
Messages : 49
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 49
Points : 7
Points : 7
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...
maxence64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 10h28   #4
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

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

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Avec les regex: preg_replace()
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 11h24   #5
Invité régulier
 
Inscription : mai 2011
Messages : 49
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 49
Points : 7
Points : 7
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 ? :/
maxence64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 11h32   #6
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

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

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Citation:
Envoyé par skeud Voir le message
Avec les regex: preg_replace()
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 11h59   #7
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

exemple :
Code :
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/>";
} 
 
?>
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h42.


 
 
 
 
Partenaires

Hébergement Web