2016-08-11 54 views
0

我已經寫了一個腳本登錄到另一個網站在PHP
當我登錄時,頁面會返回一個JSON響應,其中裏面有一個網址
在該網址有一個會話參數我想在PHP變量存儲無效的JSON解碼

的反應是這樣的:

{ 
    status:{ 
     err_code:0, 
     err_text:"" 
    }, 
    url:"https://example.com/foo/bar?parameter=1&[email protected]&otherparam=blah2" 
} 

我試圖解析JSON但格式是無效的,現在我不知道該怎麼辦..
這是一個好主意計算響應的字符並獲得我需要的指定字符?
它們形成了第112個到第123個

+1

JSON是無效的,因爲這些鍵沒有用引號括起來,因爲它們應該是。你可能需要在這裏使用正則表達式,例如。 '/ url:「(。*?)」/' - 它大膽地假設一個URL本身不會包含引號;) –

+0

問題是,這是* not *一個JSON響應。它看起來更像是一段JavaScript。你有任何控制生成此響應的頁面嗎?如果是這樣,我會在那邊修復它。 – GolezTrol

回答

1

你可以去:

<?php 

$string = <<<DATA 
{ 
    status:{ 
     err_code:0, 
     err_text:"" 
    }, 
    url:"https://example.com/foo/bar?parameter=1&[email protected]&otherparam=blah2" 
} 
DATA; 

$regex = '~url:"([^"]+)"~'; 
preg_match($regex, $string, $match); 
print_r($match); 
?> 

將URL中$match[1]