如何写文件原样?

时间:2013-12-07 12:50:59

标签: php newline

我有一串这样的代码:

<?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);

8 个答案:

答案 0 :(得分:5)

使用heredoc可以正常工作:

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

答案 1 :(得分:4)

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

答案 2 :(得分:3)

你的字符串应该是这样的

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

然后将其写入任何fileName.php,php,而解析忽略新行,只有分号很重要。

编辑1

由于你想把你的字符串写成代码,按照上面的步骤,你将把你所有的代码放在一行中更像是一个压缩的代码,这将是人类不可读的,为了使它对人类友好,你将不得不添加格式,格式化的最小方法是至少为缩进添加新的行字符和制表符。

为此你必须做两件事,找出你需要添加新换行符的字符(a)和那些需要缩进的字符(b)。在写入文件之前,先进行一些预处理,为char类型(a)添加新的行字符,同时维护一个堆栈,以便为缩进添加适当数量的制表符。

答案 3 :(得分:2)

尝试在每行代码之间使用以下内容将其放在php文件的新行中:

 . PHP_EOL .

答案 4 :(得分: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);
?>

答案 5 :(得分:2)

请尝试以下操作:

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

Helloworld.php

<?php
echo "Hello World";
?>

它会正常工作。

答案 6 :(得分:2)

听起来你需要在每一行的末尾添加换行符。您可以使用正则表达式搜索/替换,如下所示(其中$ newData已包含要附加到文件的字符串):

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

这将找到每一行的结尾(由正则表达式中的$表示)并在该位置添加新行(\ n)。

答案 7 :(得分: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;
?>