পিএইচপি মারাত্মক ত্রুটি: অপরিজ্ঞাত ফাংশনে কল করুন json_decode ()


165

অ্যাপাচি লগিং করছে PHP Fatal error: Call to undefined function json_decode()। কিছু গুগল করার পরে, মনে হয় এই সমস্যাটি পিএইচপি-র সর্বশেষতম সংস্করণ না থাকার ফলস্বরূপ। অদ্ভুতভাবে, php --versionআউটপুট চলছে

PHP 5.5.1-2+debphp.org~precise+2 (cli) (built: Aug  6 2013 10:49:43) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.2-dev, Copyright (c) 1999-2013, by Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

পরিষ্কারভাবে দেখানো হচ্ছে যে আমার phpসংস্করণটি এর চেয়ে বড় 5.1

এটির কারণ হতে পারে এমন কোনও ধারণা, বা এটির জন্য কী পদক্ষেপ নেওয়া উচিত?

সম্পাদনা: phpversion প্রতিধ্বনিত একটি স্ক্রিপ্টের ফলাফল 5.5.1-2+debphp.org~precise

সম্পাদনা: ফলাফলও phpinfo()হয়PHP Version 5.5.1-2+debphp.org~precise+2

তদ্ব্যতীত, এর মধ্যে phpinfo(), এটি মডিউল জেএসএন এবং মডিউল লেখকদের তালিকাভুক্ত করেছে (ওমর কিলানী, স্কট ম্যাকভিকার)।


4
পরীক্ষা করে দেখুন disable_functionsস্টার নির্দেশ কিনা তা দেখতে json_decodeযে তালিকায় রয়েছে
Orangepill

জাসন মডিউলটি কি আপনার phpinfo () আউটপুটে প্রদর্শিত হবে?
tcmitche

disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_ge\ t_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
মিররফেটে

উবুন্টু 12.04 একটি প্যাকেজ রয়েছে: php-services-json। হতে পারে এটি সাহায্য করে ...
jgb

1
@jgb এটি পিয়ার প্যাকেজ পরিষেবাদি_জসন। যা বেশ পরিবেষ্টনীয়, কিছুটা জাভাস্ক্রিপ্টকে পার্স করে, কেবল জেএসএনকেও নয়। তবে অন্যান্য ব্যবহারকারীর বাস্তবায়ন সরাসরি বাস্তবায়িত হয় json_decode
মারিও

উত্তর:


354

উবুন্টু ব্যবহার করছেন?

সংক্ষিপ্ত উত্তর:

sudo apt-get install php7.2-json

(অথবা php7.1-jsonঅথবা php5-jsonআপনি চালাচ্ছেন পিএইচপি সংস্করণ উপর নির্ভর করে)

তারপরে অবশ্যই নিশ্চিত হয়ে নিন যে আপনি অ্যাপাচি পুনরায় চালু করেছেন :

sudo service apache2 restart

বা আপনি যদি পিএইচপি-এফপিএম ব্যবহার করছেন:

sudo service php7.2-fpm restart

( php7.1-fpmবা php5-fpm)

ব্যাখ্যা

লাইসেন্স বিরোধের কারণে ডাবিয়ান PHP 5.5rc2 হিসাবে পূর্ববর্তী JSON এক্সটেনশনটি সরিয়ে নিয়েছে।

তাদেরকে JSON লাইসেন্স একটি দফা যা যুক্তরাষ্ট্রের রয়েছে:

সফ্টওয়্যারটি খারাপের জন্য নয়, ভাল হিসাবে ব্যবহার করা হবে।

এটি ফ্রি সফটওয়্যার ফাউন্ডেশনের ফ্রি সফ্টওয়্যার সংজ্ঞায় কোনও সমস্যা সৃষ্টি করে যা বলে:

প্রোগ্রামটি চালানোর স্বাধীনতা, যে কোনও উদ্দেশ্যে (স্বাধীনতা 0)।

এফএসএফ বিশেষত জেএসএন লাইসেন্সকে নিখরচায় তালিকাভুক্ত করে

হ্যাঁ কিছুটা নির্বোধ মনে হচ্ছে। তবুও দেবিয়ান অ-অনুগত JSON এক্সটেনশানটি সরিয়ে দিয়েছে এবং এর পরিবর্তে কার্যকরীভাবে সমতুল্য এমন প্রতিস্থাপনের এক্সটেনশানের প্রস্তাব দিয়েছে ।

পরিষ্কার হতে হবে: পিএইচপি নিজেই জেএসনকে সরিয়ে দেয়নি, এটি এখনও মাস্টার হিসাবে রয়েছে । এটি একটি ডিস্ট্রো / প্যাকেজ পরিচালকের সমস্যা।

রাসমাস এটি বেশ স্পষ্ট করে তোলে :

আমরা জসনকে সরিয়ে নেই এবং জেসন সমর্থন না করে পিএইচপি-র কোনও সংস্করণ আমরা কখনই প্রকাশ করব না 5

আরো বিস্তারিত

http://iteration99.com/2013/php-json-licensing-and-php-5-5/

http://liorkaplan.wordpress.com/2013/06/01/bye-bye-non-free-php-json-extension/

https://bugs.php.net/bug.php?id=63520

http://philsturgeon.co.uk/blog/2013/08/fud-cracker-php-55-never-lost-json-support


আমি যে মনে হচ্ছে যে উল্লেখ করতে ফিরে আসেন 5.5.0সাথে জরিমানা JSON, এটা শুধুমাত্র 5.5.1যে বিরতি।
মিররফেট

2
5.5.3 এর কোনওটিই নেই (উবুন্টু 13.10)
লুইস লোবো বোরোবিয়া

9
ক্রিস উল্লিখিত কমান্ডটি দিয়ে json মডিউল ইনস্টল করার পরে অ্যাপাচি পুনরায় চালু করতে ভুলবেন না।
পাভেল

1
পিএইচপি- জসন যদি পিএইচপি-সাধারণের নির্ভরতা হত তবে এগুলি সমস্তই চলে যেত ... বাগস.লাঞ্চপ্যাড.এন.বুন্টু /+সোর্স / ইউবুইটি /+বগ / 1280030 ... দয়া করে ভোট দিন যদি এটি আপনার সমস্যা হয়ে থাকে।
রিকফুসসুসা

20
এই সফ্টওয়্যার লাইসেন্স বর্জন আমার জন্য গবেষণার জন্য এক ঘন্টা ব্যয় করেছে যে কেউ কি এটাকে হাস্যকরভাবে "দুষ্ট" মনে করেন?
recursion.ninja

13

উবুন্টু সহ:

sudo apt-get install php5-json
sudo service php5-fpm restart

apt-get install php7.2-json 7.2 এর জন্য কী ? আমি এটি চেষ্টা করেছি কিন্তু এখনও কাজ করছি না। ল্যারাভেল অ্যাপ্লিকেশনে আমাকে ত্রুটি দিচ্ছে php RuntimeException PHP's json extension is required to use Monolog's NormalizerFormatter
স্মিট প্যাটেল

8

ল্যাম্প ব্যবহারকারীদের জন্য সমাধান:

apt-get install php5-json
service apache2 restart

উৎস


যদি কোনও পুনঃসূচনা ত্রুটিটি সমাধান করতে ব্যর্থ হয়, তবে অ্যাপাচি 2 প্রক্রিয়াটি মেরে শুরু করুন: sudo pkill apache2; পরিষেবা অ্যাপাচি 2 শুরু
xilef

3

আপনি যদি phpbrew ব্যবহার করছেন তবে অপরিজ্ঞাত ফাংশন json_decode () দিয়ে ত্রুটি সমাধানের জন্য json এক্সটেনশন ইনস্টল করার চেষ্টা করুন :

phpbrew ext install json

2

7.1 সঙ্গে একই সমস্যা

apt-get install php7.1-json sudo nano /etc/php/7.1/mods-available/json.ini

  • নতুন ফাইলটিতে json.so যুক্ত করুন
  • কনফিডারের অধীনে উপযুক্ত সিম লিঙ্ক যুক্ত করুন
  • অ্যাপাচি 2 পরিষেবা পুনরায় চালু করুন (যদি প্রয়োজন হয়)

2

আমার একই প্রশ্ন: PHP Fatal error: Call to undefined function json_decode()তবে আমি উইন্ডোজে সাইগউইনের অধীনে পিএইচপি চালাই। আমি যখন দৌড়ে যাই তখন আমি php -mদেখতে পেলাম যে কোনও জসন মডিউল ইনস্টল করা নেই। তাই আমি আবার সাইগউইন সেটআপ চালিয়েছি ex


1

মডিউলটি ইনস্টল করা হয়েছে তবে প্রতীকী লিঙ্কটি /etc/php5/cli/conf.d এ ছিল না


0

আপনি পুরোপুরি মূল পিএইচপি মডিউল এড়ানো বিবেচনা করতে পারেন।

আজকাল পিএইচপি অ্যাপ্লিকেশনগুলিতে একটি গুজল জসন সরঞ্জামগুলি লাইব্রেরি হিসাবে ব্যবহার করা বেশ সাধারণ। যদি আপনার অ্যাপটি কোনও সুরকার অ্যাপ্লিকেশন হয় তবে এগুলি সংমিশ্রণ বিল্ডের অংশ হিসাবে অন্তর্ভুক্ত করা তুচ্ছ tri আপনি যদি পিএইচপি কে এই সরঞ্জামটিকে স্বতঃআধিকার করতে বলেন তবে গুজল সরঞ্জামটি, একটি লাইব্রেরি হিসাবে, জেসন সরঞ্জামটির টার্নকি প্রতিস্থাপন হবে।

http://docs.guzzlephp.org/en/stable/search.html?q=json_encode#

http://apigen.juzna.cz/doc/guzzle/guzzle/function-GuzzleHttp.json_decode.html


গুজলের জসন_ডেকোড অতিরিক্ত ত্রুটি পরীক্ষা সহ পিএইচপি এর জসন_ডেকোড ব্যবহার করছে , সুতরাং আপনার উত্তরটি অবৈধ
এমিক্স

0

CentOS

দৃশ্য

আমি সেন্টোস ডকারে পিএইচপি ইনস্টল করেছি, এটি আমার ডকারফিল:

FROM centos:7.6.1810

LABEL maintainer="teran.a.joan@gmail.com"

RUN yum install httpd-2.4.6-88.el7.centos -y
RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RUN rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
RUN yum install php72w -y
ENTRYPOINT ["/usr/sbin/httpd", "-D", "FOREGROUND"]

অ্যাপ্লিকেশনটি একইভাবে ত্রুটিটি json_decode এবং json_encode দিয়ে ফিরে এসেছে

সমাধান

Json_encode এবং json_decode রয়েছে এমন পিএইচপি কমন ইনস্টল করুন

yum install -y php72w-common-7.2.14-1.w7.x86_64

রেজোলিউশন কীভাবে সন্ধান করবেন?

আমার কাছে আরও একটি ডকার ফাইল রয়েছে যা এপিআই-র জন্য ধারক তৈরি করে এবং এতে পিএইচপি-মাইএসকিএল ক্লায়েন্ট ইনস্টল করার আদেশ রয়েছে:

yum install php72w-mysql.x86_64 -y

আমি যদি এই চিত্রটি অ্যাপটি মাউন্ট করতে ব্যবহার করি তবে json_encode এবং json_decode কাজ করে !! ঠিক আছে ..... এর কি নির্ভরতা আছে?

[root@c023b46b720c etc]# yum install php72w-mysql.x86_64
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror.gtdinternet.com
 * epel: mirror.globo.com
 * extras: linorg.usp.br
 * updates: mirror.gtdinternet.com
 * webtatic: us-east.repo.webtatic.com
Resolving Dependencies
--> Running transaction check
---> Package php72w-mysql.x86_64 0:7.2.14-1.w7 will be installed
--> Processing Dependency: php72w-pdo(x86-64) for package: php72w-mysql-7.2.14-1.w7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: php72w-mysql-7.2.14-1.w7.x86_64
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: php72w-mysql-7.2.14-1.w7.x86_64
--> Running transaction check
---> Package mariadb-libs.x86_64 1:5.5.60-1.el7_5 will be installed
---> Package php72w-pdo.x86_64 0:7.2.14-1.w7 will be installed
--> Processing Dependency: php72w-common(x86-64) = 7.2.14-1.w7 for package: php72w-pdo-7.2.14-1.w7.x86_64
--> Running transaction check
---> Package php72w-common.x86_64 0:7.2.14-1.w7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================
 Package                   Arch               Version                        Repository            Size
========================================================================================================
Installing:
 php72w-mysql              x86_64             7.2.14-1.w7                    webtatic              82 k
Installing for dependencies:
 mariadb-libs              x86_64             1:5.5.60-1.el7_5               base                 758 k
 php72w-common             x86_64             7.2.14-1.w7                    webtatic             1.3 M
 php72w-pdo                x86_64             7.2.14-1.w7                    webtatic              89 k

Transaction Summary
========================================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 2.2 M
Installed size: 17 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): mariadb-libs-5.5.60-1.el7_5.x86_64.rpm                                    | 758 kB  00:00:00     
(2/4): php72w-mysql-7.2.14-1.w7.x86_64.rpm                                       |  82 kB  00:00:01     
(3/4): php72w-pdo-7.2.14-1.w7.x86_64.rpm                                         |  89 kB  00:00:01     
(4/4): php72w-common-7.2.14-1.w7.x86_64.rpm                                      | 1.3 MB  00:00:06     
--------------------------------------------------------------------------------------------------------
Total                                                                   336 kB/s | 2.2 MB  00:00:06     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:mariadb-libs-5.5.60-1.el7_5.x86_64                                                 1/4 
  Installing : php72w-common-7.2.14-1.w7.x86_64                                                     2/4 
  Installing : php72w-pdo-7.2.14-1.w7.x86_64                                                        3/4 
  Installing : php72w-mysql-7.2.14-1.w7.x86_64                                                      4/4 
  Verifying  : php72w-common-7.2.14-1.w7.x86_64                                                     1/4 
  Verifying  : 1:mariadb-libs-5.5.60-1.el7_5.x86_64                                                 2/4 
  Verifying  : php72w-pdo-7.2.14-1.w7.x86_64                                                        3/4 
  Verifying  : php72w-mysql-7.2.14-1.w7.x86_64                                                      4/4 

Installed:
  php72w-mysql.x86_64 0:7.2.14-1.w7                                                                     

Dependency Installed:
  mariadb-libs.x86_64 1:5.5.60-1.el7_5                php72w-common.x86_64 0:7.2.14-1.w7               
  php72w-pdo.x86_64 0:7.2.14-1.w7                    

Complete!

হ্যাঁ! নির্ভরতার অভ্যন্তরে সাধারণ প্যাকেজগুলি। আমি এটি আমার অন্যান্য পাত্রে ইনস্টল করেছি এবং এটি কার্যকর! এর পরে, আমি ডকারফাইলে ডি-ডাইরেক্টিভ রেখেছি, গিট কমিট !! গিট ট্যাগ !!!! গিট পুশ !!!! প্রস্তুত!

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