Metin dosyasını açmak için PHP kullanarak sorunu - boşluk kaldırılır

5 Cevap

I'm trying to open and process ASCII files using PHP, but am having problems. The problem is that the blank spaces are removed, which I don't want to have happen, since the files are fixed width.

Ben kullanılan PHP komut dosyası şudur:

$myFile = Test.SEG";
$file_handler = fopen ($myFile, r) or die ("Can't open SEG File.");
while (!feof($file_handler))
    {
    $dataline = fgets($file_handler);
    echo $dataline, "<br />";
    }

Burada orijinal dosyanın yapıştırma örnekleri çalıştı, ama alanlarda olduğu gibi burada da çıkarıldı!

Bu aşamada ben sadece bir defada çalışan bir adım almak, adımda komut inşa ediyorum, ama bu kadarıyla kazanılmış ettik gibidir. Ben ihtiyacım alanları ortaya çıkarmak için '$ DataLine' üzerine substr () kullanmayı planlıyorsanız.

Sağlam boşluk tutmak konusunda herhangi bir öneriniz? Bir şey bu kodlama ile ilgili bir şey, ama emin bilmiyorum bana söyler.

Teşekkürler!

5 Cevap

Ben gerçekten kaldırılır sanmıyorum. Gerçekten gittiler olup olmadığını öğrenmek için sonra <pre> öncesi ve </pre> eklemeyi deneyin. Ben onları gitmiş görünmesini kılan sadece HTML işleme olduğunu düşünüyorum.

Bu kodlama ile ilgisi, ve tarayıcı HTML olarak çıktı tedavi olduğu gerçeği ile her şeye sahiptir. Tarayıcı text/plain gibi davranın, ya da bir <pre> bloğunda koymak için bir başlık göndermek ya.

Browser won't care about more than one space, but if you see the source, you will see the correct output. If I understand correctly, you should replace all the space chars with 'nbsp' for example.

Düzenlendi: Birisi burada yazdığım gibi ön iyidir

HTML sayfada metin işlerken bir tarayıcı boşluk korumaz. Birden fazla boşluk tek boşluk çökmüş iken Dolayısıyla, newlines ve sekmeler göz ardı edilir.

Eğer sayfanızın kaynağını görüntülemek Eğer orijinal boşluk görebilirsiniz. Sayfadaki metni görüntülerken bir <pre> blok boşluk korumak için tarayıcı anlatacağım. Bu örneği ele alalım:

this is   just


a test
of   some

    data.

Ben yerel kodunuzu test edilmiş ve içinde bir kaç hata var gibi görünüyor.

<?php

$myFile = "Test.SEG"; // missing opening quote

$file_handler = fopen($myFile, "r") // missing quotes for read mode flag
                or die ("Can't open SEG File.");

while (!feof($file_handler)) {
  $dataline = fgets($file_handler);
  echo $dataline; // fgets keeps the newline,
                  // so you do not need to output another
}

("Nbsp;" "&" ve arasındaki boşluk olmadan) bu deneyin:


echo str_replace(' ', '& nbsp;', $dataline)."\n";