PHP从包含的脚本文件写入文件
我有一个脚本,我们称之为“main”php脚本,还有一个脚本,称之为“writer”。我有一个xml文件。我的“编写者”从数据库中获取用户的信息并将其写入xml。如果我直接执行我的作者,所有工作都很好 现在我想从我的“主”脚本中执行“writer”。问题是,我可以在main中看到writer文件的输出(为了测试目的,我添加了一些echo),但它不像直接执行xml文件那样重写xml文件 我怎样才能解决这个问题 谢谢 来自main的代码:PHP从包含的脚本文件写入文件,php,include,fwrite,Php,Include,Fwrite,我有一个脚本,我们称之为“main”php脚本,还有一个脚本,称之为“writer”。我有一个xml文件。我的“编写者”从数据库中获取用户的信息并将其写入xml。如果我直接执行我的作者,所有工作都很好 现在我想从我的“主”脚本中执行“writer”。问题是,我可以在main中看到writer文件的输出(为了测试目的,我添加了一些echo),但它不像直接执行xml文件那样重写xml文件 我怎样才能解决这个问题 谢谢 来自main的代码: <?php session_start(); inc
<?php
session_start();
include_once("./../writer.php");
$_SESSION['make_sitemap'] = true;
echo 'ok';
?>
来自编写器的代码:
<?php
session_start();
// include some utility files and header, also connection to db
if($_SESSION['make_sitemap']){
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
// some boring stuff with xml variable
$fp = fopen('./myxml.xml', 'w');
fwrite($fp, $xml, strlen($xml));
fclose($fp);
echo 'done';
}
?>
我想,这些都是人,没什么特别的。但是,嗯,我不知道它为什么不重写。php中的相对路径是根据执行它们的位置来解析的,这意味着php最初运行请求时使用的文件的位置。这意味着当您直接点击
writer.php
时,意味着/myxml.xml
将出现在writer.php与main.php所在的同一目录中
一个更好的选择是建立一个公共位置,所有路径都与类似的$\u服务器[“DOCUMENT\u ROOT”]
相关
所以不是
./myxml.xml
你会说
$_SERVER["DOCUMENT_ROOT"]."/path/to/my/myxml.xml"
如果这变得太单调乏味,您可以在一个公共include中定义几个已知位置,如
define("XML_PATH", $_SERVER["DOCUMENT_ROOT"]."/path/to/my");
然后用它作为
XML_SAVE_PATH."/myxml.xml"
正如其他人评论的那样,发布的
code
总是一首给定的歌。有些代码会很好,否则我无法同时阅读你的问题和图片好吧,好吧,你想要它,你得到了:)^----让我想起了一首~AC-DC~
歌。@Fred heh,我刚从GTA San Andreas枪械店记住它:),我也添加了代码,你完全正确,下次我会考虑的。谢谢你和所有试图帮助我的人!