在Flash中导入PHP文件不起作用

时间:2014-08-05 16:27:35

标签: php mysql xml flash

我将数据从MySQL提取到闪存中。首先我使用PHP查询数据库,然后我回显结果。

$sql = "SELECT path FROM video WHERE id = 52";
$resource = mysqli_query($conn,$sql);

$row = mysqli_fetch_assoc($resource);
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<video>\n";
echo "<path>" . $row['path'] . "</path>\n";
echo "</video>\n";

我只有一个根元素,并且我根据元素后面的标记看不出有什么问题......但是我又错了,我确定有错误。

---更改了我的标题,因此我在此处添加了错误消息---

  TypeError: Error #1088: The markup in the document following the root element must be well-formed.

------ 已编辑 ------

$ row [&#39; path&#39;]的值是来自我的数据库的字符串。我知道它有效,因为我删除了所有xml标记并回显了$ row [&#39; path&#39;]这是视频的网址路径。我也使用了gettype(),它输出了一个字符串。

当我在浏览器中打开此文件时,我实际上什么都看不到。它是一个空白页面,但是因为浏览器将其呈现为html元素,所以我不认为这是问题所在。但是当我查看源代码时,我得到了这个

<?xml version="1.0" encoding="UTF-8"?>
<video>
<path>1.mp4</path>
</video>

另外,我创建了一个带有xml扩展名的随机文件,其中包含上面的xml内容,(将其复制到我的php文件输出的View Source中),它运行正常。我在Flash中看到了内容。在php文件中回显它可能有什么问题?我正在使用textWrangler。它可能与BOM有关,有什么建议吗?

----编辑编号二---

这是我的动作脚本代码。我还是新手,所以我没有把它放在课堂上但是在我的动作层的第一帧内。我只是想让基础工作起作用。

var theXML:XML;
var xmlReq:URLRequest = new URLRequest("../folderExample/poop.php");
var xmlLoader:URLLoader = new URLLoader();

function  xmlLoaded(event:Event):void{
     theXML = new XML(xmlLoader.data); // The Error occurs here.
     trace(theXML.toXMLString());
}

xmlLoader.load(xmlReq);
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);

1 个答案:

答案 0 :(得分:0)

来自http://www.flashdevelop.org/community/viewtopic.php?f=13&t=3128

  

格式良好的XML返回   TypeError:错误#1088:根元素后面的文档中的标记必须格式正确,   通常问题是BOM。

     

Actionscript XML不会从传入文本中删除BOM(字节顺序标记)。 BOM是一个不可见的字符(#65279),它在ASP或php“echo”字符串的开头创建,以及一些文本编辑器,用于指示多字节文本的字节顺序。

     

您可以确认您的字符串是否包含此BOM字符:

     

trace( sXMLString.charCodeAt( 0 ) ); //outputs 65279

     

快速解决方案

     

sXMLString= sXMLString.replace( String.fromCharCode(65279), "" ) ;

     

myXML = new XML(sXMLString);

另见:

Reading php generated XML in flash?

How to load PHP dynamically generated XML in FLASH

如果您还没有,请从上面的第二个链接尝试添加:

header("Content-Type: text/xml");