Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
790 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Tracker une chaine de caractère précise pour en faire un lien ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tracker une chaine de caractère précise pour en faire un lien ?

n°1286839
Odin34
Posté le 18-01-2006 à 17:49:50  profilanswer
 

Salut à tous.
 
Voila je suis au devant d'un petit problème pour mon intranet au travail. J'ai développé un module pour soumettre et gérer des bugs. Dans le formulaire de saisie j'ai plusieurs champs texte. J'aimerai que dés que quelqu'un utilise la syntaxe BR#XXXXX (Ex BR#10235, BR#8000 ....) le transformer en lien hypertexte. Pour ce lien j'ai besoin du numéro.
 
Je n'ai pas de problème pour sauver des liens ni pour les afficher. Mon souci residé dans le fait d'extraire cette chaine d'une autre la transformer en lien puis la réinjecter dans la chaine de départ ?  
 
Je peux chercher les BR#, ce n'est pas trop dur mais comment lui dire BR#XXXXX ou BR#XXXX ???
 
 
Merci de votre aide
(Une solution  en dernier recours ... et d'aider à la création de lien depuis le formulaire)

mood
Publicité
Posté le 18-01-2006 à 17:49:50  profilanswer
 

n°1286849
sielfried
Posté le 18-01-2006 à 17:57:12  profilanswer
 

preg_replace('@BR#[0-9]{4,5}@', '<a href="...">$1</a>');  
 
?
 
(Là j'ai hypothésé qu'il y avait exactement 4 ou 5 chiffres après BR, donc à adapter.)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1286864
Odin34
Posté le 18-01-2006 à 18:08:58  profilanswer
 

je te remercie.
Je te confirme qu'il y a 4 ou 5 chiffre sur.
 
Je teste ça. :)

n°1286887
sielfried
Posté le 18-01-2006 à 18:20:21  profilanswer
 

@\bBR#[0-9]{4,5}\b@ pourrait être plus approprié.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1286909
Odin34
Posté le 18-01-2006 à 18:28:58  profilanswer
 

Dans les 2 cas ca ne marche pas. Il va falloir que je commande un bouquin sur ces expressions régulières car c'est vraiment puissant.
 
Pour le moment je teste comme ça :
$test = "un test pour générer des liens hypertextes #BR11145";
 
$test2 = preg_replace("@BR#[0-9]{4,5}@", "<a href=\"url.php?idbug=$1\">$1</a>", "$test" );  

n°1286913
sielfried
Posté le 18-01-2006 à 18:29:33  profilanswer
 

Faut savoir, le # est avant ou après BR ? -_-


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1286917
sielfried
Posté le 18-01-2006 à 18:33:07  profilanswer
 

Sinon c'est $0 et pas $1, là, en fait.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1286920
Odin34
Posté le 18-01-2006 à 18:35:33  profilanswer
 

sielfried a écrit :

Faut savoir, le # est avant ou après BR ? -_-


 
 
Non apres c'est BR# + 4 ou 5 chiffres

n°1286923
sielfried
Posté le 18-01-2006 à 18:37:40  profilanswer
 

Donc forcément ça va rien remplacer si tu testes sur :
 
$test = "un test pour générer des liens hypertextes #BR11145";  


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1286927
Odin34
Posté le 18-01-2006 à 18:40:19  profilanswer
 

oulalal !!
Désolé !! Je crois que je vais rentrer chez moi la je ne vois plus rien.
 
Encore merci de ton aide ca marche nickel! !!!

mood
Publicité
Posté le 18-01-2006 à 18:40:19  profilanswer
 

n°1287651
Odin34
Posté le 19-01-2006 à 16:09:03  profilanswer
 

Ca marhe toujours. Mainteant j'ai le problème inverse. Lors de la modification de mon formulaire je raffiche le contenu de la base. Je me retrouve avec la balise <a href ..... </a> complete en mode modification.
 
J'ai essayé en vain d'écrire une expression pour ne garder que mon BR#XXXXX.
 
Le but est de virer le <a href ........> dans un premier temps puis le </a> dans un deuxième temps.  Tu as une solution sielfried ??

n°1287668
sielfried
Posté le 19-01-2006 à 16:40:18  profilanswer
 

