Cách kiểm tra xem tính năng cuộn tròn được bật hay tắt


81

Có thể trùng lặp:
Viết một hàm trong php

Tôi đang sử dụng mã sau

echo 'Curl: ', function_exists('curl_version') ? 'Enabled' : 'Disabled';

điều này có thể kích hoạt hoặc vô hiệu hóa nó

nhưng tôi muốn làm như hàm nói rằng tên hàm là _iscurl

thì tôi có thể gọi nó là sau bất kỳ nơi nào trong mã trang web của tôi

if (_iscurl()){
  echo "this is enabled"; // will do an action
}else{
  echo "this is disabled"; // will do another action
}

gần giống như câu hỏi trước của tôi, hãy kiểm tra xem allow_url_fopen được bật hay không


7
Tại sao không sử dụng function_exists('curl_version') như _iscurl()chức năng của bạn ?
Anirudh Ramanathan

1
Xem hướng dẫn cách viết a function, đóng gói một lớp lót của bạn vào đó, thay thế echobằng returnvà cắt con chim nhạn ra.
mario

Câu trả lời:


133

Chỉ cần trả lại séc hiện có của bạn từ một chức năng .

function _isCurl(){
    return function_exists('curl_version');
}

4
Điều này hoạt động và được chấp nhận, nhưng các câu trả lời dưới đây là những gì tôi sẽ coi là ít hack hơn và rõ ràng hơn cho người khác đọc mã. Nếu tôi đọc điều này, tôi có thể nghĩ rằng bạn đang kiểm tra cụ thể để xem liệu bạn có thể tìm thấy phiên bản uốn tóc hay không và không biết liệu cuộn tóc đã được tải chưa. extension_loaded('curl')trực tiếp hơn nhiều.
deweydb

62
<?php

// Script to test if the CURL extension is installed on this server

// Define function to test
function _is_curl_installed() {
    if  (in_array  ('curl', get_loaded_extensions())) {
        return true;
    }
    else {
        return false;
    }
}

// Ouput text to user based on test
if (_is_curl_installed()) {
  echo "cURL is <span style=\"color:blue\">installed</span> on this server";
} else {
  echo "cURL is NOT <span style=\"color:red\">installed</span> on this server";
}
?>

hoặc đơn giản -

<?
phpinfo();
?>

Chỉ cần tìm kiếm cuộn tóc

nguồn - http://www.mattsbits.co.uk/item-164.html


46
var_dump(extension_loaded('curl'));

11
Đối với bất kỳ ai muốn kiểm tra nhanh dòng lệnh mà không cần tạo tệp:echo "<?php var_dump(extension_loaded('curl')); ?>" | php
The Unknown Dev

1
hoặc: php -i | grep curlhoặc php -r 'var_dump(extension_loaded("curl"));'^^
hakre

chỉ cần đặt này vào một tập tin phpinfo, vào dòng đầu tiên: `;` <? php var_dump (extension_loaded ( 'curl'))?>
sjas

8

bạn có thể kiểm tra bằng cách đưa các mã này vào tệp php.

<?php
if(in_array  ('curl', get_loaded_extensions())) {
    echo "CURL is available on your web server";
}
else{
    echo "CURL is not available on your web server";
}

HOẶC LÀ

var_dump(extension_loaded('curl'));

8

Hi vọng điêu nay co ich.

<?php
    function _iscurl() {
        return function_exists('curl_version');
    }
?>

11
function_existschính nó trả về truehoặc false. Bạn chỉ có thể trả lại giá trị trả lại của nó. Không cần thêm 4 dòng mã cho một lớp lót này . Ngoài ra, chức năng của bạn không có kết thúc }!
Prasanth

1
đồng ý về chi phí trong mã nhưng hàm không có end} là một dòng nếu câu lệnh if else không cần dấu ngoặc nhọn. Nhưng có lẽ phần thụt lề không tốt đã khiến bạn mắc phải sai lầm đó.
Sam Vloeberghs

5

Bạn luôn có thể tạo một trang mới và sử dụng phpinfo(). Cuộn xuống phần cuộn và xem nó đã được bật chưa.


5

Tốt hơn hết là bạn nên sử dụng một hàm có thể tái sử dụng chung trong dự án của bạn, hàm này trả về việc tiện ích có được tải hay không. Bạn có thể sử dụng chức năng sau để kiểm tra:

function isExtensionLoaded($extension_name){
    return extension_loaded($extension_name);
}

Sử dụng

echo isExtensionLoaded('curl');
echo isExtensionLoaded('gd');

1
Giả sử bạn đang làm việc trong một dự án lớn và muốn kiểm tra điều kiện trên hơn 30 đến 40 lần. Sau đó, bạn cần viết thủ công từ 30 đến 40 lần và đột nhiên bạn nhận được yêu cầu rằng bạn cần phải kiểm tra một số điều kiện trước khi đó bạn cần tìm kiếm và đặt điều kiện ở tất cả 30 - 40 vị trí trong dự án của mình. Thay vào đó, nếu bạn có hàm có thể sử dụng lại, bạn có thể đặt điều kiện đó vào bên trong hàm và có thể tránh được chi phí tìm kiếm và thay thế hoặc thêm mã.
Channaveer Hakari

2
Đó là những gì các công cụ tái cấu trúc dành cho. Nhưng về điểm: Giới thiệu mã mà bạn không biết chắc chắn rằng nó là cần thiết, tôi sẽ coi là một lỗ hổng. Vì vậy, lý do bạn nêu tên là một lý do không nên làm như vậy theo quan điểm của tôi.
hakre

Ý tưởng tuyệt vời. Tôi đã bắt đầu gói tất cả các hàm php gốc. Tôi đã thu thập chúng trong một thư viện. Bất cứ ai quan tâm?
rosell.dk

@ rosell.dk Tôi quan tâm vui lòng liên hệ với tôi. Cảm ơn
Channaveer Hakari

@ rosell.dk LOL - Liên minh huyền thoại!
parvus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.