【发布时间】:2012-11-23 22:15:11
【问题描述】:
我正在使用 PHP 从 HTML 表单的文本区域保存 C++ 代码。
问题是如果我的代码如下所示,
printf("%d\n");
printf("%d\n");
保存到文件中的代码是这样的:
printf(\"%d\\n\");\nprintf(\"%d\\n\");
我希望将原始代码保存在文件中。如果我使用,
$sourceCode = str_replace('\n',"\n", $sourceCode);
$sourceCode = str_replace('\"',"\"", $sourceCode);
结果如下(保存在文件中):
printf("%d\
");printf("%d\
");
很明显,替换源代码中的\n 会替换所有创建的HTML \n 以及用户作为输入(原始文本)提供的\n。唯一的区别是用户输入在\n之前多了一个\,即\\n。
如何解决这个问题,只替换隐式转义字符,而用户自己编写的显式转义字符不会被更改?
【问题讨论】:
-
你用来写入文件的 PHP 是什么?