Jump to content
Sign in to follow this  
Toucouleur

aide pour un Ereg qui supprime mes ids de sessions

Recommended Posts

je pleure à chaque fois qu'il faut que je m'y mette mais c'est pas faute d'essayer.

J'ai du texte avec des liens dedans genre :

Il a fallu une dizaine de jours aprés la découverte d'une faille critique pouvant affecter le navigateur pour que la fondation Mozilla finalise cette version insensible à cette nouvelle vulnérabilité. http://www.monlien.com/index.php?t=12&SID=12345&toto=2 Il a fallu une dizaine de jours aprés la découverte d'une faille critique pouvant affecter le navigateur pour que la fondation Mozilla finalise cette version insensible à cette nouvelle vulnérabilité. http://www.deuxliens.com/index.php?SID=abcdefgh12355 Il a fallu une dizaine de jours aprés la découverte d'une faille critique pouvant affecter le navigateur pour que la fondation Mozilla finalise cette version insensible à cette nouvelle vulnérabilité.

notez que les deux liens http://www.monlien.com/index.php?t=12&SID=12345&toto=2

et http://www.deuxliens.com/index.php?SID=abcdefgh12355 ne sont pas construits pareils du coup pas moyen de tenter le bon vieux strlen puis strpos et j'en passe.

Comment donc faire avec notre merveilleux Ereg ?

Merci beaucoup par avance !

Share this post


Link to post
Share on other sites

Salut,

L'idée sans doute est de prendre la zone qui se trouve entre http et l'espace qui suit.

A farfouiller... Je vais voir ce que je peux trouver :)

Share this post


Link to post
Share on other sites

je travaille dessus, masi définitivement ces eregs me rendent fous... et comme j'oubli la moitié des syntaxes à chaque fois que je dois remettre le nez dedans...

c'est sympa Seb d'avoir répondu ;)

Share this post


Link to post
Share on other sites

Essaye :

Si tu cherche dans $chaine.

ereg("http[.]{1,} ", $chaine, $res);

le resultat sera mis dans $res[0]...

Share this post


Link to post
Share on other sites

Salut Toucouleur,

Essaies avec ces deux lignes, en séquence:

$url=ereg_replace("SID=[^&]+&?","",$url);
$url=ereg_replace("[?&]$","",$url);

La seconde ligne permet de virer un éventuel ? ou & en fin d'URL.

Cela devrait te convenir.

Dan

Share this post


Link to post
Share on other sites

Mention spéciale pour Dan, merci !

Un détail néanmoins avec cette méthode si je fais ceci :

<?php

$url = "I've written about Siege here before, incredible photographer? Sure. Dealing with loss and intense emotional drain after hurricane Katrina? Yeah that too.

Clayton bought his Mom a trailer, a week later it was destroyed in Katrina. He didn't know where she was for an age, with vague possibles of she's in a shelter. He's found her now, and she's pretty much ok, although her dignity is temporarily damaged.

He's now out there, photographing and talking to [url="http://www.test.com/page=45.html?SID=342424255"]http://www.test.com/page=45.html?SID=342424255[/url] people he grew up with, images and elements of his past changed and broken into barely recognisable shadows.

I can't really begin to understand what he's going through right now, but seeing the loss and devastation visited on

...these people (that) had so little, and yet lost so much. And it won't be long before they're totally forgotten and ignored again, like they've always been.";

$url=ereg_replace("SID=[^&]+&?","",$url);
$url=ereg_replace("[?&]$","",$url);

echo $url;

?>

ça marche plus trop car il va couper après le SID. Si par contre mon url est http://www.test.com/page=45.html?SID=342424255&toto=tata tout fonctionne bien

Share this post


Link to post
Share on other sites

Je te dirais que le texte que tu donnes n'est pas vraiment une URL :lol:

Je n'avais pas percuté que tu cherchais à les extraire du texte...

Tu cherches à faire quoi ? extraire les URLs seulement, en supprimant les SID? Ou alors ne supprimer que les SID et laisser le texte avec les URLs ?

Dans ce cas, il suffit de remplacer les deux lignes par:

$url=ereg_replace("SID=[^& ]+&?","",$url);
$url=ereg_replace("(http://[^ ]+)\? ","\\1 ",$url);

La deuxième ligne permet de supprimer un éventuel '?' qui traîne en fin d'URL.

;) Dan

Share this post


Link to post
Share on other sites

l'objectif de ce truc c'est de trouver le moyen de supprimer les sessions Id que les gens recopient et balancent dans le forum http://www.kitesurf.fr/ car ces SID polluent le référencement des pages qui pourraient interesser GG.

<?php

$url = "I've written about Siege here before, incredible photographer? Sure. Dealing with loss and intense emotional drain after hurricane Katrina? Yeah that too.

Clayton bought his Mom a trailer, a week later it was destroyed in Katrina. He didn't know where she was for an age, with vague possibles of she's in a shelter. He's found her now, and she's pretty much ok, although her dignity is temporarily damaged.

He's now out there, photographing and talking to http://www.test.com/page=45.html?SID=342424255&toto=12 people he grew up with, images and elements of his past changed and broken into barely recognisable shadows.

I can't really begin to understand what he's going through right now, but seeing the loss and devastation visited on

...these people (that) had so little, and yet lost so much. And it won't be long before they're totally forgotten and ignored again, like they've always been.";

$url=ereg_replace("SID=[^& ]+&?","",$url);
$url=ereg_replace("(http://[^ ]+)\?","\\1",$url);

echo $url;

?>

si je fais ceci, cela fonctionne sauf que l'url va donc devenir : http://www.test.com/page=45.htmltoto=12 et ce coup çi il me manque le "?" avant toto.

quand j'ai posté ce topic j'essayai de faire un ereg qui aurait vocation à me virer sid=[chaine alpha numérique uniquement] avec la commande [[:alnum:]] mais je n'y étais pas parvenu...

Share this post


Link to post
Share on other sites
$url=ereg_replace("SID=[^& ]+&?","",$url);

$url=ereg_replace("(http://[^ ]+)\?","\\1",$url);

$url = ereg_replace("SID=[^& ]+", "", $url), tout simplement.

Le reste est inutile.

Share this post


Link to post
Share on other sites

Bonjour,

je suis pas très expression rationnelle ;) Mais c'est un choix personnel, c'est plus puissant et dans certains cas plus performant d'après le manuel PHP...

$url=preg_replace(array("/\?SID=[^&]+&/i",
                       "/&SID=[^&]+&/i",
                       "/\?SID=[^&^\s]+/i",
                       "/&SID=[^&^\s]+/i"),
                 array("?",
                       "&",
                       "",
                       ""),
                 $url);
echo $url;

Si tu veux vraiment, on peut remplacer avec des ereg_replace, mais il faut les écrire à nouveau (expressions rationnelles != expressions régulières)...

Share this post


Link to post
Share on other sites

Salut,

J'avais oublié un espace après le ? ... cela devrait marcher maintenant :)

Dan

Share this post


Link to post
Share on other sites

merci beaucoup à tous pour votre aide, je comprend mieux aussi les EREGs

merci encore à tous

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...