gpt4 book ai didi

php - XMLWrite 将文件输出到与 php 脚本相同的目录

转载 作者:行者123 更新时间:2023-11-29 13:31:35 25 4
gpt4 key购买 nike

大家好,我又来了。在我最后一个问题之后XML parsing error (RESOLVED) XML Sample这确实帮助我了解了更多。我正在对抗另一堵砖墙。

我的问题:我需要做的是在我的 php 文档所在的同一目录中编写一个 .xml 文件。因此,当我执行脚本时,它应该自动将 .xml 文件保存到 php 文件所在的目录中。这可能吗?如何实现?

目前我正在尝试使用 openURI 输出文件,但是当我这样做时,我收到以下错误(翻译自荷兰语):

有趣的是,如果我使用 php://output,它会在浏览器中正确显示所有内容。

XML-Parse Error: no element found
Location: xml.php
Rownumber 1, column 1:

代码:

<?php
//SELECTEER ALLES VAN DATABASE PROJECTEN
$sql = "SELECT * FROM projecten ORDER BY id";
$res = mysql_query($sql);

//BEGIN XML
$xml = new XMLWriter();
$xml->openURI('file.xml');
$xml->setIndentString ( '&#09;' );
$xml->startDocument( '1.0', 'UTF-8', 'no' );
$xml->setIndent(true);

//FUNCTIE VOOR MAKKELIJKER INVOEREN
function addNode( $xml, $NodeName, $Value ) {
$xml->startElement( $NodeName );
$xml->writeCData( $Value );
$xml->endElement();
}

//START HOOFD ELEMENT
$xml->startElement('projecten');

//WHILE LOOP DOOR DATABASE
while ($row = mysql_fetch_assoc($res)) {

//START PROJECT
$xml->startElement('project');
$xml->writeAttribute('id', $row['id']);

addNode( $xml, "id", $row["id"] );
addNode( $xml, "projectnaam", $row['projectnaam'] );
addNode( $xml, "status", $row['status'] );
addNode( $xml, "klantnaam", $row['klantnaam'] );
addNode( $xml, "startdatum", $row['startdatum'] );
addNode( $xml, "eindddatum", $row['einddatum'] );

//EIND PROJECT
$xml->endElement();
}

//EINDE HOOFD ELEMENT
$xml->endElement();

//EINDE DOCUMENT
$xml->endDocument();
header('Content-type: text/xml');
$xml->flush();
?>

再次感谢...

最佳答案

我建议您使用 fopen 。这是我的代码-

<?php 
include('db.php');
$sql = "SELECT * FROM `data`";

$result = mysqli_query($conn,$sql);

$xml = new XMLWriter();
$xml->openMemory();
$xml->setIndent(true);
function addNode($xml,$NodeName,$Value){
$xml->startElement($NodeName);
$xml->writeCData($Value);
$xml->endElement();

}
$xml->startElement('Details');
while($row = mysqli_fetch_assoc($result)){
$xml->startElement('Data');
$xml->writeAttribute('date',$row['date']);
addNode($xml,"Id",$row["id"]);
addNode($xml,"age",$row["age"]);
addNode($xml,"Name",$row["name"]);
$xml->endElement();
}
$xml->endElement();
$xml->endDocument();

$content = $xml->flush();

$fp = fopen("filetobesaved.xml",'w');
fwrite($fp,$content);
fclose($fp);
header('Content-type: text/xml');
echo $content;
?>

此代码将创建一个生成 xml 文件并将其保存在呈现 php 代码文件的同一文件夹中,并将其保存为名称 filetobesaved.xml 。这里 w 将创建该文件,如果它不存在 - $fp = fopen("filetobesaved.xml",'w'); 如果您想创建一个新目录并将 .xml 文件保存到其中,那么您可以这样做这样-

$filename = 'D:/foldertobecreated/filetobesaved.xml';
$dirname = dirname($filename);
if (!is_dir($dirname))
{
mkdir($dirname, 0755, true);
}

$fp = fopen("$dirname\\filetobesaved.xml",'w');

关于php - XMLWrite 将文件输出到与 php 脚本相同的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19380567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com