[原]as3 flash web 应用 (7)flash与php的交互(B)
发布时间:2020-12-15 06:46:41 所属栏目:百科 来源:网络整理
导读:2010年06月21日 星期一 02:23 由于某度众所周知的铜臭举动,让我搬离写了 5 年的渣度空间,准备把技术性的文章定在 CSDN 了。这些都是文章备份。勿怪。。 鉴于最近有些抓取机器和抄袭者,把标题的【原】字都复制,我不得不声明:本文为 yukon12345 原创,转
2010年06月21日 星期一 02:23 由于某度众所周知的铜臭举动,让我搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了。这些都是文章备份。勿怪。。 鉴于最近有些抓取机器和抄袭者,把标题的【原】字都复制,我不得不声明:本文为 yukon12345原创,转载请注明出处http://blog.csdn.net/yukon12345 5.使用xml格式互相通讯flash自身也可以生成xml然后发送。注意的是并不是生成一个xml对象来发送,而是生成xml格式的文本发送给php php通过xml处理扩展来解析xml。常见的php xml扩展解析主要有3大类:DOM,SAX,SimpleXML。 对于三中解析方法的特点,这里有详细的说明 http://stvsui.blog.163.com/blog/static/16015468520103452224868/ 在这里用php5的SimpleXML扩展来解析flash传入的xml. php5的SimpleXML非常容易上手,基本和as3的解析类似。 以xml文件 ? <?xml version='1.0' encoding='utf-8'?> <root> <image path='[图片地址]'name='[图片名]'>这里是文本内容</image> </root> 为例 $xmlsimplexml_load_file("路径") ? 可以读取xml文件 $xml=simplexml_load_string($变量名) ? 可以读取存在变量中的文本类型xml。 $xml->image 可以读取image节点数组。和as3一样,同样也忽略根节点<root> $xml->image[0] 可以获取数组第一个节点。以此类推.可以用foreach或者for循环等来遍历数组。 $xml->imgae[0]['path'] 用来读取image的path属性值 $xml->imgae[0]['path']='新路径' 可用来修改值 xpath查询: $xml->xpath('//image') 用来查寻任何深度的image节点包含的文本内容。比如<image>这里是文本内容</image> $xml->xpath('/root/image') 用来查寻此深度下的所有image节点包含的内容 php就不说这么多了 下面就是as3和php5使用xml格式消息互相通讯: ?as3 var loader=new URLLoader() //设置装载器的格式为TEXT loader.dataFormat=URLLoaderDataFormat.TEXT var urlR=new URLRequest() urlR.method=URLRequestMethod.POST urlR.url="http://127.0.0.1/upload/8php/repeat5.php" var variable=new URLVariables() var xml="<?xml version='1.0' encoding='utf-8'?>" //注意这里用单引号来标示xml属性值而非双引号。默认simplexml解析的xml需要用单引号。刚开始我测试了半天。 xml+=" <root> <image name='[图片名]' path='[图片地址]' /> </root>" variable.flashXML=xml //以文本方式发送 urlR.data=variable var txt=new TextField() txt.width=300 txt.x=20 txt.y=30 addChild(txt) loader.addEventListener(Event.COMPLETE,function(){ var phpxml=new XML(loader.data) //选择呈现xml数据 trace(loader.data) txt.text=phpxml.image[0].@path+phpxml.image[0].@name }) loader.load(urlR) php代码: header("Pragma:no-cache"); if(isset($_POST['flashXML'])){ //使用simpleXML扩展读取xml $xmlstr=$_POST['flashXML']; $flashXML=simplexml_load_string($xmlstr); //将字符串读入成xml $path="这是php发出的".$flashXML->image['path']; //获取属性值 $name="这是php发出的".$flashXML->image['name']; $phpXML="<?xml version='1.0' encoding='utf-8'?>"; $phpXML.="<root><image path='".$path."'name='".$name."'/></root>"; echo $phpXML; //输出新的xml给flash } else { echo "无请求"; }源文件下载 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- react-navigation使用技巧
- AJAX 状态值(readyState)与状态码(status)详解
- 每次更新应用程序时,是否需要创建一个新的SQLite数据库?
- c# – 从linq where语句返回
- [Swift]LeetCode310. 最小高度树 | Minimum Height Trees
- 聚合和组合
- ORACLE批量导入图片到BLOB字段代码示例
- tdd – RhinoMock:Mocks Vs StrictMocks Vs DynamicMocks
- 用mkfs.jffs2 命令制作jffs2镜像文件 (转)
- objective-c – 为什么XIB文件不会立即反映最近的Outlet更改