2017-10-12 77 views
1

我得到了一個「致命錯誤:調用未定義的函數:json_encode()」我的PHP文件,它是一個ovh服務器上承載。這裏是代碼:致命錯誤:調用未定義的函數:json_encode()

function get_paypload_giftcard($partnerId, $gcRequestId, $currencyCode, $gcAmount) 
{ 
    $amount = trim($gcAmount); 
    $payload = array(
    "creationRequestId" => $gcRequestId, 
    "partnerId" => $partnerId, 
    "value" => 
    array(
     "currencyCode" => $currencyCode, 
     "amount" => floatval($amount) 
    ) 
    ); 
    return json_encode($payload); 
} 

如何解決這個問題? 除了json_encode還有其他的選擇嗎?

+0

什麼版本的PHP?是否安裝並啓用了json PHP擴展? http://php.net/manual/en/function.json-encode.php列出了使用該功能的先決條件。和http://php.net/manual/en/json.setup.php顯示如何讓它工作。通常它在PHP 5.2及更高版本中默認安裝。所以大概是你的PHP版本是古老的,或者由於某種原因被故意禁用。 – ADyson

+0

你使用的是什麼版本的PHP? – Qirel

+0

是的版本是它現在解決的問題ty –

回答

0

json_encode()要求php> = 5.2。這聽起來像你的服務器正在運行的東西比這更早(你可以檢查你的php版本phpversion())功能。

假設是這種情況,您需要使用模仿該功能的庫。快速谷歌搜索表示有bunchofthese

使用一個從https://boutell.com/scripts/jsonwrapper.html

function get_paypload_giftcard($partnerId, $gcRequestId, $currencyCode, $gcAmount) 
{ 
    require_once '/path/to/jsonwrapper.php'; 

    $amount = trim($gcAmount); 
    $payload = array(
    "creationRequestId" => $gcRequestId, 
    "partnerId" => $partnerId, 
    "value" => 
    array(
     "currencyCode" => $currencyCode, 
     "amount" => floatval($amount) 
    ) 
    ); 
    return json_encode($payload); 
} 

由於該庫只檢查內建函數的存在,增加了它,如果它丟失了,應該要求它後工作。

+0

謝謝你的答案我更新了PHP版本到5.6在OVH服務器上 –

相關問題