2011-07-12 100 views
0

我希望有人在表單上點擊「提交」,然後打開一個xml文件,並使用從表單生成的新數據覆蓋它的所有內容。使PHP覆蓋XML文件?

PHP能做到嗎?我應該尋找什麼開始?任何例子?

+0

'file_put_contents('yourfile.xml',$ _POST ['the_new_xml'])''。 –

回答

0

是,使用

  • fwrite

    $toWrite; // data generated from form, formatted to XML 
    $fp = fopen('data.xml', 'w'); 
    fwrite($fp, $toWrite); 
    fclose($fp); 
    
+0

@Phoenix你是對的;固定。一年前我的回答並沒有像我今天那樣徹底;-) – wanovak

0

聽起來像你剛剛起步。
你需要研究以下內容:

  1. POST在PHP請求
  2. 文件操作

另外,如果你有一個PHP具體問題,提煉它歸結爲一個字,並將其添加在例如,嘗試去php.net/xml(你會發現關於使用XML的文檔)
另外,無論誰把原來的海報放下 - cmon,男人。如果你認爲這是一個問題的基礎,那就繼續前進。我們都必須從某個地方開始。

0

1 - 填寫表格填寫數據 2 - 將表格數據發送到操作頁面(如果您願意,可以是同一頁面) 3 - 將表單中的數據寫入XML文件。 4 - 完成!

我不明白你爲什麼需要交換數據。 用您希望的數據創建一個新的XML文件非常簡單。 請看下面的示例。

// YOUR DATA FROM METHOD POST OR GET 
     $doc1 = $_POST['doc1']; 
     ... and so on 


    // Start XML file, echo parent node 
     $data = '<sistema versao="1.02" encoding="utf-8">'; 

    // ADD TO XML DOCUMENT NODE 


    $data .= '<dest>'; 
     $data .= '<doc>' . parseToXML($doc1) . '</doc>'; 
     $data .= '<xName>' . parseToXML($name) . '</xName>'; 
     $data .= '<addrDest>'; 
     $data .= '<xLgr>' . parseToXML($addr) . '</xLgr>'; 
     $data .= '<nro>' . parseToXML($num) . '</nro>'; 
     $data .= '<xCpl>' . parseToXML($comp) . '</xCpl>'; 
     $data .= '<xSub>' . parseToXML($suburb) . '</xSub>'; 
     $data .= '<cMun>3523206</cMun>'; 
     $data .= '<xMun>' . parseToXML($city) . '</xMun>'; 
     $data .= '<UF>' . parseToXML($state) . '</UF>'; 
     $data .= '<CEP>' . parseToXML($zip) . '</CEP>'; 
     $data .= '<cCoun>1058</cCoun>'; 
     $data .= '<xCoun>BRASIL</xCoun>'; 
     $data .= '<phone>' . parseToXML($tel1) . '</phone>'; 
     $data .= '</addrDest>'; 
     $data .= '<email>' . parseToXML($email) . '</email>'; 
     $data .= '</dest>'; 


     // End XML file 
     $data .= '</sistema>'; 


     # Put data into client.xml 
     file_put_contents('client.xml', $data); 

我希望這給你一個開始。祝你好運!

0

這看起來已經回答了,但fwrite()的分辨率並沒有真正解釋它對我們的新手是如何工作的。我用file_put_contents代替,但這裏是一個工作示例...

$writeXML = new XMLWriter(); 
$writeXML->openMemory(); 
$writeXML->setIndent(true); 
$writeXML->startDocument("1.0","UTF-8"); 
$writeXML->startElement($root); 

//foreach loop iterating through array results and writing elements 

$writeXML->endDocument(); 
//this will overwrite the xml file 
file_put_contents('xmlfile.xml', $writeXML->flush(true)); 
//this will append any data to the end of the file 
file_put_contents('xmlfile.xml', $writeXML->flush(true), FILE_APPEND); 

希望這有助於... file_put_contents:PHP Manual