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

PHP字符串写入文件方法及写入代码仅显示值的问题求助

解决PHP文件写入时变量被解析的问题

兄弟,太懂你卡了好几个小时的那种挫败感!咱们直接抓核心问题来解决:

你遇到的两个关键问题:

  • 你用了HTML实体转义(&lt;)代替真实的<,导致写入的不是有效的PHP标签
  • 字符串中的$id被PHP当成变量解析了,所以最终写入文件的是变量的值15,而不是$id = 15;这个代码本身

修复方案

我们需要保证两个点:一是写入正确的PHP标签,二是让字符串里的$id不被解析,原封不动写入文件。这里有两种常用方法:

方法1:使用单引号包裹字符串(推荐)

单引号在PHP里不会解析内部的变量,所以直接把你要写入的PHP代码用单引号包起来就行:

if (file_exists($file)) {
    $newfile = "../".$low.$row["page_id"].".php";
    $url = "../".$low.$row["page_id"];
    $create = fopen($newfile,"w");
    // 单引号包裹,内部的$id不会被解析,直接写入原内容
    $addfile = '<?php 
        include "../page.php"; 
        $id = 15; 
    ?>';
    $write = fwrite($create, $addfile);
    fclose($create); // 一定要记得关闭文件资源!
}

方法2:双引号内转义$符号

如果你习惯用双引号,只需要把$前面加个反斜杠\,告诉PHP这不是变量,只是普通字符:

if (file_exists($file)) {
    $newfile = "../".$low.$row["page_id"].".php";
    $url = "../".$low.$row["page_id"];
    $create = fopen($newfile,"w");
    // 用\转义$,避免变量解析
    $addfile = "<?php 
        include '../page.php'; 
        \$id = 15; 
    ?>";
    $write = fwrite($create, $addfile);
    fclose($create);
}

额外提醒

  • 别忘调用fclose($create):打开文件后如果不关闭,可能会导致文件锁定或者内容写入不完整的问题
  • 检查文件权限:确保你的脚本有目标目录的写入权限,不然也会导致写入失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:49:21