escaping — игнорировать escape-последовательности в PHP, пока fwrite

Я интенсивно искал это, но есть ли способ игнорировать символы типа ‘\ n’ при использовании fwrite и печатать их как есть в файле?

$x = "Some data with \nslash n";
fwrite($fp, $x."\r\n");

Gives me :
Some data with
slash n

Я знаю, что использование одиночной кавычки решило бы мою проблему, но дело в том, что $ x приходит откуда-то еще, поэтому его значение уже установлено. Может быть, мне здесь чего-то не хватает. Пожалуйста помоги

Спасибо

0

Решение

Если вы экранируете только символы новой строки, добавьте PHP_EOL константа строки, прямо в той позиции, где вы хотите разрыв строки. Так, например:

$x = "Some data with".PHP_EOL."slash n";
0

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

У меня плохой ответ, но, возможно, это поможет:

fputs($fp, str_replace(["\r","\n"],["\\r","\\n"],$x."\r\n")."\n");
0

Хитрость в двойных и одинарных кавычках

Используйте двойные кавычки при поиске в 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);
?>

Надеюсь это поможет

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