Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    creazione al volo (in un textarea) di <br> e <p>

    Buongiorno!

    Ho da farvi una domanda sulla creazione di tag nei textarea:

    Come si fà in modo che il comando "a capo" (return) venga interpretato (SE USATO UNA SOLA VOLTA) come un tag"
    " e SE USATO DUE VOLTE come un Tag "

    "? Insomma se uno fà return più volte invece di produrmi un sacco di
    , vorrei che facesse dei paragrafi.

    Chiedo una cosa impossibile?
    Hasta

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    potrebbee essere qualcosa del tipo (nn sono sicuro sul \n):

    $stringa=str_replace("\n\n","

    </p>",$stringa);
    $stringa=str_replace("\n","
    ",$stringa);
    think simple think ringo

  3. #3
    Grazie...ma purtroppo non funziona!

    Per caso qualcuno ha la soluzione in tasca?

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    e così??

    $stringa=str_replace("\r\n\r\n","

    </p>",$stringa);
    $stringa=str_replace("\r\n","
    ",$stringa);
    think simple think ringo

  5. #5
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Originariamente inviato da marketto
    potrebbee essere qualcosa del tipo (nn sono sicuro sul \n):

    $stringa=str_replace("\n\n","

    </p>",$stringa);
    $stringa=str_replace("\n","
    ",$stringa);
    prova a sostituire gli \n con la funzione chr() passando come parametro il codice ascii del tasto invio (mi pare 13 ma potrei sbagliarmi)

    quindi:

    $stringa=str_replace(chr(13),"
    ",$stringa);

    per il paragrafo non saprei come fare, prova a concatenare i chr() ma non ho mai provato e non credo che funzioni

  6. #6
    esiste una semplice funzione nl2br()
    http://it2.php.net/nl2br
    Planet Earth is blue and there's nothing I can do

  7. #7
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Originariamente inviato da Sandro M.
    esiste una semplice funzione nl2br()
    http://it2.php.net/nl2br
    Sì ma lui vuole che un solo \n diventi
    mentre due \n consecutivi diventino

    :P

    P.S. se hai \n\n testo \n\n vuoi che "testo" venga scritto tra

    testo</p>? in quel caso le cose mi sa che si complicano un pò perchè dovresti crearti o uno stack o analizzare tutto il testo, quindi str_replace non va più bene.

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da marketto
    e così??

    $stringa=str_replace("\r\n\r\n","

    </p>",$stringa);
    $stringa=str_replace("\r\n","
    ",$stringa);
    ho appena provato e funziona...(con win)
    think simple think ringo

  9. #9
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Codice PHP:
    function nl2p($testo) {
    $i 1;
    $opentag FALSE;
    while (
    $i<=strlen($testo)) {
      if (
    $testo[$i] != chr(13)) {
        
    $newtesto .= $testo[$i];
      }
      else {
        
    $i++;
        if (
    $testo[$i] != chr(13)) {
          
    $newtesto .= "
    "
    .$testo[$i];
        }
        else {
          
    $newtesto .= ($opentag) ? "</p>" "

    "
    ;
          
    $opentag = ($opentag) ? FALSE TRUE;
        }
      }
      
    $i++;
    }
    return 
    $newtesto;

    Ci ho provato :gren:

  10. #10
    Originariamente inviato da VaLvOnAuTa
    Sì ma lui vuole che un solo \n diventi
    mentre due \n consecutivi diventino

    :P

    P.S. se hai \n\n testo \n\n vuoi che "testo" venga scritto tra

    testo</p>? in quel caso le cose mi sa che si complicano un pò perchè dovresti crearti o uno stack o analizzare tutto il testo, quindi str_replace non va più bene.

    ....mi sa che negli script di esempio sotto la funzione ci fosse qualcosa per risolvere la questione
    Planet Earth is blue and there's nothing I can do

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.