Isoler un mot dans une adresse renseigné

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Isoler un mot dans une adresse renseigné

Re: Isoler un mot dans une adresse renseigné

par zerodegre » 10 août 2011, 14:01

bon voila c bon erreur de ponctuation encore une fois grrr code final resolu :

	
	 if ($info[tag] == ''){
	
	$auto = getEpression($info[lien],'#http://www.(.*?).com#is');
	$auto = strip_tags(utf8_decode($auto[0]));
    }

Re: Isoler un mot dans une adresse renseigné

par zerodegre » 10 août 2011, 13:55

bon maintenant voici mon code qui fonctionne :

Code : Tout sélectionner

if( $auto = getEpression($info[lien],'#http://www.(.*?).com#is') ) { $auto = strip_tags(utf8_decode($auto[0])); } else{ $auto = 'Aucune info'; }

Je voudrais tui mettre une condition mais je me tappe des erreur voila ce que j'ai coder :

Code : Tout sélectionner

if ($info[tag] == ''){ $auto = getEpression($info[lien],'#http://www.(.*?).com#is'); $auto = strip_tags(utf8_decode($auto[0])); } else{ $auto = 'Aucune info'; }

Re: Isoler un mot dans une adresse renseigné

par zerodegre » 10 août 2011, 13:43

bon voila j'ai trouvé , voila comment j'ai codé ça parmis vos divers info et le site manuel php

Code : Tout sélectionner

if( $auto = getEpression($info[url],'#http://www.(.*?).com#is') ) { $auto = strip_tags(utf8_decode($auto[0])); } else{ $auto = 'Aucune info'; }

Re: Isoler un mot dans une adresse renseigné

par Cyrano » 10 août 2011, 12:41

As-tu regardé la documentation sur preg_match() ? Le retour n'est pas une chaine mais un nombre d'occurrences trouvées ou false. Donc là, il va falloir de l'astuce et utiliser une autre fonction : preg_replace() pour n'extraire que la partie qui t'intéresse.

Regarde la doc et vois comment tu pourrais utiliser ça ;)

Re: Isoler un mot dans une adresse renseigné

par zerodegre » 10 août 2011, 12:28

voila l'erreur est disparue mais en resultat a la place du mot GOOGLE j'obtient 0

Re: Isoler un mot dans une adresse renseigné

par Cyrano » 10 août 2011, 12:23

Là, ça ne relève pas de ton expression régulière, c'est une faute d'inattention : il manque un « ; » à la fin de la ligne précédente.

Re: Isoler un mot dans une adresse renseigné

par zerodegre » 10 août 2011, 11:27

J'ai fait un teste comme ceci mais toujours ERREUR ==> Parse error: syntax error, unexpected T_ECHO
  $auto='http://www.google.com';
       
    $auto=preg_match('#http://www\.(.*?).\com#', $auto)
       
        echo $auto;
	

Re: Isoler un mot dans une adresse renseigné

par Cyrano » 10 août 2011, 11:02

Mouais, j'ai peut-être pas été très clair sur ce détail, je vais essayer de formuler autrement.

La chaine que tu veux parser est donc « http://www.google.com » pour en isoler le mot « google » Je t'ai fait observer que dans ta première expression, tu n'avais pas échappé les points inclus dans la chaine que tu as inséré dans l'expression, or un point signifie « n'importe quel caractère », donc il faut l'échapper, et si tu parcoures un peu les tutos, tu verras que ce n'est pas vraiment compliqué, il suffit d'écrire « \. » au lieu de « . »

Reprend ta première expression, modifie et refais l'essai :)

Re: Isoler un mot dans une adresse renseigné

par zerodegre » 10 août 2011, 10:02

j'ai essayer ceci mais toujour erreur ==>

Parse error: syntax error, unexpected T_ECHO
        $auto='http://www.teste du lien.com';
       
    $auto=preg_match('#http://www[^"](.*?)[^"]com#', $auto)
       
        echo $auto;

Re: Isoler un mot dans une adresse renseigné

par Cyrano » 10 août 2011, 09:48

Oui : indice : attention, le point est un caractère spécial dans une expression régulière. Donc pour l'isoler littéralement, il faut l'échapper. Observe bien ton expression, il y a deux points qui sont interprétés au lieu d'être recherchés comme des points

Re: Isoler un mot dans une adresse renseigné

par zerodegre » 10 août 2011, 09:46

Je viens d'essayer ceci qui normalement devrais marcher mais j'ai une erreur
	$auto='http://www.teste du lien.com';
	
    $auto=preg_match('#http://www.(.*?).com#', $auto)
	
	echo $auto;

Re: Isoler un mot dans une adresse renseigné

par zerodegre » 10 août 2011, 09:28

oki merci je vais essayer ça

Re: Isoler un mot dans une adresse renseigné

par Cyrano » 10 août 2011, 09:28

Tiens, un premier tuto et un second tuto sur les expressions régulières : un peu moins facile pour le second, mais commence, fais des essais et viens au besoin demander conseil en nous montrant tes essais, on devrait pouvoir te remettre sur la route au fur et à mesure :)

Re: Isoler un mot dans une adresse renseigné

par zerodegre » 10 août 2011, 09:17

oui j'ai essayé ça decoupe bien l'url mais apres je suis perdu je n'arrive pas a isoler que le mot google

Re: Isoler un mot dans une adresse renseigné

par Cyrano » 10 août 2011, 09:12

xTG t'a indiqué une fonction pourtant bien utile et dans ce forum, chaque fonction PHP est transformée en lien vers la documentation de cette fonction, l'as-tu regardée et lue ?