[原]as3 flash web 应用 (7)flash与php的交互(B)
2011-09-28 15:56
363 查看
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文件
为例
$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 "无请求";
}源文件下载
由于某度众所周知的铜臭举动,让我搬离写了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 "无请求";
}源文件下载
相关文章推荐
- [原]as3 flash web 应用 (7)flash与php的交互(A)
- [原]as3 flash web 应用 (5)js与flash的交互
- [原]as3 flash web 应用 (2)批量上传之php页面接收flash传递的数据
- [原]as3 flash web 应用 (4)批量上传之 完全实现百度图片上传
- [原]as3 flash web 应用 (6)swfobject的使用:将flash嵌入页面
- [原]as3 flash web 应用 (8)图片批量上传之 向服务器发送和获取额外数据
- as3中页面中的flash和页面交互,(ExternalInterface应用)
- [原]as3 flash web 应用 (1) 批量上传之Adobe官方FileReferenceList例子解析
- [原]as3 flash web 应用 (3)批量上传之 图片缩略图的呈现
- PHP大型Web应用入门(一)
- jquery与php交互的ajax应用第一课:检测用户注册时用户名是否存在
- 如何优化Flash应用(AS3应用)的性能
- 大型Web应用运行时 PHP负载均衡指南
- 5.PHP与Web页面交互
- Linux配置手册(十)基于LAMP构建(httpd_mysql_php)web应用(Discuz论坛)
- Web交互中Json的应用案例
- AS3与PHP的交互
- PHP-与Web页面交互
- PHP笔记 ---关于web应用的安全性问题
- [转]PHP大型Web应用入门(一)