Problème dans mon script php
Résolu/Fermé
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
-
18 juin 2008 à 23:28
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012 - 26 juin 2008 à 19:35
Morpheus 50 Messages postés 43 Date d'inscription mercredi 18 juin 2008 Statut Membre Dernière intervention 17 mars 2012 - 26 juin 2008 à 19:35
A voir également:
- Problème dans mon script php
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
71 réponses
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 22:06
23 juin 2008 à 22:06
Peut-être que les gens ne s'arrêtent pas pour répondre lorsqu'il y a quelqu'un par manque de temps ou d'envie ;)
Y a pas mal de questions qui coulent sans jamais recevoir de réponses. ;)
Sinon:
$contenu = nl2br($contenu);
$contenu = preg_replace('#(.+)#isU', '<strong>$1</strong>', $contenu);
$contenu = preg_replace('#(.+)#isU', '<em>$1</em>', $contenu);
$contenu = preg_replace('#(.+)#isU', '<u>$1</u>', $contenu);
$contenu = preg_replace('#<couleur=(white|silver|gray|black|red|maroon|lime|green|yellow|olive|blue|navy|fuchsia|purple|aqua|teal)>(.+)</couleur>#isU', '<span style="color:$1">$2</span>', $contenu);
$contenu = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $contenu);
Le problème avec ce code, c'est que tu lui dis de changer, exemple,:
'#(.+)#isU'
par
'<strong>$1</strong>'
Seulement, si tu veux que l'ordi interprète le code HTML, tu ne dois pas l'écrire comme tu le fais (sous forme d'un caractère)
Donc la deuxième ligne devient:
'<strong>$1</strong>'
Essaie pour voir. Rien à y perdre ;)
PS: je connais pas preg_replace alors je suppose :o
Y a pas mal de questions qui coulent sans jamais recevoir de réponses. ;)
Sinon:
$contenu = nl2br($contenu);
$contenu = preg_replace('#(.+)#isU', '<strong>$1</strong>', $contenu);
$contenu = preg_replace('#(.+)#isU', '<em>$1</em>', $contenu);
$contenu = preg_replace('#(.+)#isU', '<u>$1</u>', $contenu);
$contenu = preg_replace('#<couleur=(white|silver|gray|black|red|maroon|lime|green|yellow|olive|blue|navy|fuchsia|purple|aqua|teal)>(.+)</couleur>#isU', '<span style="color:$1">$2</span>', $contenu);
$contenu = preg_replace('#http://[a-z0-9._/-]+#i', '<a href="$0">$0</a>', $contenu);
Le problème avec ce code, c'est que tu lui dis de changer, exemple,:
'#(.+)#isU'
par
'<strong>$1</strong>'
Seulement, si tu veux que l'ordi interprète le code HTML, tu ne dois pas l'écrire comme tu le fais (sous forme d'un caractère)
Donc la deuxième ligne devient:
'<strong>$1</strong>'
Essaie pour voir. Rien à y perdre ;)
PS: je connais pas preg_replace alors je suppose :o
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
23 juin 2008 à 22:12
23 juin 2008 à 22:12
Désolé maisje n'ai pas du tout compris ce que tu veux dire :D
Je ne remplace pas '#(.+)#isU' par '<strong>$1</strong>' mais '#(.+)#isU' par '<strong>$1</strong>'
Désolé de ma noobité mais j'y peux rien (à part l'experience que j'essaye d'acquérir petit à petit :) )
edit: je viens de me rendre compte que le con de forum (c'est pas moi qui l'a dit :-° ) remplacait la regex par # totu court et c'est pour ça que je comprenais pas ce que tu disais. Enfin je comprends toujours pas mais bon ^^
sinon j'utilise preg_replace parce que j'ai trouvé le code tout pret sur le site du zéro et que cette fonction accepte les regex alors que str_replace je ne crois pas. Mais bon le problème est le même de toutes facon :(
edit2: en fait je crois que ton message a du sens mais que le fofo a transformé la plupart des trucs :(
donc si tu avais un autre moye de me dire ce que tu m'as dis, ou en mettant des espaces aux points sensibles pour empecher le ttruc de s'executer
Je ne remplace pas '#(.+)#isU' par '<strong>$1</strong>' mais '#(.+)#isU' par '<strong>$1</strong>'
Désolé de ma noobité mais j'y peux rien (à part l'experience que j'essaye d'acquérir petit à petit :) )
edit: je viens de me rendre compte que le con de forum (c'est pas moi qui l'a dit :-° ) remplacait la regex par # totu court et c'est pour ça que je comprenais pas ce que tu disais. Enfin je comprends toujours pas mais bon ^^
sinon j'utilise preg_replace parce que j'ai trouvé le code tout pret sur le site du zéro et que cette fonction accepte les regex alors que str_replace je ne crois pas. Mais bon le problème est le même de toutes facon :(
edit2: en fait je crois que ton message a du sens mais que le fofo a transformé la plupart des trucs :(
donc si tu avais un autre moye de me dire ce que tu m'as dis, ou en mettant des espaces aux points sensibles pour empecher le ttruc de s'executer
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 22:26
23 juin 2008 à 22:26
Mais pourquoi tu es aussi obsédé par tes stupides regex loool.
Juste pour rire essaie:
$contenu = nl2br($contenu);
$contenu = str_replace("<gras>","<strong>",$contenu);
$contenu = str_replace("</gras>","</strong>",$contenu);
Bref, si tu veux continuer avec l'autre vas y mais regarde. Je lui dis de remplacer le < par < et non par <. Fait le même genre dans tes propres expressions. Car tu veux que < soit considéré comme HTML et pas comme un simple caractère (ce qui est le cas si tu fais < à la place de <).
Rajoute les points virgules après < et >! STUPIDE FORUM
Juste pour rire essaie:
$contenu = nl2br($contenu);
$contenu = str_replace("<gras>","<strong>",$contenu);
$contenu = str_replace("</gras>","</strong>",$contenu);
Bref, si tu veux continuer avec l'autre vas y mais regarde. Je lui dis de remplacer le < par < et non par <. Fait le même genre dans tes propres expressions. Car tu veux que < soit considéré comme HTML et pas comme un simple caractère (ce qui est le cas si tu fais < à la place de <).
Rajoute les points virgules après < et >! STUPIDE FORUM
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
23 juin 2008 à 22:33
23 juin 2008 à 22:33
Non franchement je m'en fous regex ou pas regex :D
c'est juste que j'avais le code tout près avec mais bon c'est pas grave je veux bien les virer ^^
Je viens d'essayer et ça ne marche pas mieux.
Je veux bien tous les changer si tu dis que c'est mieux pas de problème mais ça ne règle pas le problème :D
De plus avec cette manière je ne sais pas comment faire pour la ligne concernant les couleurs et celle concernant les liens
EDIT: non en fait je viens de refaire un test et cette fois ça marche (avec les regex, parce que c'etait comme ça). Enfin je dis ça marche, cette fois le <gras >***</gras > est bien transformé en <strong >***</strong > mais je vois la balise strong au lieu de voir le texte en gras
Je pense donc que le probleme vient du html dans le message. Ce qui est etonnant c'est que tout à l'heure ça a marché pour le text!
c'est juste que j'avais le code tout près avec mais bon c'est pas grave je veux bien les virer ^^
Je viens d'essayer et ça ne marche pas mieux.
Je veux bien tous les changer si tu dis que c'est mieux pas de problème mais ça ne règle pas le problème :D
De plus avec cette manière je ne sais pas comment faire pour la ligne concernant les couleurs et celle concernant les liens
EDIT: non en fait je viens de refaire un test et cette fois ça marche (avec les regex, parce que c'etait comme ça). Enfin je dis ça marche, cette fois le <gras >***</gras > est bien transformé en <strong >***</strong > mais je vois la balise strong au lieu de voir le texte en gras
Je pense donc que le probleme vient du html dans le message. Ce qui est etonnant c'est que tout à l'heure ça a marché pour le text!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 22:41
23 juin 2008 à 22:41
As-tu changé dans tes regex le < que tu avais écrit avec le code pour <??
$contenu = preg_replace('#& l t ;gras& g t ;(.+)& l t ;/gras& g t ;#isU', '<strong>$1</strong>', $contenu);
En enlevant les espaces entre les & l t ; et & g t ; (CONNERIE DE FORUM GRRR)
$contenu = preg_replace('#& l t ;gras& g t ;(.+)& l t ;/gras& g t ;#isU', '<strong>$1</strong>', $contenu);
En enlevant les espaces entre les & l t ; et & g t ; (CONNERIE DE FORUM GRRR)
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
23 juin 2008 à 22:44
23 juin 2008 à 22:44
Euh désolé je ne comprend pas ce que tu dis (saleté de noobité :D) mais je crois que ça vient encore une fois du forum qui change ce que tu dis. Seulement je tiens a précisé que j'ai édité le message d'au dessus, je suis pas sur que tu l'ai vu.
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 22:54
23 juin 2008 à 22:54
Mais je copie le texte du lien que tu as donné!
Maudit, comme je fais pour t'expliquer ça -_-
Tu vois, il a une différence entre & l t ; et <.
Pour une page HTML, & l t ; deviendra, à l'affichage, le caractère <. Jusque là tu me suis? LOL
Si tu écris < dans ta page HTML, il ne sera plus là à l'affichage car il sera interprété pour une balise. La seule façon que tu as d'affiché le caractère < sur une page HTML, c'est en écrivant & l t ; .
Quand tu écris & l t ;, tu lui dis que tu veux afficher ce caractère et donc il ne sera pas traiter comme une balise.
Exemple:
Fichier HTML: <strong>
Affichage:
Fichier HTML: & l t ;strong& g t ;
Affichage: <strong>
Tu vois la différence ou je saute par la fenêtre XD
Maudit, comme je fais pour t'expliquer ça -_-
Tu vois, il a une différence entre & l t ; et <.
Pour une page HTML, & l t ; deviendra, à l'affichage, le caractère <. Jusque là tu me suis? LOL
Si tu écris < dans ta page HTML, il ne sera plus là à l'affichage car il sera interprété pour une balise. La seule façon que tu as d'affiché le caractère < sur une page HTML, c'est en écrivant & l t ; .
Quand tu écris & l t ;, tu lui dis que tu veux afficher ce caractère et donc il ne sera pas traiter comme une balise.
Exemple:
Fichier HTML: <strong>
Affichage:
Fichier HTML: & l t ;strong& g t ;
Affichage: <strong>
Tu vois la différence ou je saute par la fenêtre XD
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
23 juin 2008 à 23:01
23 juin 2008 à 23:01
Euh non je crois que tu peux sauter par la fenêtre!
.....
Non attends je déconnais nonnn!!!!!!!!!!!!!!!!!
splach
^^
Nan c'est bon j'ai compris seulement quelles solution me propose tu pour remédier à ce problème?
.....
Non attends je déconnais nonnn!!!!!!!!!!!!!!!!!
splach
^^
Nan c'est bon j'ai compris seulement quelles solution me propose tu pour remédier à ce problème?
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 23:10
23 juin 2008 à 23:10
Mais voilà le problème il est là lol.
Quand tu filtes avec htmlspecialchars, il remplace tous ces fameux < par & l t ;. C'est bien ça, comme ça, pas d'ajout de code indésiré. Cependant, toi, tu veux ramener certaines balises à leur état HTML car tu veux qu'elles prennent effet (mais seulement celle que tu auras choisie). Donc tu mets en place tes regex et ton preg_replace() pour le faire. Mais ton erreur vient que tu remplaces tes & l t ; (remplacé tanto par htmlspecialchars) avec, de nouveau, des & l t ; . Au final, ce n'est toujours pas du code HTML (exemple de tanto ou mon strong s'affichait). Toi tu veux qu'ils soient dans la situation de "affiche rien".
Donc oui, tu remplaces le mot "gras" par "strong". Excellent. Mais tu veux que ce soit du HTML invisible et qui prendra effet (exemple de tanto). Pour qu'il soit invisible, tu dois écrire < et pas & l t ; . Pigé??
Parce:
HTML: & l t ;strong& g t ; salut & l t ;/strong& g t ;
Affichage: <strong>salut</strong>
HTML: <strong>salut</strong>
Affichage: salut (ÉCRIS EN GRAS)
Quand tu filtes avec htmlspecialchars, il remplace tous ces fameux < par & l t ;. C'est bien ça, comme ça, pas d'ajout de code indésiré. Cependant, toi, tu veux ramener certaines balises à leur état HTML car tu veux qu'elles prennent effet (mais seulement celle que tu auras choisie). Donc tu mets en place tes regex et ton preg_replace() pour le faire. Mais ton erreur vient que tu remplaces tes & l t ; (remplacé tanto par htmlspecialchars) avec, de nouveau, des & l t ; . Au final, ce n'est toujours pas du code HTML (exemple de tanto ou mon strong s'affichait). Toi tu veux qu'ils soient dans la situation de "affiche rien".
Donc oui, tu remplaces le mot "gras" par "strong". Excellent. Mais tu veux que ce soit du HTML invisible et qui prendra effet (exemple de tanto). Pour qu'il soit invisible, tu dois écrire < et pas & l t ; . Pigé??
Parce:
HTML: & l t ;strong& g t ; salut & l t ;/strong& g t ;
Affichage: <strong>salut</strong>
HTML: <strong>salut</strong>
Affichage: salut (ÉCRIS EN GRAS)
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 23:15
23 juin 2008 à 23:15
Dans le fichier que tu m'as donné, il y a ça:
$contenu = preg_replace('#& l t ;gras& g t ;(.+)& l t ;/gras& g t ;#isU','& l t ;strong& g t ;$1& l t ;/strong& g t ;', $contenu);
Change par ça:
$contenu = preg_replace('#& l t ;gras& g t ;(.+)& l t ;/gras& g t ;#isU', '<strong>$1</strong>', $contenu);
Enlève les espaces entre les lettres pour & l t ; et & g t ; !!!
$contenu = preg_replace('#& l t ;gras& g t ;(.+)& l t ;/gras& g t ;#isU','& l t ;strong& g t ;$1& l t ;/strong& g t ;', $contenu);
Change par ça:
$contenu = preg_replace('#& l t ;gras& g t ;(.+)& l t ;/gras& g t ;#isU', '<strong>$1</strong>', $contenu);
Enlève les espaces entre les lettres pour & l t ; et & g t ; !!!
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
23 juin 2008 à 23:16
23 juin 2008 à 23:16
Oh nan je suis con à ce point là!!?
J'y crois pas tu me dis ça depuis plusieurs messages et j'ai rien compris mdr
Merci beaucoup ça marche très bien!
T'es vraiment sympa de m'avoir aidé!!!
Si des fois j'ai d'autres problèmes je reposterais
a+
J'y crois pas tu me dis ça depuis plusieurs messages et j'ai rien compris mdr
Merci beaucoup ça marche très bien!
T'es vraiment sympa de m'avoir aidé!!!
Si des fois j'ai d'autres problèmes je reposterais
a+
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 23:18
23 juin 2008 à 23:18
Ça a été long mais finalement on y est arrivé >_<
Pour les autres problèmes euh... *reste près de la fenête*
MOUAHAHAHAHAHA!!!!
A++
Pour les autres problèmes euh... *reste près de la fenête*
MOUAHAHAHAHAHA!!!!
A++
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
23 juin 2008 à 23:20
23 juin 2008 à 23:20
:D oui il vaut mieux vu mon niveau :p
Merci beaucoup en tous cas je crois qu'on peut commencer à considérer que mon scipt est quasiment fini (il en a fallu du temps :p )
Merci beaucoup en tous cas je crois qu'on peut commencer à considérer que mon scipt est quasiment fini (il en a fallu du temps :p )
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
23 juin 2008 à 23:22
23 juin 2008 à 23:22
En fait, c'était des erreurs toutes connes et comme tu n'avais pas donné le script complet tout de suite, je ne pouvais pas voir l'erreur du specialchars (que tu as trouvé toi-même donc pas si con que ça lol).
Et puis pour l'autre, ben, finalement t'avais, grâce au specialchars, corrigé le problème mais tu as voulu un peu trop bien le corriger :P
Faudra que tu me donnes ton adresse mail que j'aille tester le script sur toi pour me venger ahah ^^
Et puis pour l'autre, ben, finalement t'avais, grâce au specialchars, corrigé le problème mais tu as voulu un peu trop bien le corriger :P
Faudra que tu me donnes ton adresse mail que j'aille tester le script sur toi pour me venger ahah ^^
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
24 juin 2008 à 00:03
24 juin 2008 à 00:03
Ah ouai mais pas sur le forum lol (a moins que tu veux que je rallie une armée de spammeurs) :o
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
24 juin 2008 à 00:05
24 juin 2008 à 00:05
Oui je t'ai envoyé un mp mais en fait j'ai mis ladresse en anonyyme et je peux plus editer :D
ba c pas grave toutes facons celui qui cherche des email n'a que le choix on en trouve partout ^^
ba c pas grave toutes facons celui qui cherche des email n'a que le choix on en trouve partout ^^
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
24 juin 2008 à 00:14
24 juin 2008 à 00:14
Ahaha.. :P
J'avais pas pensé à fermer ma g**** tanto. Si je m'en étais souvenu, j'aurais pas répondu :o
J'avais pas pensé à fermer ma g**** tanto. Si je m'en étais souvenu, j'aurais pas répondu :o
Morpheus 50
Messages postés
43
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
17 mars 2012
24 juin 2008 à 00:17
24 juin 2008 à 00:17
:D je m'en doutais ^^
X-Fan
Messages postés
805
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
6 janvier 2010
24
24 juin 2008 à 00:20
24 juin 2008 à 00:20
Ahaha ouai. ;)
Tu l'as monté comment ton design graphique au fait? Je veux monter un site mais niveau graphique je suis pas super super quoi. Disons que j'ai pas d'idées (arriver à le faire, je peux toujours m'en sortir car je suis très démerde pour apprendre quand j'ai besoin mais avoir les idées moi je suis pourrie). :P
Tu l'as monté comment ton design graphique au fait? Je veux monter un site mais niveau graphique je suis pas super super quoi. Disons que j'ai pas d'idées (arriver à le faire, je peux toujours m'en sortir car je suis très démerde pour apprendre quand j'ai besoin mais avoir les idées moi je suis pourrie). :P