Formulaire pour forum - {enter} {espace} smiley, images... [PHP] - PHP - Programmation
Marsh Posté le 07-09-2002 à 11:53:55
pour faire apparaitre les saut de ligne : nl2br($texte);
Sinon, utilise les preg_replace pour remplacer tt tes trucs
Marsh Posté le 07-09-2002 à 12:09:42
merci pour le nl2br()
donc par ex je pourrais faire un truc du genre :
$search = array ( ":-)" , ";-)" ) ;
$replace = array ( "<img src="sourire.gif">" , "<img src="clin_d_oeil.gif">" ) ;
$message = preg_replace ($search, $replace, $message);
c'est bien ça ?
Marsh Posté le 07-09-2002 à 21:00:00
voila, enfin c qqch dans le genre.
Mais par contre, limite le nb de remplacement (je crois que il i a un 3ème argument avec la fn), car si il en a bcp ça prend bcp de temps.
Le forum limite à 10 je crois
Marsh Posté le 08-09-2002 à 00:04:07
mmm j'arrive pas à faire marcher cette satané fonction
mon <form> envoye les valeurs $pseudo et $message dans ce bout de code, ou j'essaie de remplacer le mot bip par le mot bop dans le $message
$message = preg_replace ("bip","bop","$message" );
$datetime = date("Y-m-d H:i" ) ;
$db = mysql_connect("$localhost","$login","$pswrd" ) ;
mysql_select_db("eniacopolis_db",$db) ;
$query_result=mysql_query("INSERT INTO forum_rheto VALUES ('$pseudo','$message','$datetime'" ) ;
mysql_close() ;
Et quand ce truc arrive dans la base de donnée, le champ $message est vide
Marsh Posté le 08-09-2002 à 00:22:27
par contre
$message = ereg_replace ("bip","bop","$message" );
ça ça marche... mais ça prend pas les array
Marsh Posté le 08-09-2002 à 02:13:42
Eniac a écrit a écrit : mmm j'arrive pas à faire marcher cette satané fonction mon <form> envoye les valeurs $pseudo et $message dans ce bout de code, ou j'essaie de remplacer le mot bip par le mot bop dans le $message $message = preg_replace ("bip","bop","$message" ); $datetime = date("Y-m-d H:i" ) ; $db = mysql_connect("$localhost","$login","$pswrd" ) ; mysql_select_db("eniacopolis_db",$db) ; $query_result=mysql_query("INSERT INTO forum_rheto VALUES ('$pseudo','$message','$datetime'" ) ; mysql_close() ; Et quand ce truc arrive dans la base de donnée, le champ $message est vide |
c'est pas
$message = preg_replace ("bip","bop","$message" );
mais
$message = preg_replace ("/bip/","bop","$message" ); (par exemple)
RTFM !
sinon pour des trucs aussi simple à matcher utilise
$message = str_replace ("bip","bop","$message" );
je déconseille par contre fortement l'utilisation de ereg_replace
Marsh Posté le 08-09-2002 à 11:22:03
joce a écrit a écrit : c'est pas $message = preg_replace ("bip","bop","$message" ); mais $message = preg_replace ("/bip/","bop","$message" ); (par exemple) RTFM ! sinon pour des trucs aussi simple à matcher utilise $message = str_replace ("bip","bop","$message" ); je déconseille par contre fortement l'utilisation de ereg_replace |
T'y connais quoi en forum toi ?
J'ai essayé tout ce que tu as dit, juste sur toute la ligne
Dans la doc de nexen ils disent "si vous n'avez pas besoin de règles de remplacement sophistiquées, utilisez de préférence str_replace à ereg_replace et preg_replace", mais ils n'expliquent pas pourquoi Les intitulés de ces 3 fonctions sont quasi les même (sauf pas d\'array dans ereg_replace)
Prq tu l'aimes pas celle là ?
Merci en tout cas, A+
Marsh Posté le 08-09-2002 à 12:06:19
preg_replace est bcp plus rapide que ereg_replace, et utilise les regexs de type perl.
et str_replace est encore plus rapide que preg_replace vu que ca ne teste pas les regexs
Marsh Posté le 08-09-2002 à 12:14:07
Marsh Posté le 08-09-2002 à 12:48:38
Eniac a écrit a écrit : Salut, Je fais un mini-forum php (vraiment simple) couplé avec une base de donnée PHPMyAdmin de Multimania (j'ai 3 champs : pseudo, message, datetime) J'aimerais savoir si ma méthode pour afficher des smiley est bonne : l'utilisateur tape son message avec un ";-)" , puis là je crée une fonction qui recherche dans tout le message ";-)" et je remplace ça par <img src="smile.gif"> J'ai l'impression que ça va être un peu bourrin si je met 3-4 smiley, puis faire la même chose pour les images, les url Aussi, un truc tout con, comment fait-on les retours à la ligne ??? Il faut remplacer quoi par <br> ? Merci A+ P.S. je veux pas de forum tout fait genre phpBB, mon but c'est de faire un p'tit truc moi même |
Si tu veux, j'ai mis en ligne ce matin sur ce forum ce qu'il faut pour remplacer les smilies et les codes de mise en forme de texte.
Ca utilise une base de donnée ce qui permet de remplacer des valeurs ou d'en rajouter sans passer son temps à modifier le source.
Par contre, j'ai pas encore écrit la partie qui met à jour les donnés de la base.
Il me manque une fonction pour le faire et j'attends de voir un peu si personne sur ce forum ne peut m'aider à la faire.
Marsh Posté le 08-09-2002 à 13:01:38
c'est gentil, mais je crois que c'est inutile de sortir l'artillerie pour ce que j'ai à faire.
J'ai juste 5 trucs maximum à chercher et à remplacer, ça me prend 5 lignes, et ça doit pas être méchant du côté ressources.
Quand je vois ton code, aooooouuuuuuuuu
Chuis encore newbie en php, j'y comprend que dale.
Merci quand même, j'espère que tu trouveras vite de l'aide
Marsh Posté le 08-09-2002 à 13:22:31
Eniac a écrit a écrit : c'est gentil, mais je crois que c'est inutile de sortir l'artillerie pour ce que j'ai à faire. J'ai juste 5 trucs maximum à chercher et à remplacer, ça me prend 5 lignes, et ça doit pas être méchant du côté ressources. Quand je vois ton code, aooooouuuuuuuuu Chuis encore newbie en php, j'y comprend que dale. Merci quand même, j'espère que tu trouveras vite de l'aide |
faut mieux pas que je te sorte une regex alors
Marsh Posté le 08-09-2002 à 13:35:52
des petits comme ça
http://www.phpinfo.net/?p=prog&rub=regex
ça va encore (enfin, y'a certaines où je sêche), faudrait pas plus compliqué
Marsh Posté le 08-09-2002 à 13:41:36
et des comme ca ? :
$variable = preg_replace_callback('/\[\*\](.+?)(\n[^(\[*\])]|$)/is','li',$variable);
Marsh Posté le 08-09-2002 à 13:46:55
j'ai du mal à croire qu'un truc si horrible puisse servir à autre chose qu'à dégoûter un newbie du php
Marsh Posté le 08-09-2002 à 13:58:19
Eniac a écrit a écrit : j'ai du mal à croire qu'un truc si horrible puisse servir à autre chose qu'à dégoûter un newbie du php |
c'est dans le code du forum pourtant
Marsh Posté le 08-09-2002 à 14:03:48
maintenant je comprend mieux ta signature
Marsh Posté le 08-09-2002 à 14:04:43
forum2.php3 fait quand même 100565 octets
Marsh Posté le 08-09-2002 à 14:09:29
le mien fait déjà 9.119 octets, et j'ai quasi rien géré...
honnêtement je pensais que ça ferait beaucoup plus.
t'as pas les chiffres de la taille occupée par la base de donnée avec tous nos messages ?
/home/mysql/Hardwarefr reiserfs /dev/sdc1 51% 3.44 GB 3.51 GB 6.95 GB
c'est cette ligne là ?
Marsh Posté le 08-09-2002 à 14:16:27
Eniac a écrit a écrit : le mien fait déjà 9.119 octets, et j'ai quasi rien géré... honnêtement je pensais que ça ferait beaucoup plus. t'as pas les chiffres de la taille occupée par la base de donnée avec tous nos messages ? /home/mysql/Hardwarefr reiserfs /dev/sdc1 51% 3.44 GB 3.51 GB 6.95 GB c'est cette ligne là ? |
ba c'est que forum2
forum fait 20962
forum1 fait 93713
message fait 53619
bdd fait 81591
etc
sinon oui c'est cette ligne
Marsh Posté le 08-09-2002 à 14:25:15
ah, il me semblait aussi
ce qui me fait le plus marrer c'est le nombre de variables que tu passes à chaque fois par l'adresse
Marsh Posté le 08-09-2002 à 14:29:34
joce a écrit a écrit : forum2.php3 fait quand même 100565 octets |
Heu ... C'est quoi qu'y fait que c'est si gros?
bon, ok, mon site, il a pas encore de véritable partie d'administration mais un chat, un forum (pas tout à fait finis), la page de lien, la récapitulation de l'avancement du site, la gestion des modèles ......
J'en arrive à un total inférieur à 200 Ko. (bon, en fait, ca augmente vite, mais mon plus gros fichier, il fait que 24 Ko. )
Pour la partie forum, ca tiens en 90 Ko en comptant tout ce qui est commun au forum et aux autres parties du site. (moins de 30 Ko si on prends que la partie propre au forum)
Marsh Posté le 08-09-2002 à 14:34:24
plein de chose fait que c'est si gros
je crois que l'intégralité du code fait environ 1.4 Mo
Marsh Posté le 08-09-2002 à 14:40:05
joce a écrit a écrit : plein de chose fait que c'est si gros je crois que l'intégralité du code fait environ 1.4 Mo |
Ha oui, quand même.
J'en suis loin là. Soyont donc heureux, on a donc encore de la marge pour faire aussi bien que toi.
Bon, pour la taille de ce forum, je pense que le système des multipseudo lié et la colorisation du code C/C++ ca a du alourdir la taille totale.
Marsh Posté le 08-09-2002 à 14:41:00
pour les multipseudos pas tant que ca
Marsh Posté le 08-09-2002 à 14:46:55
joce a écrit a écrit : pour les multipseudos pas tant que ca |
En tout cas, sur ce point là, je crois bien que j'aurais du mal à faire aussi bien que toi.
Marsh Posté le 08-09-2002 à 14:52:33
c'est quoi cette histoire de multipseudos ?
Marsh Posté le 08-09-2002 à 15:19:32
Eniac a écrit a écrit : c'est quoi cette histoire de multipseudos ? |
Ben quand t'as plusieurs pseudos qui sont utilisé depuis la même machine, ce forum le détecte et considère a partir de ce moment là que ce n'est qu'une seule et même personne qui les utilise.
Marsh Posté le 07-09-2002 à 11:50:02
Salut,
Je fais un mini-forum php (vraiment simple) couplé avec une base de donnée PHPMyAdmin de Multimania (j'ai 3 champs : pseudo, message, datetime)
J'aimerais savoir si ma méthode pour afficher des smiley est bonne : l'utilisateur tape son message avec un ";-)" , puis là je crée une fonction qui recherche dans tout le message ";-)" et je remplace ça par <img src="smile.gif">
J'ai l'impression que ça va être un peu bourrin si je met 3-4 smiley, puis faire la même chose pour les images, les url
Aussi, un truc tout con, comment fait-on les retours à la ligne ??? Il faut remplacer quoi par <br> ?
Merci A+
P.S. je veux pas de forum tout fait genre phpBB, mon but c'est de faire un p'tit truc moi même
---------------
If you really want something, all the Universe conspires in helping you to achieve it.