我有一串这样的代码:
<?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);
答案 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;
?>