2012-07-28 78 views
0

我想在php文件(如task.php)中創建一個xml文件(linkler.xml),並在此php文件中讀取/寫入xml以獲取android應用程序。XML輸出錯誤 - PHP

但我得到的錯誤:

enter image description here

http://i.stack.imgur.com/loumJ.png

而且在XML文件中的錯誤:

enter image description here

http://i.stack.imgur.com/nWSwD.png

我該如何解決這個問題?由於

<?php header('Content-type: text/xml'); 
     if(isset($_POST['url'])) { 
      include('curl.php'); 
      include('youtube.php'); 
      $tube = new youtube(); 
      $links = $tube->get($_POST['url']); 
      if($links) { 
       $dosya_adi = "linkler.xml"; 
       $dosya = fopen ($dosya_adi , 'w') or die ("Dosya yok"); 
       $xml = "<?xml version=\"1.0\" charset=\"utf-8\"?>\n"; 
       $xml.='<vidlinks>'; 
       $xml.='<tur>'.$links[0][ext].'</tur>'; 
       $xml.='<link>'.$links[0][url].'</link>'; 
       $xml.='<kalite>'.$links[0][type].'</kalite>'; 
       $xml.='</vidlinks>'; 
       fputs ($dosya ,$xml) ; 
       fclose ($dosya); 
       echo file_get_contents("http://tizentr.net/ara/linkler.xml"); 
     ?> 
     <?php } else { 
      echo $tube->error; 
     } 
    } 
     ?> 
+0

如果您發佈導致錯誤的實際XML源,那麼它會更有幫助 – 2012-07-28 14:11:37

+0

我們需要查看生成的輸出。不是來源。 – 2012-07-28 14:13:24

+0

嗨,這個xml源代碼:http://pastebin.com/UNQZL248 – Baby 2012-07-28 14:26:09

回答

0

嘗試完成所有代碼:

<?php 
ob_start(); 
<--code here--> 
$output = ob_get_contents(); 
ob_end_clean(); 
echo $output; 
header('Content-type: text/xml'); 
?> 
+0

我在努力。謝謝.. – Baby 2012-07-28 14:27:59

+0

現在我收到錯誤「文檔末尾的額外內容」?謝謝.. – Baby 2012-07-28 14:32:14

0

不應該有在XML聲明字符集字,但編碼字。所以你應該在你的XML中使用

<?xml version="1.0" encoding="utf-8"?> 

你也可以查看XML指南http://xmlwriter.net/xml_guide/xml_declaration.shtml

這應該可以解決你的XML錯誤;並關於第一次錯誤檢查,如果你有一些輸出在curl.php和youtube.php文件,如果是的話,刪除它。

+0

你好xml源也有聲明。 http://pastebin.com/UNQZL248 – Baby 2012-07-28 14:27:18

+0

因此,你的XML源http://tizentr.net/ara/linkler.xml現在可以;第一個錯誤是否仍然存在? – user15 2012-07-28 14:52:56

+0

是的,現在可以。我將使用str_replace函數來處理特殊字符。謝謝蘭卡。 – Baby 2012-07-28 14:56:28