Як перевірити, ввімкнено чи вимкнено завивку


83

Можливий дублікат:
Написання функції у php

Я використовую наступний код

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

це може ввімкнути або вимкнути його

але я хотів би зробити, як функція каже, що назва функції є _iscurl

тоді я можу назвати це таким чином, щоб слідувати будь-де в коді мого веб-сайту

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

майже так само, як і в моєму попередньому запитанні, перевірте, чи ввімкнено allow_url_fopen чи ні


7
Чому б не використовувати function_exists('curl_version') як свою _iscurl()функцію?
Аніруд Рамананат

1
Дивіться керівництво з написання function, упакувати один вкладиш в там, замінити echoз returnі перерізав трійчастий аут.
Маріо

Відповіді:


134

Просто поверніть наявний чек від функції .

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

4
Це працює і приймається, але наведені нижче відповіді - це те, що я вважав би менш вдалим і більш зрозумілим для когось, хто читає код. Якщо я прочитаю це, я можу подумати, що ви спеціально перевіряєте, чи можете ви знайти версію curl, а не чи завантажується curl. extension_loaded('curl')є набагато прямішим.
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";
}
?>

або простий -

<?
phpinfo();
?>

Просто шукайте завивку

джерело - http://www.mattsbits.co.uk/item-164.html


47
var_dump(extension_loaded('curl'));

12
Для тих, хто хоче швидко перевірити командний рядок, не створюючи файл:echo "<?php var_dump(extension_loaded('curl')); ?>" | php
Невідомий розробник

1
або: php -i | grep curlабо php -r 'var_dump(extension_loaded("curl"));'^^
хакре

просто помістіть це у файл phpinfo, у перший рядок: `<? php var_dump (extension_loaded ('curl'));?>`
sjas

8

Ви можете перевірити, помістивши цей код у 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";
}

АБО

var_dump(extension_loaded('curl'));

8

Сподіваюся, це допомагає.

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

11
function_existsсама повертається trueабо false. Ви можете просто повернути його повернене значення. Для цього одного вкладиша немає потреби в додаткових 4 рядках коду . Крім того, у вашої функції немає кінця }!
Прасант,

1
домовтеся про накладні витрати в коді, але функція має кінець} як один рядок, якщо інші оператори не потребують фігурних дужок. Але, можливо, поганий відступ змусив вас помилитися.
Sam Vloeberghs

5

Ви завжди можете створити нову сторінку та використовувати phpinfo(). Прокрутіть вниз до розділу завивки та перевірте, чи ввімкнено його.


5

Завжди краще вибрати загальну функцію багаторазового використання у вашому проекті, яка повертає, чи завантажено розширення. Ви можете використовувати наступну функцію для перевірки -

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

Використання

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

1
Припустимо, ви працюєте у великому проекті і хочете перевірити вищезазначену умову більше 30-40 разів. Потім вам потрібно писати вручну від 30 до 40 разів, і раптом у вас з’явилася вимога про те, що вам потрібно перевірити якусь умову, перш ніж на той момент вам потрібно буде здійснити пошук і поставити умову у всіх 30 - 40 місцях у вашому проекті. Натомість, якщо у вас була багаторазова функція, ви можете помістити цю умову всередину функції і уникнути накладних витрат на пошук та заміну або додавання коду.
Channaveer Hakari

2
Для цього і потрібні інструменти рефакторингу. Але що стосується суті: Представляючи код, про який ви точно не знаєте, що це необхідно, я вважав би недоліком. Отже, причина, яку ви називаєте, є причиною не робити цього, на мій погляд.
hakre

Чудова ідея. Я почав обертати всі рідні функції php. Я збирав їх у бібліотеці. Кому цікаво?
rosell.dk

@ rosell.dk Я зацікавлений, будь ласка, заведіть мене. Дякую
Channaveer Hakari

@ rosell.dk LOL!
parvus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.