Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762

    [preg_replace e var_dump] Differenza di valori.

    Ragazzi non capisco questo risultato..

    In una textarea inserisco il seguente testo:

    ciao
    (invio)
    ciao
    (invio)
    ciao


    Parsato dal seguente codice:
    Codice PHP:
    <?php
    $text_pattern 
    '/(\r|\n|\r\n|\t|\n\r)/';
    $newText preg_replace($text_pattern' '$text);

    echo 
    $newText;
    echo 
    var_dump($newText);

    ?>
    Ottengo il seguente output:

    Output a schermo: ciao ciao ciao
    Output var_dump: string 'ciao ciao ciao' (length=20)

    Perchè l'output a schermo contiene un solo carattere spazio (come aspettato) e l'output di var_dump ne contiene 4 tra una parola e l'altra?


    Grazie in anticipo.



    EDIT: il parser del forum ha rimosso i 4 spazi nell'output var_dump ma a video ne vedrete 4 tra le parole.

  2. #2
    Se guardi bene (nel sorgente della pagina ) ti accorgi che anche "echo" ha prodotto 4 spazi. Sullo schermo vedi solo uno perché il browser elimina spazi consecutivi (eccezione nei tag <pre>).
    La stringa ricevuta dal textarea si presenta cosi "ciao\r\n\r\nciao\r\n\r\nciao". Con preg_replace trasformi in spazio \r e \n. Di conseguenza ogni parola è separata da 4 spazi.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Ok per la questione del browser che elimina gli spazi in più ma...

    ..no. L'echo non mi produce i 4 spazi che dici. Guardando il codice di pagina prodotta, a differenza dell'output a video, si nota che anche i "ciao" hanno i 4 spazi come nel risultato del var_dump.

    Ma certo! "Ogni parola è separata da 4 spazi". Ogni \r ed \n !

    Non ci avevo pensato confesso


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 © 2025 vBulletin Solutions, Inc. All rights reserved.