2013-12-07 3 views
-7

У меня есть строка кода, как это:Как написать файл, как есть?

<?php 
echo "Hello World"; 
?> 

Теперь я хочу написать, что в PHP файл только так, как это. Я имею в виду, что я хочу написать этот код с новыми строчными символами. Таким образом, код хранится выше. Итак, как я могу это сделать?

Я пытался использовать прикрепление файла и fwrite, но они пишут код в одной последовательной линии и то, что я хочу, чтобы он разделен на 3 линии.

  • На первой строке - <?php
  • На второй строчке - echo "Hello world";
  • На третьей строке - ?>

Но я хотел бы сделать это, используя только одну строку кода , это было бы похоже на нижеследующее.

$file = 'people.php'; 
// The new person to add to the file 
$person = "John Smith\n"; 
// Write the contents to the file, 
// using the FILE_APPEND flag to append the content to the end of the file 
// and the LOCK_EX flag to prevent anyone else writing to the file at the same time 
file_put_contents($file, $person, FILE_APPEND | LOCK_EX); 
+7

Я не понимаю, какой результат вы ожидаете? что происходит вместо этого? – worenga

+0

Что вы пытаетесь достичь? – soulseekah

+0

Возможно, проблема кроется с редактором, а не с вашим кодом? Как и многие люди, вам нужна '\ n', чтобы получить новую строку. Какой редактор вы используете? – Bananam00n

ответ

4
<?php 
$File = "new.txt"; //your text file 
$handle = fopen($File, 'w'); 
fwrite($handle, '<?php '."\n".' echo "Hello World "; '."\n".'?>'); 
?> 
+0

что делать, если Этот код изменяется на

+0

@SanjayRathod Что Бхадра пытается сказать, так это то, что вам нужен символ '\ n' с экранированным символом для линейного тормоза в вашей строке при записи в файл. – totymedli

+0

Но я беру этот код из редактора, каждый раз, когда код отличается, то как я могу генерировать новый символ линии? Проверьте здесь http://web.guru99.com/. в этом редакторе пользователь может добавить код для исполнения. И, разумеется, каждый раз он разный, так как я могу вставить новый символ линии. –

1

этот код работает на моем компьютере. вам также понравится.

<?php 
$file = 'people.php'; 
// The new person to add to the file 
$person = "<?php 
echo 'Hello World'; 
?>\n"; 
// Write the contents to the file, 
// using the FILE_APPEND flag to append the content to the end of the file 
// and the LOCK_EX flag to prevent anyone else writing to the file at the same time 
file_put_contents($file, $person, FILE_APPEND | LOCK_EX); 
echo $person; 
?> 
2

Попробуйте использовать следующие между каждой строки кода, чтобы поставить его на новую строку в файле PHP:

. PHP_EOL . 
2

Вы можете:

<?php 
$yourContent = <<<PHP 
<?php 
echo "Hello world"; 
echo "This in an example"; 
$foo = 2; 
$bar = 4; 
echo "Foo + Bar = ".($foo+$bar); 
?> 
PHP; 
file_put_contents("yourFile.php", $yourContent); 
?> 
3

Ваша строка должна быть как это

$str = "<?php 
echo \"Hello World\"; 
?>"; 

затем напишите его на адрес ny fileName.php, php во время разбора игнорирует новые строки, имеет значение только точка с запятой.

Edit 1

Так как вы хотите, чтобы написать строку как код, после выполнения выше шага, вы будете иметь весь код в одной строке больше как сжатый код, который будет не читаемым человеком, для делая его дружественным к человеку, вам нужно будет добавить форматирование, минимальный подход для форматирования - по крайней мере, добавить новые строковые символы и вкладки для отступов.

Для этого вам нужно будет сделать две вещи, определить символы (a), где вам нужно добавить новую линию и те символы (b), где требуется отступ. Теперь перед записью в файл выполните некоторую предварительную обработку, добавьте новые строковые символы для типа char (a) и одновременно сохраните стек для добавления правильного количества вкладок для отступов.

4

Это должно работать нормально

file_put_contents('people.php' <<<HEREDOC 
<?php 
echo "Hello World"; 
?> 
HEREDOC; 
); 
2

Попробуйте следующее:

<?php 
$file = "helloworld.php"; 
$content = file_get_contents($file); 
print_r(htmlspecialchars($content)); 
?> 

HelloWorld.php:

<?php 
echo "Hello World"; 
?> 

Будет хорошо работать.

2

Похоже, вам нужно добавить разрыв строки в конец каждой строки. Вы можете использовать поиск по регулярному выражению/заменить следующим образом (где $ NewData уже содержит строку, которую вы хотите добавить в файл):

<?php 
$newData = preg_replace('/$/',"\n", $newData); 
file_put_contents($file, $newData, FILE_APPEND | LOCK_EX); 
?> 

Это находит конец каждой строки (обозначается $ в регулярном выражении) и добавляет новую строку (\ n) в эту позицию.

Смежные вопросы