【问题标题】:Modify a php file and save it with php [duplicate]修改一个php文件并用php保存[重复]
【发布时间】:2013-08-29 22:34:05
【问题描述】:

我有一个名为 config.php 的文件,它只包含变量。

<?php

//General
$domain = "http://www.nine9gag.com"; //Write the url of your website. EX: http://www.nine9gag.com

$waitMsg = "Wait..."; //The message between 2 images.
$buttonText = "Next Image"; //Default: Next Image

这是整个代码的一小部分。

我想创建一个 php 脚本,用表单中的新数据更改变量并保存此文件。

最好的方法是什么? 谢谢!

【问题讨论】:

  • 通常以任何方式使 PHP 脚本可编辑是个坏主意。您不想将设置存储在数据库中的任何原因?
  • 你应该改用mysql,但你想做什么?
  • 到目前为止您尝试了什么?如果您使用的是 SQL,最好将变量存储在那里。如果你必须使用这样的平面文件,你可以使用 fopen php.net/manual/en/function.fopen.php 和 fclose。
  • file_put_contents 比 fopen/fwrite/fclose 例程更容易。至于将数据转换成正确的格式,我建议使用数组作为数据结构而不是单个变量,并使用var_export 以有效的 PHP 代码形式获取。
  • 尝试使用设置文件.ini.jsonunserialize,甚至是由换行符分隔的纯文本文件。

标签: php


【解决方案1】:

最好的方法是将数据存储在数据库中。如果这不是一个选项,您应该尝试将此数据存储在 xml 文件中。

数据库

数据库的好处是它真正安全。没有密码和用户名,您无法连接到它。您甚至可以以只有您的服务器可以连接到它的方式对其进行配置。

XML

存储小信息的好方法。它是一种严格的语言,因此可以在多平台上使用。您可以使用自己的属性和名称。唯一不好的是,您需要自己使用chmod 或安全规则来保护它。

【讨论】:

  • 我的网站就像 9gag 一样,包含有趣的内容(图像、视频),每个“gag”的详细信息都存储在 .txt 文件中,例如:nine9gag.com/save/lol-8LUq.txt。没关系,还是我必须改用 DB?
  • 如果可以的话。请使用数据库。
  • 我建议您在访问 .xml 文件时阻止对它们的直接访问,方法是在您的 .htaccess 中添加类似这样的内容:&lt;FilesMatch "\.(xml)$"&gt; Order allow,deny Deny from all &lt;/FilesMatch&gt;
  • 对于这样的网站,您应该使用数据库。 W3schools 写了一篇关于将 mysql(一种数据库引擎)与 php 结合使用的精彩文章。也许你可以用它来开始 (w3schools.com/php/php_mysql_intro.asp)
【解决方案2】:

U 可以使用 fread 和 fwrite 将变量存储在文件中。 你可以使用 json_encode。 保存

$json = '{"variable1": 12345,"variable2":6789}';
fwrite($handle,$json,filesize());

加载

$json = json_encode($json);

$variable1 =  $obj->{'variable1'};12345
$variable2 =  $obj->{'variable2'}; 6789

只需添加工程代码即可读写

【讨论】:

  • json 编码效率不如简单的序列化,而且 fread/fwrite 可能不如file_get_contents()file_put_contents() 可取
猜你喜欢
  • 1970-01-01
  • 2011-10-22
  • 2011-04-11
  • 2021-09-08
  • 2021-05-31
  • 1970-01-01
  • 2013-07-19
  • 2022-11-03
  • 2012-10-29
相关资源
最近更新 更多