這是獲取文本并在每一行上執行處理的代碼:<?php$f = fopen('text.txt' , 'r');$i = 0;while($line = fgets($f)){ if($i == 1){ $first_line = $line; }elseif($i == 2){ $second_line= $line; }elseif($i == 3){ $third_line = $line; } $i++;}?>text.txt包含:3ABCaBD當我運行下面的代碼時,它給了我一個奇怪的輸出:echo strlen($second_line);$second_line應該是ABC,但返回的輸出是這樣的:5還urlencode($second_line)顯示:ABC%0D%0A這 5 個字符之一是"\n"轉到下一行主要問題是,另一個隱藏的角色是什么?
1 回答

瀟湘沐
TA貢獻1816條經驗 獲得超6個贊
由于 Windows\r\n
用作行終止符,這將為每個字符串添加額外的 2 個字符。Linux 只使用\r
,所以這只是額外的 1 個。
要提供通用解決方案,最好使用
$line = trim($line);
這將刪除任何行終止字符。它還將刪除前導和尾隨空格。
- 1 回答
- 0 關注
- 98 瀏覽
添加回答
舉報
0/150
提交
取消