2010-02-07 26 views
51

Tôi nhận được thông báo này khi tôi cố chạy một tập lệnh php mà tôi phải sử dụng nhưng không viết.Làm cách nào để thay thế set_magic_quotes_runtime không được chấp nhận trong php?

Deprecated: Function set_magic_quotes_runtime() is deprecated in /opt/lampp/htdocs/webEchange/SiteWeb_V5/inc/fpdf.php on line 1810 

Đây là dòng 1810:

set_magic_quotes_runtime(0); 

Nếu đây là một hàm phản đối, những gì tôi có thể thay thế nó với?

Cảm ơn bạn rất nhiều!

Trả lời

6

Vì Magic Quotes hiện bị tắt theo mặc định (và được lên lịch để xóa), bạn chỉ có thể xóa cuộc gọi hàm đó khỏi mã của mình.

+2

xem câu trả lời của tôi về việc tại sao điều này có thể không phải là một tốt ý tưởng (http://stackoverflow.com/questions/2217955/how-can-i-replace-the-deprecated-set-magic-quotes-runtime-in-php/2218021#2218021) – philfreo

3

Bạn không cần thay thế bằng bất kỳ thứ gì. Cài đặt magic_quotes_runtimeremoved in PHP6 để cuộc gọi chức năng không cần thiết. Nếu bạn muốn duy trì tính tương thích ngược nó có thể là khôn ngoan để bọc nó trong một câu lệnh if kiểm tra phpversion sử dụng version_compare

+1

Và để trả lại mã này: 'if (version_compare (PHP_VERSION, '5.3.0', '<')) set_magic_quotes_runtime (0);' –

4
ini_set('magic_quotes_runtime', 0) 

tôi đoán.

+0

tùy chọn magic_quotes_runtime cho ini_set cũng bị loại bỏ trong PHP 6.0.0 – Shawn

64

Kiểm tra xem nó có được bật không. Điều đó sẽ loại bỏ được cảnh báo và nó sẽ đảm bảo rằng nếu mã của bạn được chạy trên các phiên bản cũ hơn của PHP thì các dấu ngoặc kép ma thuật thực sự bị tắt.

Không chỉ xóa dòng mã đó theo đề xuất của người khác trừ khi bạn có thể chắc chắn 100% rằng mã sẽ không bao giờ chạy trên bất kỳ thứ gì trước PHP 5.3.

<?php 
// Check if magic_quotes_runtime is active 
if(get_magic_quotes_runtime()) 
{ 
    // Deactivate 
    set_magic_quotes_runtime(false); 
} 
?> 

get_magic_quotes_runtime KHÔNG được dùng nữa trong PHP 5.3.
Nguồn: http://us2.php.net/get_magic_quotes_runtime/

+0

+1 từ tôi, giải thích tốt đẹp. –

+0

@stereofrog - bạn có chắc chắn không? Tôi đã không thử nghiệm nhưng chức năng nhận được không cho thấy rằng trong tài liệu, trong khi chức năng thiết lập rõ ràng không. – philfreo

4

Nâng cấp lên phiên bản 1.6 của FPDF.

14

Tôi đã sử dụng FPDF phiên bản 1.53 và không muốn nâng cấp do các tác dụng phụ có thể xảy ra. Tôi sử dụng đoạn mã sau theo Yacoby:

Dòng 1164:

if (version_compare(PHP_VERSION, '5.3.0', '<')) { 
    $mqr=get_magic_quotes_runtime(); 
    set_magic_quotes_runtime(0); 
} 

Dòng 1203:

if (version_compare(PHP_VERSION, '5.3.0', '<')) { 
    set_magic_quotes_runtime($mqr); 
} 
+0

Đây thực sự là giải pháp tốt nhất. +1 –

2

Gust thêm tiền tố "@" trước khi chức năng được @set_magic_quotes_runtime (0) ; Không hỗ trợ nữa trong php 5.4, và không loại bỏ hoặc vô hiệu hóa chức năng

1

thêm các mã vào đầu script của bạn để giải quyết vấn đề

@set_magic_quotes_runtime(false); 
ini_set('magic_quotes_runtime', 0); 
Các vấn đề liên quan