在一个多语言站点中,我有两个包含 php 常量的 php 文件。
喜欢
定义('电子邮件','电子邮件');
定义('性别','性别');. .
.
我使用表单中的文本区域从管理员端提供对这些文件的编辑。在 textarea 中打印完整文件。当管理员更新它导致重定向问题的文件时,意味着在包含此文件 header() 函数后无法报告上面的非空白字符。
我在编辑后检查了 php 文件,它在每个 php 语句之间包含很多额外的空间,如下所示,
定义('电子邮件','电子邮件');
定义('性别','性别');
定义('名称','名称');
长的单行也分成许多行,例如。
define('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);
}