如何从URL编码字符串中获取数组



我相信这是一件非常简单的事情,但我在谷歌上找了几个小时都找不到。我是新的ActionScript,我试图从一个字符串,由一个。php文件生成的变量数组。

我的PHP文件输出如下:

var1=42&var2=6&var3=string

我的ActionScript代码是:

public function CallAjax_VARIABLES(url:String , the_array:Array) 
{ 
 var request:URLRequest = new URLRequest(url); 
 var variables:URLLoader = new URLLoader(); 
 variables.dataFormat = URLLoaderDataFormat.VARIABLES; 
 variables.addEventListener(Event.COMPLETE, VARIABLES_Complete_Handler(the_array)); 
 try 
 { 
  variables.load(request); 
 }  
 catch (error:Error) 
 { 
  trace("Unable to load URL: " + error); 
 } 
} 
function VARIABLES_Complete_Handler(the_array:Array):Function {
  return function(event:Event):void {
  var loader:URLLoader = URLLoader(event.target); 
  //the_array = loader.data;   // this doesn't work.  
  //the_array = URLVariables.decode(loader); // this doesn't work either.
  //trace(loader.data['var1']); // this outputs 42, so I'm getting the string from php.
  };
}

我想你已经明白了这一点,但是,最后,我想有一个数组(在ActionScript),这将给我:

the_array['var1']=42;
the_array['var2']=6;
the_array['var3']="string";

我做错了什么?我该怎么办?谢谢!

编辑:我试图从php到ActionScript的变量。例:我的PHP文件正确地将数组转换为html查询,但我不知道如何在ActionScript中的数组中解析它们。

您应该使用URLVariables

var vars:URLVariables = new URLVariables(e.target.data);

这样你就可以简单地说:

trace(vars.var2); // 6

数组在这里是无用的,因为结果是关联的,而不是基于索引的,尽管您可以很容易地使用一个简单的循环将所有值放入数组中:

var array:Array = [];
for(var i:String in vars)
{
    array.push(vars[i]);
}

我想你是在寻找parse_str函数

parse_str($str, $output);

对不起,我以为这是一个PHP问题。在ActionScript中,试试这个:

 var the_array:URLVariables = new URLVariables();
 the_array.decode(loader.data);
 trace(the_array.var1);

相关内容

  • 没有找到相关文章

最新更新