2011-04-01 162 views
2

,當我使用的fopen我收到以下錯誤某些原因:如何將文本寫入XML文件?

未能打開流:HTTP包裝不支持/examplefolder/examplefile.php

寫連接當我使用這個:

<?php 
$myFile = "http://url.com/" . $_COOKIE['user'] . "/current_pro_pic.xml"; 
$xmlw = new XMLWriter; 
$xmlw->setIndent(true); 
$xmlw->startDocument('1.0', 'UTF-8'); 
$xmlw->startElement('user_current_pro_pic'); 
$xmlw->writeElement('full_url', "<![CDATA[sometexthere*]]>"); 
$xmlw->writeElement('time', date('l F jS Y ') . 'at' . date(' h:i A')); 
$xmlw->endElement(); 
$xmlw->endElement(); 
$xmlw->endElement(); 
$xmlw->endDocument(); 
?> 

它吐出了這一點:

Warning: XMLWriter::setIndent() [xmlwriter.setindent]: Invalid or unitialized XMLWriter object in *** on line 4 

Warning: XMLWriter::startDocument() [xmlwriter.startdocument]: Invalid or unitialized XMLWriter object in *** on line 5 

Warning: XMLWriter::startElement() [xmlwriter.startelement]: Invalid or unitialized XMLWriter object in ***p on line 6 

Warning: XMLWriter::writeElement() [xmlwriter.writeelement]: Invalid or unitialized XMLWriter object in *** on line 7 

Warning: XMLWriter::writeElement() [xmlwriter.writeelement]: Invalid or unitialized XMLWriter object in *** on line 8 

Warning: XMLWriter::endElement() [xmlwriter.endelement]: Invalid or unitialized XMLWriter object in *** on line 9 

Warning: XMLWriter::endElement() [xmlwriter.endelement]: Invalid or unitialized XMLWriter object in *** on line 10 

Warning: XMLWriter::endElement() [xmlwriter.endelement]: Invalid or unitialized XMLWriter object in *** on line 11 

Warning: XMLWriter::endDocument() [xmlwriter.enddocument]: Invalid or unitialized XMLWriter object in *** on line 12 

有誰知道爲什麼會發生這種情況?它不是文件權限,也不是fyi。

+0

您需要使用的文件路徑,而不是一個URL的。 – 2011-04-01 22:48:04

回答

1

標準從網頁獲取,總是隻讀。服務器得到一個問題,並向您發送答案。如果你想寫XML,你需要發佈它,或者將它作爲get的變量發送(後者是空間受限的)

+0

我該怎麼做明智的代碼? – 2011-04-01 22:47:06

+0

看看http://uk2.php.net/manual/en/function.http-post-data.php 正如Pekka建議,如果該網站是你自己的,你可以直接做到本地文件,但是,假設你通過URL調用它,你可能沒有直接訪問..後會是要走的路 – BugFinder 2011-04-01 22:51:31

+0

我通過不使用「http:// www ...等解決了這個問題」謝謝你的幫助! – 2011-04-01 23:24:19

1

你不能通過使用http url來引用它來編寫文件。即使該文件位於同一臺服務器上,也必須將文件系統路徑指定給該文件。

1

必須調用像openMemory的開放*方法之一,openUri

$xmlw = new XMLWriter; 
$xmlw->openUri('path_to_save'); 
// ... or 
$xmlw->openMemory(); 
// ... youe code 
$xmlw->setIndent(true); 
// ...