Php 如何在localhost中将数据写入xml?
我正在本地主机中编写数据xml。但它不写数据。PHP和XML文件位于同一目录中。当执行.php时,没有响应。我如何解决这个问题 Xml文件:Php 如何在localhost中将数据写入xml?,php,xml,database,localhost,Php,Xml,Database,Localhost,我正在本地主机中编写数据xml。但它不写数据。PHP和XML文件位于同一目录中。当执行.php时,没有响应。我如何解决这个问题 Xml文件: <?xml version="1.0"?> <Infos> <Info name="someone" mail="something@gmail.com" /> </Infos> 我的PHP代码: <?php $testName = "Stephen" $testMail = "example@g
<?xml version="1.0"?>
<Infos>
<Info name="someone" mail="something@gmail.com" />
</Infos>
我的PHP代码:
<?php
$testName = "Stephen"
$testMail = "example@gmail.com"
addInfoToXml(__DIR__ . "/test.xml","Infos","Info",$testName,$testMail);
function addInfoToXml($path,$parent,$child,$name,$mail)
{
$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->preserveWhiteSpace=true;
$doc->load($path);
$root = $doc->getElementsByTagName($parent)->item(0);
$info = $doc->createElement($child);
$info->setAttribute("adsoyad",$name);
$info->setAttribute("mail",$mail);
$info = $root->appendChild($info);
$doc->save($path);
}
?>
formatOutput=true;
$doc->preserveewhitespace=true;
$doc->load($path);
$root=$doc->getElementsByTagName($parent)->项(0);
$info=$doc->createElement($child);
$info->setAttribute(“adsoyad”,$name);
$info->setAttribute(“邮件”,$mail);
$info=$root->appendChild($info);
$doc->save($path);
}
?>
避免遗漏声明变量中的分号,如@Raphioly San所述,您应该使用实际路径而不是url。一些错误检查也可能是一个好主意
$testName = "Stephen";
$testMail = "example@gmail.com";
addInfoToXml( __DIR__."\test.xml", "Infos", "Info", $testName, $testMail);
function addInfoToXml( $path, $parent, $child, $name, $mail ){
$path=file_exists( realpath( $path ) ) ? realpath( $path ) : false;
clearstatcache();
if( $path ){
$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->preserveWhiteSpace=true;
$doc->load( $path );
$root = $doc->getElementsByTagName( $parent )->item(0);
if( $root ){
$info = $doc->createElement( $child );
$info->setAttribute("adsoyad",$name);
$info->setAttribute("mail",$mail);
$info = $root->appendChild($info);
$doc->save($path);
}
} else {
echo "error: incorrect path to xml file";
}
}
尝试将$path视为真实路径而不是url。。。或者,如果源是远程的,而您正在创建的xml是本地的,请提供本地和远程路径(url或真实路径)。。。写入url通常需要的不仅仅是写入操作,因为您的web服务对您请求它执行的操作有点挑剔。。我编辑了您的问题…它成功地使用了本地路径,如C:\users\..\test.xml。但是仍然不能与localhost一起工作。主要问题是什么?我已经测试了xml文件的chmod值。该值为444。文件似乎只有可读性。将chmod值设置为777可以解决问题吗?如果可以,我如何设置该值?您可以从url读取文件,但不能像这样回写到url!更好的方法是使用实际路径(如图所示),在处理路径时不要使用反斜杠,而是使用正斜杠(或使用分隔符定义)。它们仅适用于Windows,在php中被解释为正向斜杠,然后在进入操作系统层时被转换回Nackslash。