2016-02-10 20 views
5

Sto usando editor di testo Sublime. Voglio convalidare un modulo Prestashop nello validator. Ma mostra l'errore come End of line character is invalid; expected "\n" but found "\r\n" Questa riga di codice contiene solo <?php. Ho cercato e sostituito con "\ r \ n" con "\ n" da diversi editor. Ma non funziona affatto. Puoi dirmi come risolvere questo problema? Qualsiasi aiuto e suggerimento sarà davvero apprezzabile. Grazieproblema di convalida php Il carattere di fine riga non è valido; atteso " n" ma trovato " r n"

risposta

7

Questo è un problema del sistema operativo. Questo succede quando stai codificando su più piattaforme. I sistemi operativi hanno diversi modi di interpretare un fine linea. Ecco, questo può aiutare:

Convert line endings

Inoltre, sublime ha una soluzione anche per questo. Se stai codificando per Unix, assicurati di cambiare le interruzioni di riga per Unix. View->Line Endings->Unix

Questa soluzione è in realtà un po 'più in profondità:

http://www.cyberciti.biz/faq/howto-unix-linux-convert-dos-newlines-cr-lf-unix-text-format/

+0

grazie mille. C'è qualcosa di simile a PHP Strome? –

+1

@TarunNagpal Sì, in effetti PHP Storm è quello che uso. Vai su 'File-> Line Seperators' e cambialo in' LF' per Unix. Come la maggior parte delle cose in PHP Storm, se hai selezionato la root directory del tuo progetto quando lo fai, convertirà tutti i tuoi file per te. Se hai un file aperto che stai modificando, funzionerà semplicemente con l'unico file. Puoi farlo anche con i rientri tramite "Modifica-> Converti rientri". –

+0

Grazie, funziona !! –

0

La soluzione più elegante sarebbe codifica con Linux al posto di Windows - perché in parole povere: Linux usa \ n per un'interruzione di linea, usi windows \ r \ n

maggior parte dei redattori che sono più avanzati di supporto notepad conversione file da windows in stile linux. basta sfogliare i rispettivi menu.

e per fornire una soluzione scritta in PHP:

<?php 
$input = file_get_contents("old.php"); 
$data = str_replace("\r\n", "\n", $input); 
file_put_contents("new.php"); 

tua sostituzione, probabilmente non ha funzionato perché la maggior parte dei redattori regolari usano il backslash proprio come il backslash carattere e non interpretano \ n come via di fuga -sequence per un carattere newline, ma semplicemente come backslash e un n.

Problemi correlati