Mise en forme de texte saisi par l'utilisateur

Résolu
goldfingers_suisse Messages postés 29 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 7 décembre 2006 - 7 déc. 2006 à 13:36
goldfingers_suisse Messages postés 29 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 7 décembre 2006 - 7 déc. 2006 à 20:35
J'ai une petite question...

Je dévellope une application web permettant d'ajouter et d'éditer des news.
La news est à saisir dans une textarea. Je permet à l'utilisateur de faire des mises en forme avec des balise telle que {b}texte en gras{/b}, que je remplace, lors de l'ajout dans la BD par les balises correspondantes en html.
J'aimerais faire la même chose pour les liens hypertext. Mais, autant pour la mise en forme, il suffit d'utiliser "ereg_replace", autant là, il faut que je puisse trouver ce qu'il y a entra la balise de début qui serait par exemple {a} et la balise de fin, par exemple {/a}. Et ceci en php

Un exemple plus concret serait que l'utilisateur saisirait : "{a}http://www.phpcs.com{/a}"
Dans la base de données, il faudrait que ca soit écrit : "["

Merci d'avance de vos conseils, de vos pistes ou autres que vous pourrez me donner

12 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 déc. 2006 à 18:13
Hello,

vas voir du côté des expressions régulières. En cherchant un peu, tu en trouveras même de toutes faites qui créeront une balise avec un lien valide.
3
goldfingers_suisse Messages postés 29 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 7 décembre 2006
7 déc. 2006 à 20:35
Merci !

J'ai trouvé ceci si jamais :
http://www.phpcs.com/codes/TRANSFORMER-URL-LIEN-CLIQUABLE_12798.aspx

Encore merci
3
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
7 déc. 2006 à 13:48
Pourquoi  tu n'utilise pas ça a l affichage.
c'est a dire, tu insère dans la base http://www.phpcs.com
et ds le code php

$req=mysql_query("select url from table");
$url=mysql_result($req,0,"url");

echo '[$url ]

ça te va ?
0
goldfingers_suisse Messages postés 29 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 7 décembre 2006
7 déc. 2006 à 13:55
Ca ne me dérange d'utiliser ceci à l'affichage.
Seulement, dans ce cas là, il n'est pas possible d'avoir plusieurs adresse stockée dans la base ? Ou est-ce que je me trompe.

Et, le problème est qu'il peut y avoir du texte du genre :
Lors de ce voyage, nous seront hébergé à l'hôtel xyz (http://www.hotelxyz.com) situé dans le nord est de bla bla bla

Je ne suis pas sûr que ta solution fonctionne comme ça, je vais encore me renseigner sur les fonctions que tu m'as transmises

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
7 déc. 2006 à 14:01
Alors si tu en as plusireus tu fs :

$req=mysql_query("select url from table") or die(mysql_error());
if(mysql_fetch_row($req)>0)
{
   while($array = mysql_fetch_array($req))
         {
            echo '[$url ] 
';
         }
}
else
 echo 'aucun enregistrement n\ a ete trouve dans la base de donnees';

Et là tu es satisfé ?.
0
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
7 déc. 2006 à 14:07
$req=mysql_query("select nom,adresse,url from hotel") or die(mysql_error());
if(mysql_fetch_row($req)>0)
{ $affiche ='Nom, Adresse, SiteWeb, '
   while($array = mysql_fetch_array($req))
         {
            $affiche .= '----

'.$array['nom'].',
'.$array['adresse'].',
,  ';
         }
$affche .='
';

echo $affiche;
}
else
 echo 'aucun enregistrement n\ a ete trouve dans la base de donnees';

Desolé si je me trompe car j ai ecrit ça directement ici
0
goldfingers_suisse Messages postés 29 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 7 décembre 2006
7 déc. 2006 à 14:07
En fait, il manque encore tout le texte à afficher.
Donc, j'aurais ça dans ma base de données :
"du texte du texte http://www.site.com encore du texte et aussi http://www.autresite.com et encore du texte"

A modifier avec les balises
0
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
7 déc. 2006 à 14:15
$req=mysql_query("select nom,adresse,url,blabla from hotel") or die(mysql_error());
if(mysql_fetch_row($req)>0)


   echo 'Nom, Adresse, SiteWeb, blabla, ';

   while($array = mysql_fetch_array($req))
         {
            echo  '----

            '.$array['nom'].',
            '.$array['adresse'].',
            ,
            '.$array['blabla'].',
             ';
         }
            echo '
';

}
else
 echo 'aucun enregistrement n\ a ete trouve dans la base de donnees';

Tu veux ça, ça c bon, pour toi
0
goldfingers_suisse Messages postés 29 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 7 décembre 2006
7 déc. 2006 à 14:20
En fait, ça, c'est si l'url était séparée dans la base de données.

Je me suis peut-être mal expliqué

Dans mon cas, c'est vraiment un bloc ou l'utilisateur saisit un texte qui peut contenir une voire plusieurs url.

Il n'y a donc qu'un seul champ nommé : "contenu". Qui contient le contenu de la news.

C'est à l'intérieur de ce champ "TEXT" que je dois effectuer les modifications.
0
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
7 déc. 2006 à 14:22
je suppose que ta table 'Hotel' a comme champs (nom,adresse,url,blabla)
avec
nom = nom de l hotel ( Cheraton par exemple).
adresse = adresse de l hotel.
url = l adresse web de l hotel
blabla autre champs
Remarque, tu peux ajouter ,
url1 = site web numero1
url2 = site web numero 2
dans ce cas :
<td>['.$array['url1'].' ]</td>
<td>['.$array['url2'].' ]</td>
<td>'.$array['blabla'].'</td>

Dis moi si c bon?
0
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
7 déc. 2006 à 14:25
Tu as mal fait la conception.
Si tu veux la garder, dans ce cas tu dois utiliser des fonctions de php, pour extraire du texte, ça sera difficile, => je te conseil de refaire la base, avec l exemple si dessus, je dis pas que c le meilleur mais ça va fonctionner correctement
0
goldfingers_suisse Messages postés 29 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 7 décembre 2006
7 déc. 2006 à 14:31
Non, en fait, j'ai une table news

Avec les champs :
new_id, INT(10)
new_date, DATETIME
new_titre, VARCHAR(100)
new_contenu, TEXT

L'utilisateur saisit un titre, par exemple :
"Informations générales"

Ensuite, l'utilisateur saisi le contenu de la news, par exemple :
"...Lors de ce tournoi international, nous jouerons contre les équipes suivantes : FC XYZ (www.fcxyz.com), FC ABC (www.fcabc.com),...
Pour toutes informations concernant le tournoi, veuillez vous dirigez sur www.tournoi-international.com"

Et là, il faudrait que je traite chaque URL, pour que... en html, il y ait ceci :
"...Lors de ce tournoi international, nous jouerons contre les équipes suivantes : FC XYZ ([www.fcxyz.com), FC ABC ([www.fcabc.com),...
Pour toutes informations concernant le tournoi, veuillez vous dirigez sur [www.tournoi-international.com"

Voila, c'est ça que je devrais faire
0
Rejoignez-nous