对于我网站的一部分,我需要能够使用php将php代码写入文件。 例如:
$filename = "RtestR.php";
$ourFileName =$filename;
$ourFileHandle = fopen($ourFileName, 'w');
$written = "
<html>
<body>
<?php
echo \"I like the color \".$_SESSION['color'].\"!!!!\";
</body>
</html>
";
fwrite($ourFileHandle,$written);
fclose($ourFileHandle);
但是,它不会创建文件,而是抛出此错误:
解析错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE,在第14行期待T_STRING或T_VARIABLE或T_NUM_STRING
我做错了什么以及将PHP代码写入文件的正确方法是什么?
编辑:
我想我可能需要让自己更清楚...我希望在加载新创建的文件时确定SESSION。从技术上讲,我不想在这个页面上获得会话,而是在我创建的页面上!我想将代码写入文件,而不是代码的输出!
答案 0 :(得分:8)
终于搞清楚了!
我需要逃避$
符号!
像这样:
$written = "
<html>
<body>
<?php
echo \"I like the color \".\$_SESSION['color'].\"!!!!\";
</body>
</html>
";
不敢相信我没想到;)
谢谢大家!
答案 1 :(得分:1)
你可以这样做: -
<?php
$filename = "RtestR.php";
$ourFileName =$filename;
$ourFileHandle = fopen($ourFileName, 'w');
$written = "<html>
<body>
I like the color ".$_SESSION['color']."!!!!
</body>
</html> ";
fwrite($ourFileHandle,$written);
fclose($ourFileHandle);
?>
答案 2 :(得分:1)
在这种情况下提及php's HEREDOC似乎相关,例如:
<?php
$filename = 'RtestR.php';
$ourFileName = $filename;
$ourFileHandle = fopen($ourFileName, 'w');
$write = <<<"FILE_CONTENTS"
<p>I like the color <?={$cleanSessionVars[ 'color' ]};?>.</p>
FILE_CONTENTS;
fwrite($ourFileHandle, $write);
fclose($ourFileHandle);
答案 3 :(得分:0)
您错过了结束的PHP代码?>
。
考虑一下你所做的事情可能不是最好的方法。我可以想到用PHP编写PHP文件的唯一用例是一些编译模板代码或奇怪的缓存。
答案 4 :(得分:0)
$fp = fopen("test.php", "w");
$string = '<html>
<body>
<?php
echo "I like the color ".$_SESSION[\'color\']."!!!!";
?>
</body>
</html>';
fwrite($fp, $string);
fclose($fp);
答案 5 :(得分:0)
你好pattyd:很高兴看到你:) + 不要upvote /接受这个答案:
我建议以这种方式简化:
$written = "
<html>
<body>
I like the color \" $_SESSION['color'] \" !!!!
</body>
</html>
";