PHP如何把文件A的变量调用到文件B,然后在文件B修改文件A的变量的值

PHP如何把文件A的变量调用到文件B,然后在文件B修改文件A的变量的值

有2个php文件,分别为A和B

A有几个变量,其中
$q="1"
$w="3"

然后调用到文件B,我想在文件B修改变量$q和$w的值,然后更新到文件A。[文件A里面有很多个变量,要把修改了的变量对应地覆盖]

你这问题的关键不是怎么传递变量。因为你最终要修改那两个变量的值,所以不用传递变量,而应该想办法直接修改文件。至于怎么修改就要看你的文件中的数据的结构了。
像下面这种就是最简单的写文件的方法
$file = fopen("1.txt","w");
fwrite($file,"abc");
fclose($file);追问

我要修改指定的变量,只是覆盖相同的变量就行了,我不想重新生成文件

追答

所以我说要根据你文件中的数据的结构啊, 你要判断你要修改的变量在什么位置,要从第几个字符开始覆盖等等,字符串,数组等处理方式都是不一样的

追问

不能通过判断来覆盖数据吗

追答

能不能覆盖我没试过,不过即使能我也觉得太麻烦,如果能的话,按找我的理解:
假设你的文件里是
$aaa="111";
$bbb="111";
$ccc="111";
这种的,那么应该就是通过"="、";"这些标识符来分割,然后循环找到你要修改的变量,再确定长度,然后再用覆盖写入文件去写入。
我觉得是不如直接重新生成文件方便,反正一般这种文件都不会大

追问

我做的是网站配置文件啊

追答

.....我知道,谁说配置文件就不可以重新生成了。
你查一下fopen()feof() ftell() fseek()rewind()等等这些和写入文件相关的函数。你需要解决的是能不能覆盖写入,指定位置写入是可以的,只要你做字符串处理,用判断就可以了。但是覆盖写入这个我不知道。而且按你的想法还是要指定覆盖某一段的数据。我觉得直接重新生成就行了,搞那么麻烦做什么,又不是什么大文件,一瞬间就好了

下面是网上搜的一段,你试试
$dh='../../'.$root;//完整路径
$length=strlen($order[0])+strlen($order[1])+1;//第三个空格开始的位置
$str=substr($content,$length);//从第三个空格开始截取

$fp = fopen($dh, 'r+');
if ($fp) {
$i = 1;
while (!feof($fp)){
//修改第二行数据
if ($i == 2) {
//fseek($fp, 2, SEEK_CUR);
file_put_contents($fp, $str);
echo strlen($fp);
break;
}
fgets($fp);
$i++;
}
fclose($fp);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-05
A文件添加到B的链接,然后在链接地址后面加?变量名=变量值

比如 b.php?q=$q

注意下引号追问

变量的值要在文件B里面修改,然后再保存进文件A

第2个回答  2013-08-05
把方法写在B文件,然后A文件包含B文件,调用B文件的方法
相似回答