logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [regex] Exclusion d'une chaine
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [regex] Exclusion d'une chaine  (Lu 5980 fois)
lordzak

Profil challenge

Classement : 2130/54670

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« le: 09 Août 2006 à 11:43:13 »

Salut salut !

Euh je suis en train de coder un exploit (ouais ouais un espèce de proxy en PHP pour contourner un firewall... et ca marche xD) et j'aurais besoin d'exclure une chaine (je dois refaire les liens).

Le pb c'est que [^foo] exclue "f" ou "o" ou "o", or je voudrais exclure une chaine entière, vous pouvez m'aider ?
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
pepekiss

Profil challenge

non classé(e).

Membre Junior
**
Hors ligne Hors ligne
Messages: 67


Voir le profil
« #1 le: 09 Août 2006 à 12:01:34 »

si tu veux delete une chaine

$var=str_replace("foo","",$var);

pas besoin de te faire chier avec les regexp ^^
Journalisée
lordzak

Profil challenge

Classement : 2130/54670

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #2 le: 09 Août 2006 à 12:25:20 »

non je ne peux pas, parceque je fais un scan des liens (en plusieurs fois), et je ne veux pas récupérer les liens absolus, donc je ne veux pas prendre en compte la chaine "http" au début des guillemets.
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
pepekiss

Profil challenge

non classé(e).

Membre Junior
**
Hors ligne Hors ligne
Messages: 67


Voir le profil
« #3 le: 09 Août 2006 à 12:47:34 »

$var=preg_replace("/http:\/\/[a-ZA-Z.]{1,}/","",$var);

ça devrait etre bon ça
Journalisée
lordzak

Profil challenge

Classement : 2130/54670

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #4 le: 09 Août 2006 à 12:52:31 »

Naaan je ne veux pas m'occuper dans un premier temps des URL absolues...

La regex de mon preg_replace :
'#(href|action|import|src)=?"[^/](.+)"#i' <-- mais je veux exclure les http://, tout comme j'ai fais avec le "/" ([^/])
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
the lsd
Administrateur

Profil challenge

Classement : 181/54670

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #5 le: 09 Août 2006 à 13:03:49 »

c'est pas avec les { }
genre{^http}

Reprenez moi si je dis des betises mes connaissances sur les regex sont assez faibles

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
lordzak

Profil challenge

Classement : 2130/54670

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #6 le: 09 Août 2006 à 13:05:59 »

euh les accolades c'est pour le nb d'occurence... enfin je crois... genre euh aaaah mais oui !!!

vais essayer (http){0} et je vous dis xD
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
lordzak

Profil challenge

Classement : 2130/54670

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #7 le: 09 Août 2006 à 14:25:23 »

et bah non... ca n'a pas d'effet :s
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
pepekiss

Profil challenge

non classé(e).

Membre Junior
**
Hors ligne Hors ligne
Messages: 67


Voir le profil
« #8 le: 09 Août 2006 à 17:16:19 »

si tu veux supprimer les http:// .... essaie ma commande. Normalement elle est bonne (si toutefois j'ai bien compris ce que tu veux faire)
Journalisée
lordzak

Profil challenge

Classement : 2130/54670

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #9 le: 09 Août 2006 à 18:39:49 »

je veux pas les supprimer... je veux ignorer les liens qui en ont...
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
pepekiss

Profil challenge

non classé(e).

Membre Junior
**
Hors ligne Hors ligne
Messages: 67


Voir le profil
« #10 le: 09 Août 2006 à 19:17:42 »

ok ben tu fais :

if (!preg_match("/^http/",$var))
{
ici t'as les liens qui commencent pas par http://
}
Journalisée
lordzak

Profil challenge

Classement : 2130/54670

Membre Senior
****
Hors ligne Hors ligne
Messages: 358


Voir le profil
« #11 le: 09 Août 2006 à 20:33:24 »

bizarre ca ne fonctionne pas, il ignore bien les liens commençant par http... mais aussi tous les autres... voici mon preg_replace :

Citation
$site = preg_replace('#(a|img|link)(.+)(href|action|import|src)[= ]?"^(?:http)(.+)"#iU',"$1$2$3=\"$local/b.php?u=$current_folder/$4\"", $site);
Journalisée

"Il ne faut jamais prendre les gens pour des cons mais il ne faut pas oublier qu'ils le sont."
Pages: [1]
  Imprimer  
 
Aller à: