2015-07-03 25 views
39

Sto implementando la funzione di conteggio di facebook utilizzando il file cron. In quale cron viene eseguito ogni 10 minuti e viene conteggiato il numero totale di Mi piace di una pagina.Chiamata alla funzione non definita: simplexml_load_string()

for($i=0;$i<3;$i++){ 
    $source_url =$cars[$i]; 
    $rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&urls=".urlencode($source_url); 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL,$rest_url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $content = curl_exec($curl); 
    curl_close($curl); 
    $message=stripslashes($content); 
    $xml_record = simplexml_load_string($message); 
    $fb_like_count = $xml_record->link_stat->like_count; 
    echo "".$fb_like_count; 
    mail("[email protected]","hi".$fb_like_count,$message); 
} 

Ma sto riscontrando un errore di chiamata non definito.

+4

Il modulo 'php-xml' è installato e abilitato? – marian0

risposta

2

Assicurarsi che il modulo php-xml sia installato e abilitato in php.ini.

È anche possibile modificare il formato di risposta in json, che è più facile da gestire. In tal caso, è necessario aggiungere solo &format=json alla stringa di query url.

$rest_url = "http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=".urlencode($source_url); 

e quindi utilizzare json_decode() per recuperare i dati nello script:

$result = json_decode($content, true); 
$fb_like_count = $result['like_count']; 
+0

ho modificato la mia versione php del terminale quindi sta funzionando bene – anil

23

Se il modulo XML non è installato, installarlo.

versione attuale 5.6 su Ubuntu 14.04:

sudo apt-get install php5.6-xml 
84

Per PHP 7 e Ubuntu 14.04 la procedura è seguente. Dal momento che PHP 7 non è presente nei PPA ufficiali di Ubuntu, probabilmente lo hai installato tramite il PPA di Ondřej Surý (sudo add-apt-repository ppa: ondrej/php). Vai a /etc/php/7.0/fpm e modificare php.ini togliere il commento alla seguente riga:

extension=php_xmlrpc.dll 

Poi basta installare php7.0-xml:

sudo apt-get install php7.0-xml 

E riavviare PHP:

sudo service php7.0-fpm restart 

Se si è in una versione successiva di Ubuntu in cui è incluso PHP 7, è molto probabile che la procedura sia la stessa (ad eccezione dell'aggiunta di repository di terze parti).

+5

Solo per fyi non c'è bisogno di decommentare l'estensione = php_xmlrpc.dll su Ubuntu poiché quella è un'estensione di windows basta fare il secondo passo e funzionerà – wmfrancia

+0

ho seguito lo stesso : ancora ottengo chiamata alla funzione non definita simplexml_load_string() in /var/www/html/magento1901/lib/Varien/Simplexml/Config.php sulla riga 510 –

+0

Avevo ricevuto un errore di servizio non riconosciuto. Ho appena riavviato apache2 e questo ha risolto il problema. Per l'aiuto di trovare questa riga in PHP.ini –

1

penso che possa essere qualcosa di simile in questo post: Class 'SimpleXMLElement' not found on puphpet PHP 5.6 Così forse si potrebbe installare/attivare

php-xml or php-simplexml 

Non dimenticate di attivare le librerie nel file diphp.ini. (come la parte superiore comment)

+0

Prova anche questo [link] (http://www.webdeveloper.com/forum/showthread.php?191658-RESOLVED-Fatal-error-Call-to-undefined -funzione-simplexml_load_file() & s = 2a5f7a91ae737417b735ec83fbf17295 & p = 932.942 # post932942) –

Problemi correlati