У меня есть файл, который содержит:
file content NULNULNULNUL something else
,
Когда я пытаюсь получить содержимое файла
$str = file_get_contents($fileName)
, в $str
появляются просто file content
,
Как я могу заменить NUL в файле, без открытого файла?
1.) Получить заменяемый контент в виде строки. Сначала получите содержимое файла так же, как вы.
$str = file_get_contents($fileName)
Затем замените все вхождения NUL
с пустым пространством, как:
$new_content = str_replace('NUL'," ",$str);
ИЛИ ЖЕ
2.) Чтобы заменить содержимое внутри файла (заменить содержимое и записать его обратно в файл):
file_put_contents($fileName,str_replace('NUL',' ',file_get_contents($fileName)));
здесь мы используем file_put_contents — который записывает строку в файл. Мы передаем filename
и replaced-string
в качестве параметра
Я конвертирую каждый символ в код assci. Это работа сейчас:
$newStr='';
$str = file_get_contents($fileName);
$length = strlen($str);
for ($i=0; $i < $length; $i++)
{
$current = ord($str{$i});
if ($current != 0x0)
{
$newStr .= chr($current);
}
else
{
$newStr .= "";
}
}
$num = file_put_contents($fileName,$newStr);