Fwrite - Bu yürütülür?

6 Cevap php

Ben bir metin dosyasına yazmak fwrites bir grup var. Ancak, onun her satır veri sonraki sette yana koymak geçmez sonra istediğiniz yeni bir satır ("\ n") bu kodu bir metin dosyasına ekler son çizgiye yapışmış görünüyor:

while(odbc_fetch_row($result)){

        if($counter==0){

            $counter3 = 1;

            foreach($column_names as $column_names2){

                if($length!=$counter3){

                    fwrite($write_file, '"'.$column_names2.'",');

                }else{

                    fwrite($write_file, '"'.$column_names2.'"');

                }

                $counter3++;

            }

            //echo 'Never gets executed???';
            fwrite($write_file, "\n");

            $counter = 1;

        }

Ne oluyor herhangi bir fikir?

Ben hızlı bir test olarak "\ n \ n" koyduk. Ne garip ben notepad bu görüntülemek eğer hala birlikte sıkışmış olduğunu, ama ben Wordpad'de görebilmek eğer bir satır sonu gösterir?!

6 Cevap

Başkalarına tavsiye ettiler, bunun nedeni newlines sizin OS kodlanmış şekilde muhtemeldir.

Ancak, oldukça açıkça çıkış değil, bir Windows-spesifik "\ r \ n", ben metin dosya (yerine ikili) modunu açarak denemenizi öneririz. Metin modunda açma avantajı, sistemin bu işletim için uygun olan herhangi bir biçim için satır sonları dönüştürür olmasıdır. Bu şekilde, kod daha taşınabilir olmalı, ve (umarım), Windows / Linux / Mac vb düzgün çalışması gerekir

PHP kullanarak varsayarak, fopen içine "metin modu çeviri bayrağı" ('t') geçebilir.

Kod tamam görünüyor

Eğer \n satır sonlarını işleyemez bir Windows uygulaması ile dosyaya lookign olduğunu olabilir mi? Eğer başka bir şey tarafından \n eklersek ne olur?

Bu kod ile bir sorun, ama izleyici bir sorun değil. Değişen izleyiciler sorununuzu çözecektir. Izleyici anlayan bir şey (\ r \ n) satır sonlandırıcılar değiştirilmesi sorunu çözecektir. Önemli olan, daha sonra tüketen olacak program anlayacağı bir şekilde hat sonlandırıcı yazmaktır. Sadece izleyici varsa, o çizgi sonlandırıcı değiştirin. Sadece bir satır karakteri bekler onun başka bir program, izleyiciler değiştirirseniz.

newlines, çeşitli OS hakkında bu okuyun.

, Windows kullanarak yeni bir satır gösterir CR + LF (yani \r\n) UNIX (benzeri) bir süre sistemleri sadece kullanmak LF (\n).

CR = Carriage return
LF = Line feed

Yani muhtemelen \r\n kullanmak zorunda. Ama Wordpad gibi diğer programları anlamak için \n-sadece çok görünüyor.


Iyi yolu güncel işletim sonu hat göstergesi, script çalışıyor kullandığı PHP constant PHP_EOL hangi kullanmak olduğunu:

fwrite($write_file, PHP_EOL);

kullanarak deneyebilirsiniz \r\n

CRLF satır sonları kullanmayı deneyin:

"\r\n"