You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用fopen()创建.php文件时,$code内容被解析而非存为字符串的问题求助

解决PHP字符串被解析的问题

看起来你遇到的核心问题是**$code里的PHP代码被当作可执行逻辑处理,而非纯字符串写入目标文件**,另外代码里还有个小变量错误,我来一步步帮你搞定:

问题根源

  1. 你用双引号定义$code,虽然双引号里的<?php标签本身不会被解析,但如果后续加入session相关变量,会被PHP自动解析替换;更关键的是你把文件句柄变量$fh误写成了$file,导致写入逻辑直接失效。
  2. 要把包含PHP标签的内容完整保存为纯字符串,最稳妥的方式是用单引号包裹字符串——PHP里单引号字符串不会解析任何变量或转义字符(除了单引号本身和反斜杠)。

修正后的代码

<a href="
<?php 
$fl = $p['n'] . ".php"; 
$fh = fopen($fl, 'w') or die("Can't create file"); 
if($fh) { 
    // 用单引号包裹,确保内容完全以字符串形式保存
    $code = '<?php // html and php combined code (the php is for sessions) ?>'; 
    echo fwrite($fh, $code); // 修正变量:将$file改为$fh
    fclose($fh); // 同样修正文件句柄变量
}
?>
"></a>

额外说明

如果后续$code里需要包含单引号,只需要在单引号前加反斜杠转义(比如'It\'s a test string');如果要加入动态变量,建议用字符串拼接或者sprintf函数,避免双引号带来的意外解析问题。

内容的提问来源于stack exchange,提问作者Ger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:03:24