PHP: создание файла с помощью fopen () приводит к & quot; cryptic & quot; значение в строке, повторяющееся с существующими файловыми работами

Я пытаюсь сохранить длинную (> 700 000 символов) строку в файл на сервере с помощью fopen ().

$file = fopen($filename, 'w+');
fwrite($file, $content);
fclose($file);
echo $content;

Но каким-то образом это приводит к правильному содержимому файла, когда файл уже существует.
Если файл не существует, он создается с «загадочным» содержимым, что для меня не имеет никакого смысла.
(Пока эхо $ content отображает правильные значения)

Пример первых нескольких символов файла:

‹W_oÛ6N €} Vè¨, Ë ©“ 8µ téþ´ÈÖ¬ÍÐm /% ž $ Ö4 © ‘” tè7Û۾؎ ”

Когда я перезагружаю скрипт, файл уже существует, и содержимое записывается правильно и отображается правильно, как и раньше.

Это также работает, когда я сам создаю файл через FTP (независимо от того, какой контент у него был раньше, я тоже пробовал «Hello»). Пока файл уже существует, все в порядке.

Также очень странным является тот факт, что если я вставлю var_dump, чтобы увидеть, каково значение $ content в определенной точке, файл будет записан с правильным содержимым, но echo возвращает «загадочную» строку.
Кажется, что var_dump всегда имеет правильные значения.

Я уже пытался использовать почти все различные режимы fopen (), такие как «wb», «wb +», «wt», «wt +», «xt» и т. Д.
Я проверял пути, разрешения и искал Google всю ночь. Нет успеха

Это меня бесит, потому что я просто не вижу, что не так или что мне не хватает, чтобы проверить.

Я надеюсь, что вы можете мне помочь.

Большое спасибо !

3

Решение

Может быть, использовать utf8_encode ()

$content = utf8_encode("text dsdasasd");
$file = fopen($filename, 'w+');
fwrite($file, $content);
fclose($file);
echo $content;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]