web-dev-qa-db-fra.com

Conserver les sauts de ligne dans la zone de texte

J'ai un formulaire avec un textarea et je veux conserver les sauts de ligne entrés par l'utilisateur lors de la sortie du contenu.

Par exemple, si j'écris dans textarea: 

Voici une phrase. En voici un autre. en voici un de plus.

Ceci est un nouveau paragraphe. Voici une nouvelle phrase. En voici un autre.

Je veux la même sortie et pas

Voici une phrase. En voici un autre. en voici un de plus. C'est un nouveau paragraphe. Voici une nouvelle phrase. En voici un autre.

Comment pourrais-je préserver les sauts de ligne?

27
Simon M.

Généralement, il vous suffit d'ajouter

  • white-space: pre-line; espaces coupés en espaces simples ou

  • white-space: pre-wrap; tous les espaces sont préservés

au style de l'élément (CSS), où vous voulez que votre texte soit rendu avec des sauts de ligne.

72
Vaidotas Pocius

Les sauts de ligne de l'utilisateur entré sont conservés, ni le HTML ni le PHP ne supprime ou ne modifie rien. Cependant, le balisage HTML, lorsqu’il est rendu pour la visualisation, utilise une méthode différente pour coder les sauts de ligne. Il y a très de bonnes raisons pour cela. Vous devez donc "traduire" les sauts de ligne existants en sauts de ligne de style html. 

Cela dépend de l’environnement dans lequel vous travaillez. En général, vous devez traduire les codes de saut de ligne tels que \n en balises <br>. Le langage de script php offre une fonction pour cela, par exemple: nl2br()

Attention toutefois: cela ne s'applique que lorsque rend le texte sous forme de balisage HTML. Not ne s'applique pas lorsque vous exportez à nouveau le texte dans une zone de texte à l'intérieur d'un formulaire afin de permettre sa modification, par exemple. Dans ce cas, vous devez conserver les sauts de ligne d'origine tels qu'ils ont été reçus. 

Ainsi, vous procédez généralement comme suit: vous enregistrez la saisie de texte non modifiée telle que reçue. Lorsque vous redonnez ce texte à un client, après avoir lu le texte dans une base de données où vous l'avez déjà enregistré, vous connaissez la situation, ainsi que la présentation du texte. C'est à ce moment-là que vous traduisez ou laissez les sauts de ligne existants tels quels. 

Vous pourriez également coder du texte non modifié contenant des sauts de ligne à l'aide de balises <pre>...</pre>, donc marquez-les comme étant rendus comme étant préformatés. Ceci est par exemple fait lors de l'affichage du code source dans des pages html. 

5
arkascha

Si vous souhaitez conserver les caractères de retour chariot d'une chaîne Java dans un fichier. Il suffit de remplacer chaque caractère de ligne de séparation (reconnu en Java par:\n) comme indiqué dans l'instruction suivante:

Voici un exemple de code,

    // Action Listener
    orderButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
            // When Execute button is pressed
            String tempQuery = textArea.getText();
            tempQuery = tempQuery.replaceAll("\n", "\r\n");
            try (PrintStream out = new PrintStream(new FileOutputStream("C:/Temp/tempQuery.html"))) {
                out.print(tempQuery);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println(tempQuery);
        }

    });
0
QA Specialist

Vous conservez la sortie dans textarea telle quelle. Vous recevrez une entrée sous forme de chaîne indiquant que string(write to file) cette chaîne ajoute du texte à la chaîne d'entrée.

for eg.
<?php
$txt = $_POST["inputstr"];
$txt1 = "<textarea>". $txt ."</textarea>";
$file = fopen("file.html","a+");
fwrite($file, $txt1);
fclose($file);
?>
0
awadhesh