Tracker une chaine de caractère précise pour en faire un lien ? - PHP - Programmation
Marsh Posté le 18-01-2006 à 17:57:12
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.)
Marsh Posté le 18-01-2006 à 18:08:58
je te remercie.
Je te confirme qu'il y a 4 ou 5 chiffre sur.
Je teste ça.
Marsh Posté le 18-01-2006 à 18:20:21
@\bBR#[0-9]{4,5}\b@ pourrait être plus approprié.
Marsh Posté le 18-01-2006 à 18:28:58
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" );
Marsh Posté le 18-01-2006 à 18:29:33
Faut savoir, le # est avant ou après BR ? -_-
Marsh Posté le 18-01-2006 à 18:33:07
Sinon c'est $0 et pas $1, là, en fait.
Marsh Posté le 18-01-2006 à 18:35:33
sielfried a écrit : Faut savoir, le # est avant ou après BR ? -_- |
Non apres c'est BR# + 4 ou 5 chiffres
Marsh Posté le 18-01-2006 à 18:37:40
Donc forcément ça va rien remplacer si tu testes sur :
$test = "un test pour générer des liens hypertextes #BR11145";
Marsh Posté le 18-01-2006 à 18:40:19
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! !!!
Marsh Posté le 19-01-2006 à 16:09:03
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 ??
Marsh Posté le 19-01-2006 à 16:40:18
Code :
|
Marsh Posté le 19-01-2006 à 17:08:58
sielfried a écrit :
|
Je n'y arrive pas. J'arrive à supprimmer des parties de la chaine mais pas la chaine entière.
Marsh Posté le 19-01-2006 à 17:26:57
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 ?
Marsh Posté le 19-01-2006 à 17:30:17
Oui c'est bien cela que je veux mais ca ne marche pas. Ma chaine d'arrivée est identique à celle de départ.
Marsh Posté le 19-01-2006 à 17:33:52
Code :
|
me sort :
Citation : |
Marsh Posté le 19-01-2006 à 17:51:37
sielfried a écrit :
|
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.
Marsh Posté le 18-01-2006 à 17:49:50
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)