Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Max Della Pena
    Registrato dal
    Jan 2014
    residenza
    Udine
    Messaggi
    371

    Formattare andare a capo durante una modifica al testo

    Ho un form inserimento in PHP, per manterere la formattazione dell'andare a capo utilizzo in fase di inserimento la funzione nl2br.

    Codice PHP:
    $note nl2br($_POST['note']); 
    Il mio problema è quando vado a modificare il testo inserito, come fare a manteregli gli a capo nel testo che vado ad inserire ulteriormente?

    Se utilizzo la stessa funzione mi trovo con tutti gli a capo raddoppiati.

    Grazie.
    Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.

  2. #2
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    trasformi i caratteri di a capo con <br>
    Codice PHP:
    $stringa strtr$stringa"\n\r"'<br>' ); 
    Però, c'è un però!
    \n\r è titpico di Windows, ma tu non sai da quale sistema operativo viene il testo che vuoi formattare e Linux usa \n mentre il vecchio System di Apple usava \r ( non so se mantenuto nei nuovi X ).
    https://www.php.net/manual/en/function.strtr.php
    questo ti creerà dei grossi problemi, dato che non puoi sapere a priori cosa contiene la stringa e ne ti puoi mettere a fare lo sniffing del sistema operativo, meglio usare le regex.
    Puoi provare con le regex, tipo che so, al volo .*(\n\r)|(\n)|(\r).* non l'ho testata, qundi fai tu

  3. #3
    Utente di HTML.it L'avatar di Max Della Pena
    Registrato dal
    Jan 2014
    residenza
    Udine
    Messaggi
    371
    Quote Originariamente inviata da Marcolino's Visualizza il messaggio
    trasformi i caratteri di a capo con <br>
    Codice PHP:
    $stringa strtr$stringa"\n\r"'<br>' ); 
    Però, c'è un però!
    \n\r è titpico di Windows, ma tu non sai da quale sistema operativo viene il testo che vuoi formattare e Linux usa \n mentre il vecchio System di Apple usava \r ( non so se mantenuto nei nuovi X ).
    https://www.php.net/manual/en/function.strtr.php
    questo ti creerà dei grossi problemi, dato che non puoi sapere a priori cosa contiene la stringa e ne ti puoi mettere a fare lo sniffing del sistema operativo, meglio usare le regex.
    Puoi provare con le regex, tipo che so, al volo .*(\n\r)|(\n)|(\r).* non l'ho testata, qundi fai tu
    Grazie, ci provo.
    Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.

  4. #4
    $stringa = strtr( $stringa, "\n\r", '<br>' );
    $stringa = strtr( $stringa, "\n", '<br>' );
    $stringa = strtr( $stringa, "\r", '<br>' );

  5. #5
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Quote Originariamente inviata da optime Visualizza il messaggio
    $stringa = strtr( $stringa, "\n\r", '<br>' );
    $stringa = strtr( $stringa, "\n", '<br>' );
    $stringa = strtr( $stringa, "\r", '<br>' );
    L'ho già utilizzato in passato, ma mi ha dato grattacapi invece di risolvere il problema, perché se incontri una macchina non Windows, al primo passaggio metti ( se macchina Linux o Mac X ) un BR quando incontra \n poi ne mette un altro quando incontra la seconda istruzione, aggiungendo in pratica due BR dove ce ne va uno.
    Non lo uso da tempo, ma sul vecchio PHP 5.x si comportava così, poi non so se mettere tre istruzioni identiche è più efficiente di una sola con preg_match_all().

  6. #6
    li ho messi in quella sequenza proprio per evitare l'effetto che descrivevi. se ti trovi per casi una sequenza \r\n mettila come seconda

  7. #7
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Perfetto @optime, ma comunque non è efficiente, io uso un'istruzione, tu 3.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.