Code :
  1. $test = preg_replace('@<a href="url.php\?idbug=(BR#[0-9]{4,5})">\1</a>@', '$1', $test);


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1287712
Odin34
Posté le 19-01-2006 à 17:08:58  profilanswer
 

sielfried a écrit :

Code :
  1. $test = preg_replace('@<a href="url.php\?idbug=(BR#[0-9]{4,5})">\1</a>@', '$1', $test);



 
 
Je n'y arrive pas. J'arrive à supprimmer des parties de la chaine mais pas la chaine entière.

n°1287737
sielfried
Posté le 19-01-2006 à 17:26:57  profilanswer
 

Odin34 a écrit :

Je n'y arrive pas. J'arrive à supprimmer des parties de la chaine mais pas la chaine entière.


 
J'ai pas dû comprendre ce que tu veux alors.
 
Ce preg_replace "annule" les liens, c'est ce que j'ai compris. Ca vire la balise html et ne laisse que le BR#XXXX.
 
Qu'est-ce qui ne va pas ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1287745
Odin34
Posté le 19-01-2006 à 17:30:17  profilanswer
 

Oui c'est bien cela que je veux mais ca ne marche pas. Ma chaine d'arrivée est identique à celle de départ.
 

n°1287748
sielfried
Posté le 19-01-2006 à 17:33:52  profilanswer
 

Code :
  1. <?php
  2. $test = 'blabla BR#11145 blabla BR#1541 blabla';
  3. echo $test, "\n\n";
  4. $test = preg_replace('@\bBR#[0-9]{4,5}\b@', "<a href=\"url.php?idbug=$0\">$0</a>", $test); 
  5. echo $test, "\n\n";
  6. $test = preg_replace('@<a href="url.php\?idbug=(BR#[0-9]{4,5})">\1</a>@', '$1', $test); 
  7. echo $test;
  8. ?>


 
me sort :

Citation :


blabla BR#11145 blabla BR#1541 blabla
 
blabla <a href="url.php?idbug=BR#11145">BR#11145</a> blabla <a href="url.php?idbug=BR#1541">BR#1541</a> blabla
 
blabla BR#11145 blabla BR#1541 blabla

Message cité 1 fois
Message édité par sielfried le 19-01-2006 à 17:34:28

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1287765
Odin34
Posté le 19-01-2006 à 17:51:37  profilanswer
 

sielfried a écrit :

Code :
  1. <?php
  2. $test = 'blabla BR#11145 blabla BR#1541 blabla';
  3. echo $test, "\n\n";
  4. $test = preg_replace('@\bBR#[0-9]{4,5}\b@', "<a href=\"url.php?idbug=$0\">$0</a>", $test); 
  5. echo $test, "\n\n";
  6. $test = preg_replace('@<a href="url.php\?idbug=(BR#[0-9]{4,5})">\1</a>@', '$1', $test); 
  7. echo $test;
  8. ?>


 
me sort :

Citation :


blabla BR#11145 blabla BR#1541 blabla
 
blabla <a href="url.php?idbug=BR#11145">BR#11145</a> blabla <a href="url.php?idbug=BR#1541">BR#1541</a> blabla
 
blabla BR#11145 blabla BR#1541 blabla



 
De mon coté aussi.
Par contre lors que j'applique tout ça dans mon forumlaire ca ne marche plus. Les données extraites de la base doivnet être modifiées entre temps.
 
J'ai réussi à obtenir ce que je voulais en utilisant la fonction strip_tags qui permet de faire sauter les balises html et php. Je me retrouve donc avec ce que je veux.
 
J'applique donc ton expression à la sauvegarde et strip_tags à la modification.
 
En tout cas je te remercie vraiment de ton aide.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Tracker une chaine de caractère précise pour en faire un lien ?

 

Sujets relatifs
champ de texte dynamique et caractere gras[VB6] recuperer une chaine dans une chaine...
Transformation de code HTML en chaineConversion ASCII vers un caractère
Formatage d'une chaine XML en arbreRe comment creeer un cd lisible sur pc/ chaine hifi/ lecteur dvd
comment creeer un cd lisible sur pc/ chaine hifi/ lecteur dvdProblème pour insérer un lien hypertexte dans ce forum
[html] Newbie - mon site - lien pour télécharger - Résolu -Lancer une application grâce a un lien HTML
Plus de sujets relatifs à : Tracker une chaine de caractère précise pour en faire un lien ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR