|
|
|
|
Bonjour
je suis en train de créer un systeme de post qui permetra de poster des cours. L'utilisatur saisi son texte dans un textarea, puis dans la page php correspondante j'enregistre ce texte sur un fichier .txt sur le serveur.
Mon poblème est que les retours à la ligne ne sont pas conservés. J'ai essayé d'utiliser nl2br, et replace, mais ni l'un ni l'autre ne se sont montrés efficaces.
De plus sous I.E et Firefox mes textarea sont interprété comme des zone text simples alors que sous opéra non.
quelqu'un pourrait il m'aider?
voici le script concerné :
<html>
...
<input type="textarea" name="texte" rows="50" cols="200">
Configuration: Windows XP Opera 9.23
Salut,
|
Alors, on se récapitule !!!
echo (nl2br(htmlentities($_POST['textarea']))); qu'est-ce que ça donne ? </edit> [ Mathieu ] Il y a surement des pandas pour ne dépendre de rien |
Il ne produit pas de code, mais il renvoit le texte telquel, avec les retours à la lignes.
Configuration: Windows XP Opera 9.23 |
'htmlentities()' peut prendre le paramètre 'ENT_NOQUOTES' pour ignorer apostrophes et guillemets.
|
En fait ce n'est pas ce que je voulais.
Configuration: Windows XP Opera 9.23 |
Je receptionne ma variable et je la transforme pour la mettre dans mon fichier :
Configuration: Windows XP Opera 9.23 |
Y a moyen de faire beaucoup mieux, c'est sûr !
<object data="file.txt" type="text/plain" width="772px" height="400"> alt : <a href="file.txt">Fichier texte</a> </object> php <?php
ob_start();
include('file.txt');
$text = ob_get_contents();
ob_end_clean();
?>
ce sont des pistes, à mon avis la première n'est pas pratique, la deuxième est à creuser car tu récupères le contenu du fichier texte en l'interprétant comme du php. en <14> tu dis ne pas vouloir de balise mais comment affiches tu le texte ? [ Mathieu ] Il y a surement des pandas pour ne dépendre de rien |
En <14> j'utilise echo, et c'a m'affiche des <br> a la place des retours à la ligne. en fait il me faudrait une fonction qui fasse l'inverse de nb2lr pour l'affichage, ca serai nickel, enfin je crois...
Configuration: Windows XP Opera 9.23 |
Salut,
admin at ninthcircuit dot info
06-Jun-2005 11:00
As stated in the manual above, PHP's nl2br() feature only puts a "<br />" tag before each newline ("\n"). So -- if you intend to code a br2nl() function for yourselves, all you have to do is remove every occurence of "<br />" or "<br>".
Rather than get into nasty regular expressions to accomplish this, just use what PHP has built in already -- str_replace():
<?php
/* br2nl for use with HTML forms, etc. */
function br2nl($text)
{
/* Remove XHTML linebreak tags. */
$text = str_replace("<br />","",$text);
/* Remove HTML 4.01 linebreak tags. */
$text = str_replace("<br>","",$text);
/* Return the result. */
return $text;
}
?>
The final result from this function being called is whatever was entered before XHTML/HTML linebreaks were added.
All newlines are preserved by default, as per PHP ln2br() specification. Since the code above preserves newlines also, you can expect your data to reappear in the same way it was entered.
[ Mathieu ] Il y a surement des pandas pour ne dépendre de rien |