Jak sprawdzić, czy funkcja curl jest włączona czy wyłączona


83

Możliwy duplikat:
pisanie funkcji w php

Używam następującego kodu

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

może to włączyć lub wyłączyć

ale chciałbym, aby funkcja powiedziała, że ​​nazwa funkcji to _iscurl

wtedy mogę to nazwać następującymi po każdym miejscu w kodzie mojej witryny

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

prawie tak samo jak moje poprzednie pytanie, sprawdź, czy allow_url_fopen jest włączone, czy nie


7
Dlaczego nie użyć function_exists('curl_version') jako swojej _iscurl()funkcji?
— Anirudh Ramanathan

1
Zobacz podręcznik na pisanie function, spakować do jednego-liner tam wymienić echoz returni wyciąć potrójny out.
— mario

Odpowiedzi:


134

Po prostu zwróć istniejący czek z funkcji .

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

4
To działa i jest akceptowane, ale poniższe odpowiedzi są mniej hakerskie i bardziej zrozumiałe dla kogoś innego czytającego kod. Jeśli to przeczytam, może pomyśleć, że sprawdzasz konkretnie, czy możesz znaleźć wersję curl, a nie, czy curl jest załadowany. extension_loaded('curl')jest znacznie bardziej bezpośredni.
— 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";
}
?>

lub prosty -

<?
phpinfo();
?>

Po prostu wyszukaj curl

źródło - http://www.mattsbits.co.uk/item-164.html


47
var_dump(extension_loaded('curl'));

12
Dla każdego, kto chce szybko sprawdzić wiersz poleceń bez tworzenia pliku:echo "<?php var_dump(extension_loaded('curl')); ?>" | php
— The Unknown Dev

1
lub: php -i | grep curllub php -r 'var_dump(extension_loaded("curl"));'^^
— hakre

po prostu umieść to w pliku phpinfo, w pierwszej linii: `` <? php var_dump (extension_loaded ('curl'));?> `
— sjas

8

możesz sprawdzić, umieszczając ten kod w pliku 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";
}

LUB

var_dump(extension_loaded('curl'));

8

Mam nadzieję że to pomoże.

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

11
function_existssama wraca truelub false. Możesz po prostu zwrócić jego wartość zwracaną. Nie ma potrzeby stosowania 4 dodatkowych linii kodu dla tej jednej linijki . Twoja funkcja nie ma końca }!
— Prasanth

1
zgadzają się na narzut w kodzie, ale funkcja ma koniec} jako jedną linię, jeśli w przeciwnym razie instrukcje nie wymagają nawiasów klamrowych. Ale być może złe wcięcie sprawiło, że popełniłeś ten błąd.
— Sam Vloeberghs

5

Zawsze możesz utworzyć nową stronę i użyć phpinfo(). Przewiń w dół do sekcji zwijania i zobacz, czy jest włączona.


5

Zawsze lepiej jest wybrać w projekcie ogólną funkcję wielokrotnego użytku, która zwraca, czy rozszerzenie zostało załadowane. Możesz użyć następującej funkcji, aby sprawdzić -

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

Stosowanie

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

1
Załóżmy, że pracujesz w dużym projekcie i chcesz sprawdzić powyższy warunek więcej niż 30 do 40 razy. Następnie musisz pisać ręcznie 30 do 40 razy i nagle pojawił się wymóg, że musisz sprawdzić pod jakimś warunkiem, zanim w tym czasie musisz wyszukać i umieścić stan we wszystkich 30 - 40 miejscach w projekcie. Zamiast tego, jeśli masz funkcję wielokrotnego użytku, możesz umieścić ten warunek wewnątrz funkcji i uniknąć narzutu wyszukiwania i zastępowania lub dodawania kodu.
— Channaveer Hakari

2
Do tego służą narzędzia do refaktoryzacji. Ale na temat: wprowadzając kod, którego nie wiesz na pewno, czy jest konieczny, rozważyłbym błąd. Więc powód, dla którego wymieniasz, jest moim zdaniem powodem, aby tego nie robić.
— hakre

Świetny pomysł. Zacząłem pakować wszystkie natywne funkcje php. Zebrałem je w bibliotece. Ktokolwiek zainteresowany?
— rosell.dk

@ rosell.dk Jestem zainteresowany, proszę, zapętl mnie. Dzięki
— Channaveer Hakari

@ rosell.dk LOL!
— parvus
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.