Php编写编辑的脚本文件内容会导致额外的换行符

时间:2012-10-02 05:55:58

标签: php file filesystems fopen

在多语言网站中,我有两个包含php常量的php文件。

define('EMAIL','电子邮件');
定义('性别','性别'); 。

我使用表单中的textarea从管理员端提供这些文件的编辑。在textarea中打印完整文件。 什么时候管理员更新文件它会导致重定向问题,意味着在包含此文件header()函数失败后报告上面的非空格字符。

我在编辑后检查了php文件,它包含了每个php语句之间的大量额外空间,如下所示,

define('EMAIL','Email');

define('GENDER','Gender');

define('NAME','name');

长单行也会分成很多行,如。

定义('SENTENCE','这是一个很长的句子 根据文字区域的宽度分成许多行,如我所说');

所以这也会导致错误,因为它必须是单行

我确信这些额外的空格和换行符是所有问题的原因。我在textarea:

之间的打印中使用此代码
<textarea  style="width: 664px; height: 353px;" id="edit_file" name="edit_file"><?php
$file = fopen("../en.php", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
  {
echo fgets($file);
  }
fclose($file);
?> </textarea>

并保存文件:

if(isset($_POST['btn']) && $_SERVER['REQUEST_METHOD']=='POST' && !empty($_POST['btn'])){
if (get_magic_quotes_gpc()) {
$filedata = stripslashes($_POST['edit_file']);
}
$filedata=str_replace(array("<br />'",'\n'),array("",''),$filedata);
$size=strlen($filedata);
$file = fopen("../en.php", "w") or exit("Unable to open file!");
fwrite($file,"$filedata",$size);
fclose($file);
}

1 个答案:

答案 0 :(得分:3)

有1个意外的引用,\ n不能放在简单的引号中:

$filedata=str_replace(array("<br />'",'\n'),array("",''),$filedata);

替换为:

$filedata=str_replace(array("<br />","\n"),array("",''),$filedata);