在多语言网站中,我有两个包含php常量的php文件。
define('EMAIL','电子邮件');
定义('性别','性别');
。
我使用表单中的textarea从管理员端提供这些文件的编辑。在textarea中打印完整文件。 什么时候管理员更新文件它会导致重定向问题,意味着在包含此文件header()函数失败后报告上面的非空格字符。
define('EMAIL','Email');
define('GENDER','Gender');
长单行也会分成很多行,如。
定义('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);
}
答案 0 :(得分:3)
有1个意外的引用,\ n不能放在简单的引号中:
$filedata=str_replace(array("<br />'",'\n'),array("",''),$filedata);
替换为:
$filedata=str_replace(array("<br />","\n"),array("",''),$filedata);