Aller au contenu

aide pour un Ereg qui supprime mes ids de sessions


Toucouleur

Sujets conseillés

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 !

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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...

Lien vers le commentaire
Partager sur d’autres 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)...

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...