我对PHP很陌生。我正在尝试:
- 将数据从 XML 文件写入变量;
- 将变量中的数据写入文件;
文件为空。我认为这与XML文件解析期间的延迟有关。变量已创建,但它为空,这就是文件为空的原因。是否有延迟或某种解决方法?
代码:
$xml = simplexml_load_file("someXMLFileWhichTakesTimeToLoad.xml") or die ("Error: Cannot create object");
$myfile = fopen("eeFuelPrice.txt", "w") or die("Unable to open file!");
print_r($xml);
fwrite($myfile, $xml);
print_r("successfully wrote file");
提前感谢!
我假设您想将XML作为XML而不是字符串使用...
注意:simplexml_load_file()
是一个阻塞函数:当它返回时,文件已经解析。
您需要一些错误处理:您正在打印$xml
所以我假设打印了您期望的数据。 fwrite()
返回写入的字节数 - 它返回什么?如果它是零,(它可能是),那么这就是你的问题。
您可以改用类似 asXML()
的内容将 XML 对象打印到文件中。 fwrite()
用于将字节(字符串)写入文件。
你应该使用file_get_contents()
和file_put_contents()
函数。
$xml = "someXMLFileWhichTakesTimeToLoad.xml";
$myfile = "eeFuelPrice.txt";
$content = file_get_contents($xml);
file_put_contents($myfile, $content);
您遇到的问题是simplexml_load_file返回一个对象(请参阅文档) 不能使用 fwrite 将对象直接写入文件:
int fwrite ( resource $handle , string $string [, int $length ] )
如果您尝试做的只是获取一个 XML 文件的内容并将其添加到文本文件中,则只需使用 file_get_contents 读取内容;它返回一个字符串值而不是一个对象。