2014-06-29 189 views
3

我正在嘗試使用WordPress XML-RPC。我發現默認情況下,XMLRPC將在我的WordPress版本(3.9.1)中啓用。但是,當我試圖運行下面的PHP代碼,被顯示以下錯誤:WordPress問題XMLRPC

Fatal error: Call to undefined function xmlrpc_encode_request() in /Applications/XAMPP/xamppfiles/htdocs/easyblog/test/hellotest.php on line 6

這是我的PHP代碼。

<?PHP 
//XML RPC Test 
define('RPC_URL', 'http://localhost/wordpress/xmlrpc.php'); 
function sendRequest($methodName, $parameters) 
{ 
    $request = xmlrpc_encode_request($methodName, $parameters); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 
    curl_setopt($ch, CURLOPT_URL, RPC_URL); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 1); 
    $results = curl_exec($ch); 
    $results = xml_decode($results); 
    curl_close($ch); 
    return $results; 
} 

$parameters = array(); 
$response = sendRequest('demo.sayHello', $parameters);?> 

服務器詳細信息:

我使用的XAMPP服務器與PHP 5.5.11在Mac OS X

當我用Google搜索這個錯誤我發現,我們需要啓用XML-RPC在XAMPP php配置文件中。所以在XAMPP php.ini文件中我已取消註釋extension=php_xmlrpc.dll並重新啓動服務器並進行檢查。但是我又遇到了同樣的錯誤。

+0

你確定php_xmlrpc.dll沒有打開查看phpinfo()嗎? –

+0

我該如何檢查它是否啓用?當我運行phpinfo()兩個值時,xmlrpc顯示xmlrpc_error_number和xmlrpc_errors。 – upendra

+0

我認爲它沒有啓用。我用var_dump(get_loaded_extensions()),我沒有找到xmlrpc。 – upendra

回答

0

這可能是因爲您尚未在服務器上安裝xmlrpc。您可以按照以下步驟檢查庫:

1)使用此內容創建一個新的php文檔。例如,info.php。

<?php 
phpinfo(); 
?> 

2)打開瀏覽器並加載以前創建的頁面:http://YOUR-DOMAIN/info.php

3)搜索 「XMLRPC」 部分。

screenchot of info.php

4)在這一點上可能發生的兩件事情:

4.1)如果您已經安裝XMLRPC庫,可能你有你的WordPress的錯誤安裝或檢查點5

4.2 )如果您未在服務器上安裝xmlrpc庫,則必須安裝。在Ubuntu上,您可以在您的終端上安裝xmlrpc庫sudo apt-get install curl libcurl3 libcurl3-dev php5-xmlrpc php5-curl

5)最後,檢查您的文件php.ini是否啓用了擴展。找到跟隨行;extension=php_xmlrpc.so並刪除「;」。 請注意:Windows服務器具有.dll擴展名,UNIX服務器(Mac OS X或Linux)具有.so擴展名。