在flash中读取php生成的XML?
这是我们的问题
(Loading a dynamically generated XML file as PHP in Flash)的第1部分.
现在我们能够让Flash读取XML文件,但是我们只能在实际的Flash程序中测试(测试影片)时正确地看到Flash渲染.但是,当我们在线上传我们的文件以预览Flash无法正确渲染时,会遗漏一些重要信息(缩略图,标题,视频等). 附加信息: 域1上存在SWF文件 想知道这是否可能是跨域问题?我们在域1和域1上有一个这样的文件. 2我们也可以访问,但对于域3,我们不能在那里有一个crossdomain.xml文件. 这是PHP代码: $xml = new XMLWriter(); $xml->openMemory(); $xml->setIndent(true); $xml->setIndentString("t"); $xml->startDocument(); $xml->startElement('data'); $xml->startElement('config'); $xml->startElement('hex'); $xml->writeCData('0x' . $widget_profile['background_color']); $xml->endElement(); $xml->startElement('width'); $xml->writeCData($widget_profile['width']); $xml->endElement(); $xml->startElement('height'); $xml->writeCData($widget_profile['height']); $xml->endElement(); $xml->startElement('fullscreen'); $xml->writeCData('false'); $xml->endElement(); $xml->startElement('special'); $xml->writeCData('false'); $xml->endElement(); $xml->startElement('specialName'); $xml->writeCData('Tools & Offers'); $xml->endElement(); $xml->startElement('specialLink'); $xml->writeCData('XXXXXX'); $xml->endElement(); $xml->startElement('client'); $xml->writeCData($widget_profile['site_url']); $xml->endElement(); $xml->endElement(); if (count($widget_content) > 0) { foreach ($widget_content as $tab) { $xml->startElement('tab'); $xml->writeAttribute('id',$tab['tabname']); if (count($tab['video']) > 0) { foreach ($tab['video'] as $video) { $video_sql = "select VID,flvdoname,title from video where VID='" . $video . "'"; $video_result = $howdini->query($video_sql); if ($video_result->rowCount() > 0) { foreach ($video_result as $video_row) { $video_row['flvdoname'] = substr($video_row['flvdoname'],35,-4); $xml->startElement('vid'); $xml->writeAttribute('flv',$video_row['flvdoname']); $xml->writeAttribute('thumb','XXXXXXXXX' . $video_row['VID'] . '.jpg'); $xml->writeAttribute('title',$video_row['title']); $xml->endElement(); } } } } $xml->endElement(); } } $xml->endElement(); $xml->endDocument(); header('Content-Type: text/xml; charset=UTF-8'); echo $xml->flush(); 提前感谢您的任何答案!编辑:我已经包含了更改,现在Firebug看到了XML.现在它只是没有看到swf文件,但我可以在页面的其他部分看到swf文件. 解决方法
不是一个完整的解决方案,而只是一个数据点(因为编码问题很糟糕).当我通过静态文件和PHP文件下载XML并对它们进行区分时,我得到了以下结果
% diff php.xml static.xml 1c1 < <?xml version="1.0"?> --- > ???<?xml version="1.0"?> 10a11 > 19a21 > 您的静态文件在其开头有一个额外的“非ASCII”字符. 我的猜测是你的静态XML文件有一个PHP生成的文件没有的UTF-8 BOM,而且你的flash电影期待一个UTF-8文件.我会尝试使用你的PHP XML文件generating a BOM并看到它有所帮助,或者摆弄你的服务器的编码设置. 尝试更改PHP,以便输出以下标题(匹配嵌入电影的网页). header('Content-Type: text/html; charset=UTF-8') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |