2012-11-29 35 views
0

當我使用提取它示出了一些警告等「PHP警告:)提取物([function.extract]:第一參數應該是」的陣列PHP提取功能顯示警告

以下是代碼

所有的
$HTTP_RAW_POST_DATA = file_get_contents('php://input'); 

ob_start(); 

global $mmb_core; 
$data = unserialize(base64_decode($HTTP_RAW_POST_DATA)); 
$data =array($data); 
$num = extract($data); 

回答

0
  1. 首先,你要麼不需要線$data =array($data);或不需要unserialize。哪一個取決於輸入的格式。如果輸入是序列化數組,那麼只需要unserialize就足夠了。您需要確保$data是關聯數組。意味着其中的EACH元素具有string key,並且該鍵適用於變量命名規則(例如,不以數字開頭)。如果它是數組,但不是關聯數組,則會產生此錯誤。

此函數還驗證這些鍵是否會覆蓋已定義的變量。所以你需要使用正確的密鑰。我會用這種方式

if(is_array($data)){ 
    $num = extract($data, EXTR_PREFIX_ALL, "data_"); 
} 

這將預先考慮每個按鍵與data_。也將不關聯數組變量使得像$data_0$data_1

有關詳情,請更好的參考official documentation

+0

工作謝謝Alexkey/......我將在此 – Minu

+0

工作還是它顯示了warining – Minu

+0

@ Minu您使用'file_get_contents'獲取的傳入數據的任何示例?我需要看看你想要解析什麼樣的結構。 – AlexKey