我是PHP的新手。我想:
该文件为空。我认为这与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");
提前致谢!
答案 0 :(得分:1)
我假设您希望将XML用作XML,而不是字符串......
注意:$xml
是一个阻塞函数:当它返回时,文件已解析。
您需要进行一些错误处理:您正在打印fwrite()
,因此我假设打印出您期望的数据。 fwrite()
返回写入的字节数 - 它返回什么?如果它为零,(它可能会是),那么这就是你的问题。
您可以使用javadoc之类的东西将XML对象打印到文件中。 Dim HWID As String = String.Empty
Dim mcl As New ManagementClass("win32_processor")
Dim MOBC As ManagementObjectCollection = mcl.GetInstances()
For Each mob As ManagementObject In MOBC
If HWID = "" Then
HWID = mob.Properties("processorID").Value.ToString()
Exit For
End If
Next
Dim mboardstr As String = Nothing
Dim mbs As ManagementObjectSearcher = New ManagementObjectSearcher("Select * From Win32_BaseBoard")
For Each mo As ManagementObject In mbs.Get
mboardstr = mboardstr + mo("SerialNumber").ToString
Next
MsgBox(mboardstr)
用于将字节(字符串)写入文件。
答案 1 :(得分:1)
您应该使用file_put_contents()
和$xml = "someXMLFileWhichTakesTimeToLoad.xml";
$myfile = "eeFuelPrice.txt";
$content = file_get_contents($xml);
file_put_contents($myfile, $content);
函数。
Cell 1=
'1007_s_at' 780 'DDR1'
'1053_at' 5982 'RFC2'
'117_at' 3310 'HSPA6'
'121_at' 7849 'PAX8'
'1255_g_at' 2978 'GUCA1A'
'1294_at' 7318 'UBA7'
'1316_at' 7067 'THRA'
答案 2 :(得分:0)
您遇到的问题是simplexml_load_file返回一个对象(see docs)您无法使用fwrite将对象直接写入文件:
int fwrite(resource $ handle,string $ string [,int $ length])
如果你要做的就是获取一个XML文件的内容并将其添加到文本文件中,那么只需用file_get_contents来阅读内容;它返回一个字符串值而不是一个对象。