Помогите: Запись в файл, ошибка...

  • Автор темы Автор темы ViTQ
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
V

ViTQ

Во всех книгах пишут одно и тоже:
Код:
<?php
$handle=fopen("text.txt", "wb");
$text="Просто\nстрока\nтекста.\n";
fwrite($handle, $text);
fclose($handle);
?>
Должно по сути записывать в файл следующие:
Код:
Просто
строка
текста.
Так написано в книге. В итоге записывает так:
Код:
Просто строка текста.
Другой случай из книги:
Код:
<?php
$handle=fopen("text.txt", "ab");
$text="Просто строка текста.";
fwrite($handle, $text"\n");
fclose($handle);
?>
Должен в итоге записывать в файл при каждом запуске скрипта в новую строку, но он пишет все подрят.
Простой пример:
Код:
<?php
echo "Просто\nстрока\nтекста.";
?>
Ситуация повторяется, в итоге во всех случаях \n не работает, почему?
 
Всё нормально работает, может быть ваш текстовый редактор, которым вы просматриваете текст, не понимает unix-стиль переноса (\n), а понимает виндовый стиль (\r\n).

Попробуйте
Код:
<?php
$handle=fopen("text.txt", "wb");
$text="Просто\r\nстрока\r\nтекста.\r\n";
fwrite($handle, $text);
fclose($handle);
?>
 
Код:
<?php
$handle=fopen("text.txt", "ab");
$text="Просто строка текста.";
fwrite($handle, $text"\n");
fclose($handle);
?>
Здесь вместо
Код:
$text"\n"
нужно
Код:
$text."\n"
А вообще так и есть, все примеры работают.
 
$handle=fopen("text.txt", "ab"); -Запись в бинарном режиме..
Чтобы РНР пересемплировал перенос, снимите флаг b

$handle=fopen("text.txt", "a");
 
Кстати, недокументировано работает флаг t - текстовый режим.
попробуйте:
$handle=fopen("text.txt", "w+t");
 
В процессе работы с пхп и другими языками придётся привыкнуть к тому, что всё время придётся решать всякие 'непонятки' :(
 
В процессе работы с пхп и другими языками придётся привыкнуть к тому, что всё время придётся решать всякие 'непонятки' :)

Нууу!!! не пугайте молодёжь! :)
В данном случае - траблы не PHP, а способы перевода строки в Винде и *никсах
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab