|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
Modibo WRInaute discret

Inscrit le: 28 Mar 2005 Messages: 81
|
Posté le : Sam Jan 12, 2008 15:47 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
Bonjour
Je possède un forum sur lequel j'essaye de Rewriter uniquement 1 Lien sous forme "showforum=1" en "Titre-f1.html"
Voici le code qui concerne la règle de réécriture
| Code: |
| $this->ipsclass->skin['_wrapper'] = preg_replace("'{$boardurl}\?showforum=1'","{$this->ipsclass->vars['board_url']}/Titre-f1.html",$this->ipsclass->skin['_wrapper']); |
Ca se passe très bien... Seulement malheureusement cette règle réécrira aussi les lien de type " "showforum=10" "showforum=11" "showforum=12"...
Comment indiquer la fin de la chaine pour que seul "showforum=1" soit réécrit et pas les autres
Merci  |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2987 Localisation: Bangalore +4h30
|
Posté le : Sam Jan 12, 2008 17:20 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
en testant le caractere suivant (ici il ne doit pas etre un chiffre), c'est un peu retord mais ca marche
| Code: |
| $pattern = "#\?showforum=(1)?[^0-9]#i"; |
|
|
| |
|
 |
Hearty WRInaute occasionnel

Inscrit le: 23 Fév 2004 Messages: 138
|
Posté le : Sam Jan 12, 2008 17:25 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
| Ben avec le $ en caractère de fin de chaine çà marche pas ? |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2987 Localisation: Bangalore +4h30
|
Posté le : Sam Jan 12, 2008 17:43 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
c'est la syntaxe PCRE qu'utilise Apache dans son moteur de réécriture mais les delimitateurs de fin sont differents ( # ou ' pour les PCRE )
... son probleme n'est pas la puisque les délimitateurs sont placés, il est dans la capture. |
|
| |
|
 |
Modibo WRInaute discret

Inscrit le: 28 Mar 2005 Messages: 81
|
Posté le : Sam Jan 12, 2008 18:25 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
| KOogar a écrit: |
en testant le caractere suivant (ici il ne doit pas etre un chiffre), c'est un peu retord mais ca marche
| Code: |
| $pattern = "#\?showforum=(1)?[^0-9]#i"; |
|
J'ai teste et malheureusement les liens ne sont pas réécrits, ça n'y fait rien  |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2987 Localisation: Bangalore +4h30
|
Posté le : Sam Jan 12, 2008 19:38 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
| Code: |
<?php
$subjects = "*******?showforum=1*******";
$subjects = preg_replace("#\?showforum=(1)?[^0-9]#i","/Titre-f1.html",$subjects);
print_r("$subjects");
# AFFICHE
# *******/Titre-f1.html******
$subjects = "*******?showforum=10*******";
$subjects = preg_replace("#\?showforum=(1)?[^0-9]#i","/Titre-f1.html",$subjects);
print_r("$subjects");
# AFFICHE
# *******?showforum=10*******
?> |
| Code: |
$this->ipsclass->skin['_wrapper'] = preg_replace("'{$boardurl}\?showforum=(1)?[^0-9]'","{$this->ipsclass->vars['board_url']}/Titre-f1.html",$this->ipsclass->skin['_wrapper']);
|
chez moi ca marche, mais ce n'est pas ca ce que tu veux faire ? |
|
| |
|
 |
Modibo WRInaute discret

Inscrit le: 28 Mar 2005 Messages: 81
|
Posté le : Sam Jan 12, 2008 20:02 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
En effet sans le #i les liens sont bien réécrits Merci à toi sauf que le guillemet derrière n'est pas pris en compte à cause du "?" et on se retrouve avec un lien "http://***Titre.html title="
l'antislash ne résout pas le problème comme avec le "?" de juste avant dans le lien |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2987 Localisation: Bangalore +4h30
|
Posté le : Dim Jan 13, 2008 4:26 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
| Code: |
| $this->ipsclass->skin['_wrapper'] = preg_replace("'{$boardurl}\?showforum=1[^0-9]'","{$this->ipsclass->vars['board_url']}/Titre-f1.html",$this->ipsclass->skin['_wrapper']); |
j'avais mis le "?" au cas ou tu chercherais d'autre valeur que 1( tu n'avais pas donner avant le contenu de la chaine de travail -> "http://***Titre.html title=" ), ca etant enleve le, ca ne changera rien au masque sauf ca devrait prendre en compte le guillement maintenant et matcher avec le masque. |
|
| |
|
 |
Modibo WRInaute discret

Inscrit le: 28 Mar 2005 Messages: 81
|
Posté le : Jeu Jan 17, 2008 21:18 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
Re KOogar
Merci pour ton aide
Je vais voir comment je peux faire pour arranger ça
A toute |
|
| |
|
 |
Modibo WRInaute discret

Inscrit le: 28 Mar 2005 Messages: 81
|
Posté le : Jeu Jan 17, 2008 22:31 Sujet du message: Rewriter juste UN lien, faire savoir la fin de la chaine $ |
|
|
Voilà je viens de terminer, j'ai réussi en ajouant un secon " derrière un antislash pour qu'il soit pris en compte sans faire bugger le code, ce qui fait à la fin: Titre-f1.html\""
J'espère que ça n'a aucune incidence négative.... sur le premier " qui n'était pas pris en compte juste avant.
| Code: |
| $this->ipsclass->skin['_wrapper'] = preg_replace("'{$boardurl}\?showforum=1[^0-9]'","{$this->ipsclass->vars['board_url']}/Titre-f1.html\"",$this->ipsclass->skin['_wrapper']); |
Encore Merci KOogar  |
|
| |
|
 |
| |
|
|