Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Php, записывающий отредактированное содержимое файла сценария, вызывает дополнительные разрывы строк

Автор вопроса: Asad kamranОтветов: 1

На многоязычном сайте у меня есть два файла php, которые содержат константы php.

Нравиться

определить('ЭЛЕКТРОННАЯ ПОЧТА', 'Электронная почта');
определить('ГЕНДЕР', 'Пол'); . .

Я предоставляю редактирование этих файлов со стороны администратора, используя текстовое поле в форме. распечатать полный файл в текстовом поле. Когда когда-либо администратор обновляет файлы, которые он создает, проблема перенаправления означает, что после включения этой функции заголовка () файла не удается сообщить о символе, отличном от пробела, выше.

Я проверил файл php после редактирования, и он содержит много дополнительного пространства между каждым статусом php, как показано ниже

определить('EMAIL', 'Электронная почта');

определить('ПОЛ', 'Пол');

определить('ИМЯ', 'имя');

Также длинная одиночная строка разбивается на множество строк, например.

define('SENTENCE', 'это длинное предложение, которое разбивается на множество строк в соответствии с шириной текстовой области, как я заметил');

Таким образом, это также приводит к ошибке, поскольку она должна быть в одной строке.

Я уверен, что эти лишние пробелы и разрывы строк являются причиной всех проблем. Я использую этот код при печати между текстовой областью:

<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);
}
  • в чем проблема ИЛИ ошибка, напишите об этом... Yogesh Suthar 02.10.2012
  • ошибка или ПРОБЛЕМА: после записи содержимого textarae в файл, если я открою файл в любом текстовом редакторе или Dreamweaver, он покажет много строк между двумя php-стататами, я хочу избежать этого и хочу, чтобы каждый оператор был в последовательных строках, дополнительные строки между двумя php-операторами предоставлено текстовой областью HTML или при печати содержимого файла в текстовую область. Asad kamran 02.10.2012
  • @Yogesh Suthar, эти дополнительные строки или разрывы стамнетов (длинные операторы разбиваются на 2 или 3 строки) вызывают сбой перенаправления заголовка php. Asad kamran 02.10.2012
  • означает, что вы создаете файл php из содержимого текстовой области?? Yogesh Suthar 02.10.2012
  • да, я открываю файл, скажем, abc.php и показываю содержимое в текстовой области, после отправки формы я записываю содержимое текстовой области в файл abc.php, файл уже существует. просто читать и писать. Asad kamran 02.10.2012

filephpfilesystemsfopen

Ответы

Ответ 1 · рейтинг 3 · Alain Tiemblo

Существует 1 непредвиденная цитата, и \n нельзя помещать в простые кавычки:

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

Заменить на :

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы