পিএইচপি: সংজ্ঞায়িত ফাংশনে কল করুন: সিম্পল এমএমএল_লোড_স্ট্রিং ()


86

আমি ক্রোন ফাইল ব্যবহার করে ফেসবুক কাউন্ট ফাংশন বাস্তবায়ন করছি। যার মধ্যে ক্রোন প্রতি 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("abc@gmail.com","hi".$fb_like_count,$message);
}

তবে আমি অনির্ধারিত কল ফাংশন ত্রুটি পাচ্ছি।


6
আপনি কি php-xmlমডিউল ইনস্টল এবং সক্ষম করেছেন?
মারিয়ান0

উত্তর:


157

পিএইচপি 7 এবং উবুন্টু 14.04 এর জন্য পদ্ধতিটি নিম্নলিখিত। যেহেতু পিএইচপি 7 আনুষ্ঠানিক উবুন্টু পিপিএ তে নেই, আপনি সম্ভবত এটি ওনডেজ সুরের পিপিএর মাধ্যমে ইনস্টল করেছেন (সুডো অ্যাড-এপ-রিপোজিটরি পিপিএ: অনড্রেজ / পিএইচপি)। /Etc/php/7.0/fpm এ যান এবং php.ini সম্পাদনা করুন, নিম্নলিখিত লাইনে আপত্তিজনক:

extension=php_xmlrpc.dll

তারপরে কেবল php7.0-xML ইনস্টল করুন:

sudo apt-get install php7.0-xml

এবং পিএইচপি পুনরায় চালু করুন:

sudo service php7.0-fpm restart

এবং অ্যাপাচি পুনরায় চালু করুন:

sudo service apache2 restart

যদি আপনি পরবর্তী উবুন্টু সংস্করণে থাকেন যেখানে পিএইচপি 7 অন্তর্ভুক্ত থাকে তবে পদ্ধতিটিও সম্ভবত একই রকম (কোনও তৃতীয় পক্ষের ভাণ্ডার যোগ করা ব্যতীত)।


14
উইন্ডো এক্সটেনশন হ'ল কেবলমাত্র আপনার দরকার নেই উবুন্টুতে এক্সটেনশন এক্সটেনশন = php_xMLrpc.dll কারণ এটি একটি উইন্ডো এক্সটেনশান মাত্র দ্বিতীয় ধাপে কাজ করবে এবং কাজ করবে
wmfrancia

আমি এটি অনুসরণ করেছিলাম: তবুও আমি /var/www/html/magento1901/lib/Varien/Simplexml/Config.php 510 লাইনে অনির্ধারিত ফাংশন সিমপ্লেক্সিল_লোড_স্ট্রিং () এ কল পেয়েছি
সুশীবাম

4
আমি একটি অচেনা পরিষেবা ত্রুটি পেয়েছি। আমি সবেমাত্র অ্যাপাচি 2 পুনরায় চালু করেছি এবং এটি এই সমস্যাটিকে ঠিক করেছে। সাহায্যের জন্য Thaks php.ini মধ্যে এই লাইন খুঁজে
কোডেড কনটেইনার

হ্যাঁ, এটি কাজ করেছে, এবং @Wmfrancia যেমন বলেছে আমি প্রথম পদক্ষেপটি এড়িয়ে যেতে সক্ষম হয়েছি।
লিনিয়া হাক্সফোর্ড

আমি একই চেষ্টা করেছিলাম কিন্তু আমার পক্ষে কাজ করে নি। ত্রুটি লগ থেকে আনকাট ত্রুটি: /var/www/html/lib/Varien/SimplexML/Config.php
খুনি

52

যদি এক্সএমএল মডিউলটি ইনস্টল না থাকে তবে এটি ইনস্টল করুন।

উবুন্টু 14.04 এ বর্তমান সংস্করণ 5.6:

sudo apt-get install php5.6-xml

এবং এটির পরে sudo সার্ভিস অ্যাপাচি 2 রিস্টার্ট কমান্ডটি চালাতে ভুলবেন না

জুলহিলমি জয়নুদি


4
আপনি কেবল "sudo apt install php-xML" করতে পারেন এবং এটি আপনার জন্য সঠিক সংস্করণ পাবে।
নাওমি

4
এবং এর sudo service apache2 restartপরে কমান্ড চালাতে ভুলবেন না
জুলহিলমি জয়নুদিন

8

আমিও এই সমস্যার মুখোমুখি হয়েছি। আমার অপারেটিং সিস্টেমটি উবুন্টু 18.04 এবং আমার পিএইচপি সংস্করণটি পিএইচপি 7.2

আমি কীভাবে এটি সমাধান করেছি তা এখানে:

আপনার উবুন্টু সার্ভারে সিম্প্লেক্সিম্লিল ইনস্টল করুন:

sudo apt-get install php7.2-simplexml

অ্যাপাচি সার্ভার পুনরায় চালু করুন

sudo systemctl restart apache2

এখানেই শেষ.

আশা করি এটা কাজে লাগবে


7

নিশ্চিত হয়ে নিন যে আপনি পিএইচপি-এক্সএমএল মডিউল ইনস্টল করেছেন এবং সক্রিয় করেছেন php.ini

আপনি জেসসনে প্রতিক্রিয়া ফর্ম্যাটও পরিবর্তন করতে পারেন যা পরিচালনা করা সহজ। &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'];

আমি আমার টার্মিনাল পিএইচপি সংস্করণটি সংশোধন করেছি তবে এটি
ঠিকঠাক

6

আমি মনে করি এটি এই পোস্টের মতো কিছু হতে পারে: পিএইচপি পিএইচপি 5.6ক্লাস 'সিম্পলএক্সএমলেমেন্ট' পাওয়া যায় নি তাই সম্ভবত আপনি ইনস্টল / সক্রিয় করতে পারেন

php-xml or php-simplexml

Php.ini ফাইলে লাইব্রেরিগুলি সক্রিয় করতে ভুলবেন না । (শীর্ষ মন্তব্য মত )



2

এই ত্রুটিটি সেন্টোস 7 এ ঠিক করতে :

  1. পিএইচপি এক্সটেনশন ইনস্টল করুন:

    sudo yum পিএইচপি-এক্সএমএল ইনস্টল করুন

  2. আপনার ওয়েব সার্ভারটি পুনরায় চালু করুন। আমার ক্ষেত্রে এটি পিএইচপি-এফপিএম :

    পরিষেবাদি পিএইচপি-এফপিএম পুনরায় আরম্ভ করুন


0

এনগিনেক্স (অ্যাপাচি ছাড়াই) এবং পিএইচপি 7.2 এর জন্য, পিএইচপি 7.2-এক্সএমএল ইনস্টল করা যথেষ্ট ছিল না। এটি কাজ করার জন্য পিএইচপি 7.2-সিম্পল এক্সএমএল প্যাকেজ ইনস্টল করতে হয়েছিল

সুতরাং ডিবিয়ান / উবুন্টু, প্যাকেজ আপডেট এবং উভয় প্যাকেজ ইনস্টল করার জন্য আদেশগুলি

apt update
apt install php7.2-xml php7.2-simplexml

এবং Nginx এবং পিএইচপি উভয় পুনরায় আরম্ভ করুন

systemctl restart nginx php7.2-fpm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.