2015-07-03 14 views
39

Tôi đang thực hiện chức năng đếm số đếm bằng cách sử dụng tệp cron. Trong đó cron chạy sau mỗi 10 phút và đếm tổng số lượt thích của một trang.Gọi đến chức năng không xác định: 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); 
} 

Nhưng tôi gặp lỗi chức năng cuộc gọi không xác định.

+4

Bạn đã cài đặt và bật mô-đun 'php-xml' chưa? – marian0

Trả lời

2

Đảm bảo rằng bạn đã cài đặt và bật mô-đun php-xml trong php.ini.

Bạn cũng có thể thay đổi định dạng phản hồi thành json dễ xử lý hơn. Trong trường hợp đó, bạn chỉ phải thêm &format=json vào chuỗi truy vấn url.

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

Và sau đó sử dụng json_decode() để lấy dữ liệu trong kịch bản của bạn:

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

tôi đã sửa đổi phiên bản php terminal của mình rồi nó hoạt động tốt – anil

23

Nếu module XML không được cài đặt, cài đặt nó.

hiện tại phiên bản 5.6 trên ubuntu 14.04:

sudo apt-get install php5.6-xml 
84

Đối với PHP 7 và Ubuntu 14.04 thủ tục là sau. Vì PHP 7 không có trong các PPA Ubuntu chính thức, bạn có thể cài đặt nó thông qua PPA của Ondřej Surý (sudo add-apt-repository ppa: ondrej/php). Tới /etc/php/7.0/fpm và soạn thảo file php.ini, bỏ ghi chú vào dòng sau:

extension=php_xmlrpc.dll 

Sau đó, chỉ cần cài đặt php7.0-xml:

sudo apt-get install php7.0-xml 

Và khởi động lại PHP:

sudo service php7.0-fpm restart 

Nếu bạn đang sử dụng phiên bản Ubuntu sau này, bao gồm cả PHP 7, quy trình có nhiều khả năng giống nhau (ngoại trừ thêm bất kỳ kho lưu trữ của bên thứ ba nào).

+5

Chỉ cần fyi bạn không cần phải bỏ ghi chú mở rộng = php_xmlrpc.dll trên Ubuntu vì đó là một cửa sổ mở rộng chỉ làm bước thứ hai và nó sẽ hoạt động – wmfrancia

+0

i : Tôi vẫn nhận được cuộc gọi đến hàm undefined simplexml_load_string() trong /var/www/html/magento1901/lib/Varien/Simplexml/Config.php trên dòng 510 –

+0

Tôi đã nhận được lỗi dịch vụ không được công nhận. Tôi chỉ cần khởi động lại apache2 và điều này cố định vấn đề này. Thaks cho sự giúp đỡ tìm thấy dòng này trong PHP.ini –

1

Tôi nghĩ rằng nó có thể là một cái gì đó giống như trong this Post: Class 'SimpleXMLElement' not found on puphpet PHP 5.6 Vì vậy, có lẽ bạn có thể cài đặt/kích hoạt

php-xml or php-simplexml 

Đừng quên để kích hoạt các thư viện trong php.ini tập tin. (như đầu trang comment)

+0

Đồng thời thử [link] này (http://www.webdeveloper.com/forum/showthread.php?191658-RESOLVED-Fatal-error-Call-to-undefined -function-simplexml_load_file() & s = 2a5f7a91ae737417b735ec83fbf17295 & p = 932942 # post932942) –

Các vấn đề liên quan