web-dev-qa-db-ja.com

未定義関数の呼び出し:simplexml_load_string()

Cronファイルを使用してfacebookカウント機能を実装しています。 cronは10分ごとに実行され、ページのいいね!の総数をカウントします。

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);
}

しかし、未定義の呼び出し関数エラーが発生しています。

67
anil

PHP 7およびUbuntu 14.04の場合、手順は次のとおりです。 PHP 7は公式のUbuntu PPAにはないので、おそらくOndřejSurýのPPA(Sudo add-apt-repository ppa:ondrej/php)を介してインストールしました。 /etc/php/7.0/fpmに移動してphp.iniを編集し、次の行のコメントを解除します。

extension=php_xmlrpc.dll

次に、php7.0-xmlをインストールします。

Sudo apt-get install php7.0-xml

そして、PHPを再起動します。

Sudo service php7.0-fpm restart

PHP 7が含まれている新しいUbuntuバージョンを使用している場合、手順も同じである可能性が高いです(サードパーティのリポジトリを追加することを除く)。

134

XMLモジュールがインストールされていない場合は、インストールします。

Ubuntu 14.04の現在のバージョン5.6:

Sudo apt-get install php5.6-xml
39

私はそれがこの投稿のようなものになると思います: puphpet PHP 5.6 にないクラス 'SimpleXMLElement'

php-xml or php-simplexml

php.iniファイル内のライブラリをアクティブにすることを忘れないでください。 (トップ comment のように)

4
Björn Pfoster

php.iniにphp-xmlモジュールがインストールされ、有効になっていることを確認してください。

また、応答形式をjsonに変更することもできます。その場合、&format=jsonをURLクエリ文字列に追加するだけです。

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

そして、json_decode()を使用して、スクリプト内のデータを取得します。

$result = json_decode($content, true);
$fb_like_count = $result['like_count'];
2
marian0

Centos 7でこのエラーを修正するには:

  1. PHP拡張機能をインストールします。

    Sudo yum install php-xml

  2. Webサーバーを再起動します。私の場合、php-fpm

    サービスphp-fpm restart

0
yesnik