2011-09-06 48 views
7

Ai đó có thể tư vấn về cách bật hàm json_encode trong PHP?Bật json_encode trong PHP

Tôi có cài đặt sạch Centos 5.6 và vừa cài đặt Virtualmin.

Có ai biết các bước tiếp theo cần thực hiện không?

+0

đã bạn cài đặt Phiên bản nào của PHP? – ace

+3

Có vấn đề gì khi bạn gọi hàm json_encode()? Bạn nhận được loại thông báo lỗi nào? –

Trả lời

8

Như trong http://www.php.net/manual/en/json.requirements.php

Yêu cầu

Không có cài đặt cần thiết để sử dụng các chức năng này; chúng là một phần của lõi PHP.

Chỉ PHP >= 5.2.0

Sửa: đã thấy trong một comment cũng này

On RHEL5/Centos5 thêm kho EPEL (http://fedoraproject.org/wiki/EPEL).

Sau đó, cài đặt cũng đơn giản như:

sudo yum install php-pecl-json 

Không biết nếu điều này áp dụng cho câu hỏi của bạn, tôi không có một máy chủ CentOS ...

Đối với Ubuntu :

sudo aptitude install php5-json 
+0

Nếu tôi chạy lệnh đó nó trả về nói, lỗi php53-xung đột phổ biến với php-phổ biến. – Rob

+0

Như tôi đã nói, tôi không biết nếu bạn thực sự cần điều đó, nó chỉ là một gợi ý. Vui lòng cập nhật câu hỏi của bạn với nhiều chi tiết hơn, bạn có phiên bản php nào (đầu ra của 'php -v') và đầu ra của' php -r 'echo json_encode (true);' '? – Fabio

+0

Xin lỗi, lỗi lầm của tôi - lỗi học sinh. PHP 5.1 !! Tất cả được sắp xếp ngay bây giờ. – Rob

2

Trong trường hợp của tôi, tôi đã xem qua câu hỏi này vì tôi đã biên dịch lại PHP sẽ ./configure --disable-all và sau đó thêm riêng tôi n các phần mở rộng tôi cần. Đối với trường hợp của json_encode(), điều này tất nhiên được bao gồm trong phần mở rộng JSON. Để kích hoạt phần mở rộng này, thêm tùy chọn --enable-json lệnh configure của bạn, ví dụ:

./configure --disable-all --enable-json ...

(Các "..." đề cập đến thực tế là bạn có thể có phần mở rộng khác mà bạn có thể muốn kích hoạt.)

Nói chung, mọi tiện ích mở rộng PHP đều có thể được bật bằng cách bao gồm tùy chọn --with-extname hoặc --enable-extname (trong đó "extname" là tên của tiện ích mở rộng). Bạn có thể tìm ra một trong hai cú pháp này để sử dụng bằng cách phát hành ./configure --help | grep extname. Tất nhiên, bạn cần phải có thư viện chính nó có sẵn và có thể phải cấu hình đường dẫn nơi nó nằm (tùy thuộc vào phần mở rộng và cho dù đó là trong đường dẫn "mặc định").

0

Trên CenotOS và các hệ thống * nix khác, ngay cả khi bạn đã biên dịch PHP với --disable-json không phải mọi thứ đều có thể bị mất. Điều đầu tiên tất nhiên là kiểm tra đầu ra từ phpinfo(); và tìm kiếm các lần xuất hiện của json. Nếu bạn thấy hỗ trợ json được bật thì tất nhiên bạn đã bật tiện ích mở rộng json, nhưng nếu không, hãy xem bạn có /etc/php.d/json.ini được liệt kê trong Tệp .ini bổ sung được phân tích cú pháp.Nếu bạn làm như vậy, tệp này có thể trông giống như sau:

; Bật mô-đun tiện ích mở rộng json
; extension = json.so

Bỏ ghi chú dòng thứ hai và khởi động lại Apache của bạn. Nếu Apache bắt đầu mà không có lỗi, hãy kiểm tra lại phpinfo() của bạn và xem điều này có cho phép tiện ích mở rộng của bạn không. Nếu có, bạn đã sẵn sàng, nếu không, bạn có thể phải tìm thư mục có phần mở rộng php của bạn và nếu bạn thấy json.so trong đó, hãy chỉnh sửa dòng cuối cùng để bao gồm đường dẫn đầy đủ đến tệp đó và khởi động lại Apache. Nếu bạn không có tệp tin json.so với các tệp mở rộng php khác của mình, bạn có thể phải biên dịch lại một tiện ích mở rộng đó (bạn không cần phải biên dịch lại toàn bộ PHP, nhưng bạn có thể enable-json), rồi thử lại.

Ngoài ra, nếu bạn không có tệp .ini được phân tích cú pháp, bạn có thể thử thêm phần mở rộng này vào tệp php.ini chính của bạn, thường là /etc/php.ini.

0

Đối php 7 tôi đã này để cài đặt json (sau giờ vật lộn):

yum install php70u-json 
service nginx restart 
service php-fpm restart 
Các vấn đề liên quan