سؤال

يبدو كما لو أن Fgets يضع مساحة بعد كل شيء يعود. إليك بعض رمز المثال:

<?php
Echo "Opening " . $_SERVER{'DOCUMENT_ROOT'} . "/file.txt" . "...<br>";
$FileHandle = @Fopen($_SERVER{'DOCUMENT_ROOT'} . "/file.txt", "r");
If ($FileHandle){
    Echo "File opened:<br><br>";
    While (!Feof($FileHandle)){
        $Line = Fgets($FileHandle);
        Echo $Line . "word<br>"; //Should be LINECONTENTSword, no space.
    }
    Fclose($FileHandle);
}
?>

الذي يعود

Opening /var/www/vhosts/cqe.me/httpdocs/file.txt...
File opened:

First line word
Second line word
3rd line word
Another line of text word
Blablablaword

لماذا توجد مساحة بين محتوى الخط و "الكلمة"؟ ولماذا لا توجد هذه المساحة في نهاية الملف (blablablaword)؟

هل يمكن أن تخبرني من فضلك كيف تتخلص من هذه المساحة؟ شكرًا جزيلاً :-)!

هل كانت مفيدة؟

المحلول

fgets () إرجاع خط و شخصية الخط الجديد (\n). هذا بعد ذلك ، مثل جميع المساحات البيضاء الأخرى ، يتم تقديمها كمساحة في HTML.

لإزالة الخط الجديد المتخلف ، استخدم

$line = rtrim($line, "\r\n");
// Trims \r, \n and \r\n, which are all considered
// newlines on different platforms

نصائح أخرى

أعتقد أن Fgets يعيد نهاية حرف الخط ( n) أيضًا ، ويتم تقديم هذا كمساحة في HTML.

إذا كنت ترغب في إزالة جميع المساحات المتأخرة من الخط ، فيمكنك استخدامها rtrim

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top