2012-07-28 188 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