2011-03-10 161 views
0

好吧,我有一个非常独特的API,我运行的服务,其中返回值显示类似于JSON(但不是JSON),并且它与大多数语言,但现在我只能使用Javascript访问返回值时遇到问题。Javascript获取网页内容到阵列

我有一个PHP页面这需要GET参数,并显示如下输出: stapi=0,0,0,0,0,0,0,0&stlinks=Hu3L|http://www.example.com,3Ozq|https://www.example.com

这是网页唯一的输出,以及我想要做的就是收集这两个变量成一个JavaScript数组被显示为一个列表。 (第二个变量I通常会收集到匹配的对中,因为您可以看到与“|”的分隔)

现在我只需要知道如何从输出中收集“变量”并将它们放入数组中(这些这两个网页并不打算在同一台服务器上) ...

**我想把STAPI逗号分隔值到自己的数组 然后了stlinks竖线配对/逗号分隔值进入它自己的阵列

+0

你可能想看看[这个答案](http://stackoverflow.com/questions/901115/get-querystring-values-with-jquery/2880929#2880929)解析URL参数。我无法确定这是否是重复问题,因为我不确定您期望翻译结果如何 - 也许您可以使用JSON表示法来更新您的问题,以了解结果应如何在JS中结构化? – 2011-03-10 15:08:01

+0

我已经看到了这个问题,但是我需要首先获取网页内容,然后将两个数组分开,然后将第二个数组分成两对匹配对 – NickDodd 2011-03-10 15:30:39

回答

0

试试这个功能来分割你的字符串与这个管道:

function splitString(s,ch){ 
    var n = []; 
    var i = 0, j = 0; 
    while (i != -1){ 
     j = i; 
     i = s.indexOf(ch,i+1); 
     if (i > -1){ 
      if (j > 0){ 
       n.push(s.substr(j+ch.length,i-j-ch.length)); 
      } else { 
       n.push(s.substr(j,i-j)); 
      } 
     } else { 
      n.push(s.substr(j+ch.length)); 
     } 
    } 
    return n; 
} 

var result = []; 

var pairs = splitString("stapi=0,0,0,0,0,0,0,0&stlinks=Hu3L|http://www.example.com,3Ozq|https://www.example.com","|"); 

var i = 0; 

for (i = 0; pairs.length < i; i++){ 
    var temp = splitString(pairs[i],'='); 
    result.push({name: temp[0], value: temp[1]}); 
} 

你需要什么打包到结果变量。

+0

如何从PHP页面获取字符串?多数民众赞成在我面临的问题,我需要先检索页面的内容,然后处理它的数据 – NickDodd 2011-03-10 15:23:53

+0

你能够使用jQuery? \t \t jQuery.ajax({ \t \t \t URL: “my_page.php”, \t \t \t成功:功能(数据){ \t \t \t \t \t \t \t} \t \t}); – 2011-03-10 15:37:21

+0

好吧,那有效......我试图使用速记版本:$ .get() - 但是现在我想我正面临同源策略的问题,因为正如我所提到的,脚本是客户端脚本,而不是一个服务器脚本,所以它不会在同一台服务器上....因此,它不适用于远程脚本 – NickDodd 2011-03-10 15:50:48