У меня есть файл, который содержит одну строку. Открываю файл и читаю значение, с fopen и fgets, я заметил, что в конце строки добавлено пространство.Почему fgets добавляет пробел в конце строки?
$file = fopen("myfile", "r") or exit("<br><p>Unable to open file</p><br>");
$mystring= fgets($file);
fclose($file);
Содержание MYFILE:
Hello
Тест
echo "<p>'".$mystring."'</p>"; //Output: 'Hello '
Как вы можете видеть, что теперь пространство в конце строки, даже если нет места в файл.
Я попробовал то же самое с Linux командой «кошки»:
$mystring = shell_exec("cat myfile");
echo "<p>'".$mystring."'</p>"; //Output: 'Hello '
Еще пространство в конце строки.
Моя цель - сравнить строку в файле со значением в моем коде.
if ($mystring === "Hello")
{
echo "Equal";
}
else
{
echo "not equal";
}
Я всегда получаю «не равный». Как я могу прочитать и сохранить фактическое содержимое файла в моей переменной?
Вы можете использовать '' trim() '] (http://php.net/manual/en/function.trim.php). У фактического содержимого файла есть новая строка? Был ли файл создан с помощью редактора, который не поддерживает текст? Существует много причин, по которым пространство может быть там. –
Нет, потому что тогда, если содержимое файла «hello» («hello» с пробелом в конце), я теряю пространство в конце. Мне нужен фактический контент. Файл был создан с помощью «nano», я также попробовал gedit. – Black