代码之家  ›  专栏  ›  技术社区  ›  Angel.King.47

覆盖php fwrite()中的内容

  •  3
  • Angel.King.47  · 技术社区  · 16 年前

    有什么方法可以用PHP覆盖一行吗?让我用例子更清楚一点。

    我的数组

    array{
        [DEVICE] => eth0,
        [IPADDR] => 192.168.0.2,
        [NETMASK] => 255.255.255.0,
        [NETWORK] => 192.168.0.0,
        [BROADCAST] => 255.255.255.255,
        [GATEWAY] => 192.168.0.1,
        [ONBOOT] => no
    }
    

    文件即时消息覆盖

    DEVICE=eth0
    IPADDR=192.168.200.2
    NETMASK=255.255.255.0
    NETWORK=192.168.200.0
    BROADCAST=255.255.255.255
    GATEWAY=192.168.200.1
    ONBOOT=no
    DNS1=195.100.10.1
    

    重写文件的结果

    DEVICE=eth0
    IPADDR=192.168.0.2
    NETMASK=255.255.255.0
    NETWORK=192.168.0.0
    BROADCAST=255.255.255.255
    GATEWAY=192.168.0.1
    ONBOOT=no
    DNS1=195.100.10.1
    

    注意 DNS1=195.100.10.1 保留在文件中,因为它有一个值为的键 DNS 在我们的数组中。

    谢谢

    3 回复  |  直到 16 年前
        1
  •  2
  •   Savageman    16 年前

    你需要找到一个算法来完成它:

    1. 读取要用覆盖的文件 file() 函数(仔细查看选项,您不希望在数组中包含新闻行字符)。
    2. 循环遍历数组并 explode() 要创建新键的每个元素=>值数组。
    3. 将获得的数组与第一个数组合并。
    4. 将新数组的每个项内爆
    5. 通过将数组内插以覆盖文件\n
        2
  •  2
  •   nico    16 年前

    我以前读过一个变量中的整个文件,然后用preg_replace替换我想要更改的各种变量。

        3
  •  1
  •   Artefacto    16 年前

    我再听听韦比戴夫的评论。你只能找到合适的位置,然后使用fwrite,如果你写的内容与你写的内容大小相同(事实并非如此)。