Я интенсивно искал это, но есть ли способ игнорировать символы типа ‘\ n’ при использовании fwrite и печатать их как есть в файле?
$x = "Some data with \nslash n";
fwrite($fp, $x."\r\n");
Gives me :
Some data with
slash n
Я знаю, что использование одиночной кавычки решило бы мою проблему, но дело в том, что $ x приходит откуда-то еще, поэтому его значение уже установлено. Может быть, мне здесь чего-то не хватает. Пожалуйста помоги
Спасибо
Если вы экранируете только символы новой строки, добавьте PHP_EOL константа строки, прямо в той позиции, где вы хотите разрыв строки. Так, например:
$x = "Some data with".PHP_EOL."slash n";
У меня плохой ответ, но, возможно, это поможет:
fputs($fp, str_replace(["\r","\n"],["\\r","\\n"],$x."\r\n")."\n");
Хитрость в двойных и одинарных кавычках
Используйте двойные кавычки при поиске в str_replace и используйте одинарные кавычки при возврате значения
Чтобы просто заменить и загрузить файл на свой компьютер, вот код:
<?php
$a = "My Name\n is Ashwani";
$b = str_replace("\n",'\n',$a);
header('Content-disposition: attachment; filename=output.txt');
header('Content-type: text/plain');
echo "This is the original data:\n".$a;
echo "\n\n\nThis is the replaced data:\n".$b;
?>
Чтобы записать файл на сервер с выходным и расширением csv, вот код:
<?php
$a = "My Name\n is Ashwani";
$b = str_replace("\n",'\n',$a);
$h = fopen("output.csv","w");
fwrite($h,"This is the original data:\n".$a);
fwrite($h,"\n\n\nThis is the replaced data:\n".$b);
fclose($h);
?>
Надеюсь это поможет