在php中保存xml数据
我正在尝试使用PHP中的数据库查询创建并保存一个xml文件。 代码在php中保存xml数据,php,xml,Php,Xml,我正在尝试使用PHP中的数据库查询创建并保存一个xml文件。 代码 bind(':call\u number',$call\u number); $db->query($sql); $row=$db->single(); $xml=newXMLWriter(); $xml->openMemory(); $file='parkerfd\uux'$打你的电话号码。xml'; $xml\u File=$INC\u DIR。“nfirs_files/”$file; $xml->setIndent(tru
bind(':call\u number',$call\u number);
$db->query($sql);
$row=$db->single();
$xml=newXMLWriter();
$xml->openMemory();
$file='parkerfd\uux'$打你的电话号码。xml';
$xml\u File=$INC\u DIR。“nfirs_files/”$file;
$xml->setIndent(true);
$xml->startDocument();
$xml->startElement(“事件”);
//电话号码
$xml->startElement(“事件编号”);
$xml->writeRaw($row['incident_number']);
$xml->endElement();
//年
$xml->startElement(“事件年”);
$xml->writeRaw($row['incident_year']);
$xml->endElement();
//地址号码
$xml->startElement('address_number');
$xml->writeRaw($row['address\u number']);
$xml->endElement();
//前缀方向
$xml->startElement('prefix_directive');
$xml->writeRaw($row['prefix_directive']);
$xml->endElement();
//街道名称
$xml->startElement('street_name');
$xml->writeRaw($row['street\u name']);
$xml->endElement();
//街道类型
$xml->startElement('street_type');
$xml->writeRaw($row['street\u type']);
$xml->endElement();
//十字街1号
$xml->startElement('cross_street_1');
$xml->writeRaw($row['cross_street_1']);
$xml->endElement();
//十字街2号
$xml->startElement(“cross_street_2”);
$xml->writeRaw($row['cross_street_2']);
$xml->endElement();
//城市
$xml->startElement('city');
$xml->writeRaw($row['city']);
$xml->endElement();
//陈述
$xml->startElement('state');
$xml->writeRaw($row['state']);
$xml->endElement();
//事件类型
$xml->startElement(“事件类型”);
$xml->writeRaw($row['incident_type']);
$xml->endElement();
$xml->endElement()//事件元素
标题('Content-type:text/xml');
文件内容($xml\u文件,$xml->outputMemory());
$xml->flush();
发送ftp($xml\u文件,$File);
}
代码的目的是将名为“parkerfd_uuxxxxxxxx.xml”的xml文件保存到根目录/nfirs_文件中。为什么不保存xml文件?R这不起作用的原因有很多 第一个原因是,您正在访问函数中未定义的
$INC_DIR
。您将希望通过添加以下代码来允许使用它
第二个原因是路径$INC\u DIR。“nfirs\u files/”
甚至可能不存在,因此无法创建该文件。您需要确保该文件夹存在,如果不存在,请创建它
第三,这不仅仅是为了让你的生活更轻松。与其定义每个键,不如这样做
此文件夹是否为eixst<代码>$\u服务器[“文档\u根”]。“/dispatch dev/nfirs_files/”代码>@Augwa是的,文件夹存在感谢您的回答。我做了建议的更改,没有创建xml文件。我的代码中肯定还有其他问题。
<?php
$INC_DIR = $_SERVER["DOCUMENT_ROOT"]. "/dispatch-dev/";
include_once($INC_DIR. 'config/database.class.php');
require_once ($INC_DIR.'functions/ftp.php');
function export_xml($call_number)
{
$db = new Database();
$sql = "SELECT * FROM nfirs_export WHERE incident_number = :call_number";
$db->bind(':call_number', $call_number);
$db->query($sql);
$row=$db->single();
$xml = new XMLWriter();
$xml->openMemory();
$file = 'parkerfd_' . $call_number . '.xml';
$xml_File = $INC_DIR. "nfirs_files/" .$file;
$xml->setIndent(true);
$xml->startDocument();
$xml->startElement('incident');
//call number
$xml->startElement('incident_number');
$xml->writeRaw($row['incident_number']);
$xml->endElement();
//year
$xml->startElement('incident_year');
$xml->writeRaw($row['incident_year']);
$xml->endElement();
//address number
$xml->startElement('address_number');
$xml->writeRaw($row['address_number']);
$xml->endElement();
//prefix directions
$xml->startElement('prefix_directional');
$xml->writeRaw($row['prefix_directional']);
$xml->endElement();
//street name
$xml->startElement('street_name');
$xml->writeRaw($row['street_name']);
$xml->endElement();
//street type
$xml->startElement('street_type');
$xml->writeRaw($row['street_type']);
$xml->endElement();
//cross street 1
$xml->startElement('cross_street_1');
$xml->writeRaw($row['cross_street_1']);
$xml->endElement();
//cross street 2
$xml->startElement('cross_street_2');
$xml->writeRaw($row['cross_street_2']);
$xml->endElement();
//city
$xml->startElement('city');
$xml->writeRaw($row['city']);
$xml->endElement();
//state
$xml->startElement('state');
$xml->writeRaw($row['state']);
$xml->endElement();
//incident type
$xml->startElement('incident_type');
$xml->writeRaw($row['incident_type']);
$xml->endElement();
$xml->endElement(); //incident element
header('Content-type: text/xml');
file_put_contents($xml_File, $xml->outputMemory());
$xml->flush();
send_ftp($xml_File, $file);
}
function export_xml($call_number)
{
global $INC_DIR;
// rest of your code
}
if (false === is_dir($INC_DIR. "nfirs_files/")) {
if (false === mkdir($INC_DIR. "nfirs_files/", 0755)) {
die('failed to create folder'); // you'll need to debug this
}
}
$xml->startElement('incident');
foreach($row as $key => $value) {
$xml->startElement($key);
$xml->writeRaw($value);
$xml->endElement();
}
$xml->endElement();