【发布时间】:2011-01-26 05:59:39
【问题描述】:
我试图做的(实际上可以,但只能在我的本地测试服务器上)是用 php 输出一个 php 文件。
问题似乎是 php 的开始和结束标记。
我在 php.net 中查找了 nowdoc,但找不到解决方案的线索。
如果我这样使用它:
$fh = fopen($filenameandpath, 'w') or die("can't open file");
$stringData = <<<'WWR'
<?php
echo('test');
?>
WWR;
$suc = fwrite($fh, $stringData);
fclose($fh);
我得到一个解析错误:
解析错误:语法错误,第 XX 行 /home/ua000154/public_html/test.php 中的意外 T_SL
此解析错误的行号始终是找到开始 php-tag 的位置。我的问题似乎是我需要转义这个标签(我想我应该对结束标签做同样的事情)
我怎么能这样做?这实际上在我的测试服务器上有效,但一旦我将它上传到另一台服务器上的最终位置,它就不会了。
感谢任何帮助。感谢您的宝贵时间!
【问题讨论】:
-
它是完整的文件吗我的意思是你在这个文件的开头添加了
-
我会怀疑这是一个不受支持的边缘情况,但你的例子对我来说很好。你确定你的服务器运行的是 PHP>5.3 吗?
-
@shankman,是的,它是一个带有开始和结束标记 @mario 的完整文件,我刚刚注意到我的远程服务器正在运行 5.2.17,因此不支持 NOWDOC。我使用 nowdoc 因为我需要确切的字符串作为输出。现在我必须弄清楚如何转义字符串中的每个变量。你能帮帮我吗?
标签: php string escaping nowdoc