【问题标题】:how to dynamically name the xml while creating xml创建xml时如何动态命名xml
【发布时间】:2017-05-10 11:49:21
【问题描述】:

我需要保存 XML 并根据当前日期动态命名每个新创建的 xml,并增加每个新 XML。

假设如果我今天第一次访问 html 表单并在提交表单后创建一个 XML,那么 XML 名称应该是 当前日期-001

(20161225-001)

如果我通过访问 HTML 表单创建新的 XML,那么 NExt XML 应该保存为

20161225-002

然后继续。

这是我的代码。

<?php
date_default_timezone_set('Europe/London');
 $date = date('Y-m-d H:i:s');
$xml= new DomDocument("1.0","UTF-8");
$xml->formatOutput=true;
$doc=$xml->createElement("clip");
$xml->appendChild($clip);

$supplier=$xml->createElement("supplier");
$supplier->setAttribute("id",1);
$clip->appendChild($supplier);
//first metadata tag
$metadata=$xml->createElement("metadata");
$clip->appendChild($metadata);
$name=$xml->createElement("name","owner");
$metadata->appendChild($name);
$value=$xml->createElement("value","self");
$metadata->appendChild($value);
echo "<xmp>".$xml->saveXML()."</xmp>";
    $xml->save("company_test.xml") or die("Error,Unable to create");
?>

【问题讨论】:

  • 问题出在哪里/到底是什么?如何保存?如何创建日期?如何找到最后一个序列号?请更改代码/问题并保留相关内容。我 99% 确定 $supplier=$xml-&gt;createElement("supplier"); 行与您的问题无关。
  • 嘿@Dekel 我的问题在这里我需要保存每次新创建的 XML 和 XML 的名称应该是当前日期 - 001,如果我创建第二个然后 002
  • 所以你的问题是“我怎么知道我创建的最后一个文件的名称是什么?” ?
  • 我的问题是每个新创建的 XML 都应该有动态名称,并且命名应该是当前日期 -001
  • 类似这样的东西 20151225-001.xml 20151225-002.xml 20151225-003.xml

标签: php html xml date dom


【解决方案1】:

这将对您有所帮助。您必须创建一个文件 20161225-1.txt,如果该文件夹下的该文件授予文件夹 777 权限

<?PHP
$files = glob("*.txt"); //path of txt file
$divi = (explode(".", $files[0]));
//print_r($divi[0]);
$divided = (explode("-", $divi[0]));
//echo $divided[0];
//echo "<br>";
//echo $divided[1];
//echo "<br>";
//echo $files[0];
header();

$current = $divi[0];
$onprocs = date('Ymd');

if($divided[0] == $onprocs) {
    rename($current.".txt", $divided[0] . "-" . ($divided[1] + 1).".txt");
    $newname = $divided[0] . "-" . ($divided[1] + 1);
} else {
//here if current time if not equal to filename reset the file name
    rename($current.".txt", $onprocs . "-1.txt");
    $newname = $onprocs . "-1";
}


$xml = new DomDocument("1.0", "UTF-8");
$xml->formatOutput = TRUE;
$doc = $xml->createElement("clip");
$xml->appendChild($clip);

$supplier = $xml->createElement("supplier");
$supplier->setAttribute("id", 1);
$clip->appendChild($supplier);
//first metadata tag
$metadata = $xml->createElement("metadata");
$clip->appendChild($metadata);
$name = $xml->createElement("name", "owner");
$metadata->appendChild($name);
$value = $xml->createElement("value", "self");
$metadata->appendChild($value);
echo "<xmp>" . $xml->saveXML() . "</xmp>";
$xml->save($newname . ".xml") or die("Error,Unable to create");


?>

【讨论】:

  • 嘿@Ivan;谢谢你的帮助。我只需要知道如果我今天第一次提交 HTML 表单,那么创建的 XML 的名称应该是 20161225-001.xml,如果是第二次,那么 20161225-002.xml
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 2011-03-17
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 2011-10-16
相关资源
最近更新 更多