2011-03-10 204 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