Php 如何在localhost中将数据写入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。但它不写数据。PHP和XML文件位于同一目录中。当执行.php时,没有响应。我如何解决这个问题

Xml文件:

<?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。