2013-05-08 1 views
0

Я уверен, что это очень просто, но я не мог найти его в Google часами. Я новичок в ActionScript, и я пытаюсь получить массив переменных из строки, созданной файлом .php.Как получить массив из URL-кодированной строки?

мои выходы 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"; 

Что я делаю не так? Что мне делать? Спасибо!

EDIT: Я пытаюсь получить переменные FROM php TO ActionScript. , например. Мой PHP-файл правильно преобразует массив в html-запрос, но я не знаю, как его анализировать в массиве в ActionScript.

+0

Помог ли мой ответ? – silkfire

ответ

0

Извините, я думал, что это вопрос PHP. В ActionScript, попробуйте следующее:

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

trace(the_array.var1); 
+0

Спасибо, но моя проблема в стороне ActionScript. Я пытаюсь проанализировать переменные из строки, которая корректно генерируется PHP. – void

+0

Сделано редактирование, попробуйте сейчас. Однако вы, где правильно указали URLVariables. – silkfire

0

Я думаю, что вы ищете функции parse_str

parse_str($str, $output); 
+0

Спасибо, но моя проблема в стороне ActionScript. Я пытаюсь проанализировать переменные из строки, которая корректно генерируется PHP. – void

1

Вы должны использовать URLVariables для этого.

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

Таким образом, вы можете просто сказать:

trace(vars.var2); // 6 

Массив будет бесполезно здесь, как результат ассоциативно, а не индекс на основе, хотя вы можете легко взять все ценности и бросить их в единую массив с простой петлей: