So überprüfen Sie, ob die Locke aktiviert oder deaktiviert ist

81

Mögliches Duplikat:
Schreiben einer Funktion in PHP

Ich verwende den folgenden Code

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

Dadurch kann es aktiviert oder deaktiviert werden

aber ich möchte als Funktion sagen lassen, dass der Funktionsname ist _iscurl

dann kann ich es so nennen, als ob ich irgendwo in meinem Website-Code bin

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

Fast das gleiche wie bei meiner vorherigen Frage. Überprüfen Sie, ob allow_url_fopen aktiviert ist oder nicht

Reham Fahmy
quelle
7
Warum nicht function_exists('curl_version') als Ihre _iscurl()Funktion verwenden?
Anirudh Ramanathan
1
Lesen Sie das Handbuch zum Schreiben von a function, packen Sie Ihren Einzeiler dort ein, ersetzen Sie den echodurch returnund schneiden Sie den Ternär aus.
Mario

Antworten:

133

Geben Sie einfach Ihren vorhandenen Scheck von einer Funktion zurück .

function _isCurl(){
    return function_exists('curl_version');
}
John V.
quelle
4
Dies funktioniert und wird akzeptiert, aber die folgenden Antworten sind weniger hackig und für jemanden, der den Code liest, klarer. Wenn ich dies lese, könnte ich denken, dass Sie speziell prüfen, ob Sie die Curl-Version finden können und nicht, ob Curl geladen ist. extension_loaded('curl')ist viel direkter.
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";
}
?>

oder eine einfache -

<?
phpinfo();
?>

Suchen Sie einfach nach Locken

Quelle - http://www.mattsbits.co.uk/item-164.html

Amit Pandey
quelle
46
var_dump(extension_loaded('curl'));
Alex S.
quelle
11
Für alle, die schnell in der Befehlszeile echo "<?php var_dump(extension_loaded('curl')); ?>" | php
nachsehen
1
oder: php -i | grep curloder php -r 'var_dump(extension_loaded("curl"));'^^
hakre
Fügen Sie dies einfach in eine phpinfo-Datei in die erste Zeile ein: `<? php var_dump (extension_loaded ('curl'));?>`
sjas
8

Sie können dies überprüfen, indem Sie diesen Code in eine PHP-Datei einfügen.

<?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";
}

ODER

var_dump(extension_loaded('curl'));
manish1706
quelle
8

Hoffe das hilft.

<?php
    function _iscurl() {
        return function_exists('curl_version');
    }
?>
Bikash Shrestha
quelle
11
function_existsselbst gibt zurück trueoder false. Sie können einfach den Rückgabewert zurückgeben. Für diesen einen Liner sind keine 4 zusätzlichen Codezeilen erforderlich . Auch Ihre Funktion hat kein Ende }!
Prasanth
1
Stimmen Sie dem Overhead im Code zu, aber die Funktion hat ein Ende} als eine Zeile, wenn Anweisungen sonst keine geschweiften Klammern benötigen. Aber vielleicht hat dich die schlechte Einkerbung dazu gebracht, diesen Fehler zu machen.
Sam Vloeberghs
5

Sie können jederzeit eine neue Seite erstellen und verwenden phpinfo(). Scrollen Sie zum Curl-Bereich und prüfen Sie, ob er aktiviert ist.

Samuel Cook
quelle
5

Es ist immer besser, eine generische wiederverwendbare Funktion in Ihrem Projekt zu verwenden, die zurückgibt, ob die Erweiterung geladen wurde. Sie können die folgende Funktion verwenden, um zu überprüfen:

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

Verwendung

echo isExtensionLoaded('curl');
echo isExtensionLoaded('gd');
Channaveer Hakari
quelle
1
Angenommen, Sie arbeiten in einem großen Projekt und möchten den oben genannten Zustand mehr als 30 bis 40 Mal überprüfen. Dann müssen Sie 30 bis 40 Mal manuell schreiben und plötzlich müssen Sie eine Bedingung überprüfen, bevor Sie zu diesem Zeitpunkt an allen 30 - 40 Stellen in Ihrem Projekt suchen und Bedingungen einfügen müssen. Wenn Sie eine wiederverwendbare Funktion hatten, können Sie diese Bedingung in die Funktion einfügen und den Aufwand für das Suchen und Ersetzen oder Hinzufügen von Code vermeiden.
Channaveer Hakari
2
Dafür sind Refactoring-Tools gedacht. Aber auf den Punkt: Die Einführung von Code, von dem Sie nicht sicher wissen, dass er notwendig ist, würde ich als Fehler betrachten. Der Grund, den Sie nennen, ist meiner Meinung nach ein Grund, dies nicht zu tun.
hakre
Großartige Idee. Ich habe begonnen, alle nativen PHP-Funktionen zu verpacken. Ich habe sie in einer Bibliothek gesammelt. Jemand interessiert?
rosell.dk
@ rosell.dk Ich bin interessiert, bitte schleife mich ein. Danke
Channaveer Hakari
@ rosell.dk LOL!
Parvus