In PHP sehe ich das Wort cURL in vielen PHP-Projekten. Was ist es? Wie funktioniert es?
Referenzlink: cURL
Aakash Chakravarthy
In PHP sehe ich das Wort cURL in vielen PHP-Projekten. Was ist es? Wie funktioniert es?
Referenzlink: cURL
Johannes Gorset
cURL ist eine Bibliothek, mit der Sie HTTP-Anfragen in PHP stellen können. Alles, was Sie darüber (und die meisten anderen Erweiterungen) wissen müssen, finden Sie in der PHP-Handbuch.
Um die cURL-Funktionen von PHP nutzen zu können, müssen Sie das » libcurl-Paket installieren. PHP erfordert, dass Sie libcurl 7.0.2-beta oder höher verwenden. In PHP 4.2.3 benötigen Sie libcurl Version 7.9.0 oder höher. Ab PHP 4.3.0 benötigen Sie eine libcurl-Version von 7.9.8 oder höher. PHP 5.0.0 erfordert eine libcurl-Version 7.10.5 oder höher.
Sie können HTTP-Anforderungen auch ohne cURL stellen, obwohl dies erforderlich ist allow_url_fopen
in Ihrem aktiviert werden php.ini
Datei.
// Make a HTTP GET request and print it (requires allow_url_fopen to be enabled)
print file_get_contents('http://www.example.com/');
@Johannes, sind HTTP-Post-Requests ohne cURL möglich?
– Schrittmacher
26. Februar 2013 um 15:54 Uhr
Das heißt, wenn auf dem Server „allow_url_fopen“ nicht aktiviert ist, können wir die file_get_contents()-Funktion nicht verwenden, aber in diesem Fall können wir die Curl-Funktion für denselben Zweck verwenden? hab ich recht?
– ARUN
15. Februar 2014 um 18:11 Uhr
@Arun Ja, wenn ‘allow_url_fopen’ nicht aktiviert ist, können Sie curl für dieselbe Aufgabe anstelle von file_get_contents() func verwenden. Mit Curl können Sie weitere Optionen wie POST-Daten, Cookies usw. festlegen, die file_get_contents() nicht bietet.
– Dinesh Nagar
22. August 2014 um 8:18 Uhr
sushil bharwani
cURL ist eine Möglichkeit, eine URL aus Ihrem Code zu treffen, um eine HTML-Antwort davon zu erhalten. cURL bedeutet Client-URL, mit der Sie eine Verbindung zu anderen URLs herstellen und deren Antworten in Ihrem Code verwenden können.
in Javascript ist es dasselbe wie Sie Ajax in Ihrem Code tun. Die verschiedenen Dinge, die Sie mit PHP synchron machen, während Sie mit Javascript aynchron tun.
– Faris Rayhan
20. Oktober 2017 um 7:09 Uhr
Erich Leschinski
Zusammenfassung:
Die curl_exec
Befehl in PHP ist eine zu verwendende Brücke curl
von der Konsole. curl_exec macht es einfach, schnell und einfach GET/POST-Anforderungen auszuführen, Antworten von anderen Servern wie JSON zu erhalten und Dateien herunterzuladen.
Achtung, Gefahr:
curl
ist böse und gefährlich, wenn es unsachgemäß verwendet wird, weil es darum geht, Daten von da draußen aus dem Internet zu bekommen. Jemand kann zwischen deine Locke und den anderen Server kommen und einen spritzen rm -rf /
in Ihre Antwort, und warum bin ich dann auf eine Konsole gefallen und ls -l
geht gar nicht mehr? Weil Sie die gefährliche Kraft des Lockens falsch eingeschätzt haben. Vertrauen Sie nicht darauf, dass irgendetwas, das von curl zurückkommt, sicher ist, selbst wenn Sie mit Ihren eigenen Servern sprechen. Sie könnten Malware zurückziehen, um Narren ihres Reichtums zu befreien.
Diese wurden auf Ubuntu 12.10 erstellt
Basic Curl von der Kommandozeile:
el@apollo:/home/el$ curl http://i.imgur.com/4rBHtSm.gif > mycat.gif
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 492k 100 492k 0 0 1077k 0 --:--:-- --:--:-- --:--:-- 1240k
Dann können Sie Ihr GIF in Firefox öffnen:
firefox mycat.gif
Herrliche Katzen, die Toxoplasma gondii entwickeln, um Frauen dazu zu bringen, Katzen in der Nähe zu halten, und Männer ebenfalls, um die Frauen in der Nähe zu halten.
cURL-Beispiel zum Abrufen der Anforderung zum Aufrufen von google.com, Echo an die Befehlszeile:
Dies geschieht über das phpsh-Terminal:
php> $ch = curl_init();
php> curl_setopt($ch, CURLOPT_URL, 'http://www.google.com');
php> curl_exec($ch);
Was ein Durcheinander von komprimiertem HTML und Javascript (von Google) druckt und auf die Konsole ausgibt.
cURL-Beispiel den Antworttext in eine Variable einfügen:
Dies geschieht über das phpsh-Terminal:
php> $ch = curl_init();
php> curl_setopt($ch, CURLOPT_URL, 'http://i.imgur.com/wtQ6yZR.gif');
php> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
php> $contents = curl_exec($ch);
php> echo $contents;
Die Variable enthält jetzt die Binärdatei, die ein animiertes GIF einer Katze ist, die Möglichkeiten sind unendlich.
Führen Sie einen Curl aus einer PHP-Datei heraus aus:
Fügen Sie diesen Code in eine Datei namens myphp.php ein:
<?php
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'http://www.google.com');
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($buffer)){
print "Nothing returned from url.<p>";
}
else{
print $buffer;
}
?>
Führen Sie es dann über die Befehlszeile aus:
php < myphp.php
Sie haben myphp.php ausgeführt und diese Befehle über den PHP-Interpreter ausgeführt und eine Menge unordentliches HTML und Javascript auf den Bildschirm ausgegeben.
Du kannst tun GET
und POST
Anfragen mit curl, alles, was Sie tun, ist, die Parameter wie hier definiert anzugeben: Verwenden von curl zum Automatisieren von HTTP-Jobs
Erinnerung an Gefahr:
Seien Sie vorsichtig, wenn Sie Curl-Ausgaben herumwerfen, wenn irgendetwas davon interpretiert und ausgeführt wird, gehört Ihre Box und Ihre Kreditkarteninformationen werden an Dritte verkauft, und Sie erhalten eine mysteriöse Gebühr von 900 US-Dollar von einer Ein-Mann-Bodenbelagsfirma in Alabama, die a ist Front für Verbrechensring für Kreditkartenbetrug in Übersee.
Können Sie einen Link zur Verfügung stellen, der die von Ihnen erwähnte “Gefahr” unterstützt?
– FloatingLomas
19. August 2016 um 16:46 Uhr
@floatingLomas Was Eric zu erklären versucht, ist ein Problem, das bei allen von Benutzern bereitgestellten Inhalten vorhanden ist: Sie können niemandem vertrauen. Wie bei von Benutzern bereitgestellten Inhalten ist es möglich, cURL mit einem einfachen MITM auszunutzen, um bösartigen Code in Ihre Anwendung einzuschleusen. Das ist natürlich nur ein Problem, wenn es kommt „interpretiert und ausgeführt“ wie Eric richtig gesagt hat. Suchen Sie einfach nach der eval ist böse und Sie werden viele mögliche Sicherheitsrisiken finden (z. B. stackoverflow.com/questions/951373/when-is-eval-evil-in-php)
– Fabio Poloni
17. November 2016 um 9:53 Uhr
@floatingLomas … außerdem scheint Eric Paranoia über Ein-Mann-Bodenbelagsfirmen in Alabama zu haben, die ihm 900 Dollar berechnen.
– Fabio Poloni
17. November 2016 um 9:55 Uhr
Gibt es eine Alternative außer Iframe?
– Jennifer Michelle
29. Juni 2017 um 10:04 Uhr
Es ist keine Paranoia, wenn sie Ihnen wirklich Bodenbeläge verkaufen wollen.
– Pierb
23. Oktober 2017 um 9:56 Uhr
Neha Sinha
cURL ist eine Möglichkeit, eine URL aus Ihrem Code zu treffen, um eine HTML-Antwort davon zu erhalten. Es wird für die Befehlszeilen-cURL aus der PHP-Sprache verwendet.
<?php
// Step 1
$cSession = curl_init();
// Step 2
curl_setopt($cSession,CURLOPT_URL,"http://www.google.com/search?q=curl");
curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true);
curl_setopt($cSession,CURLOPT_HEADER, false);
// Step 3
$result=curl_exec($cSession);
// Step 4
curl_close($cSession);
// Step 5
echo $result;
?>
Schritt 1: Initialisieren Sie eine Curl-Sitzung mit curl_init()
.
Schritt 2: Option für festlegen CURLOPT_URL
. Dieser Wert ist die URL, an die wir die Anfrage senden. Fügen Sie einen Suchbegriff hinzu curl
Parameter verwenden q=
. Option festlegen für CURLOPT_RETURNTRANSFER
. True weist curl an, die Zeichenfolge zurückzugeben, anstatt sie auszudrucken. Option festlegen für CURLOPT_HEADER
false weist curl an, den Header im Rückgabewert zu ignorieren.
Schritt 3: Führen Sie die Curl-Sitzung mit aus curl_exec()
.
Schritt 4: Schließen Sie die von uns erstellte Curl-Sitzung.
Schritt 5: Geben Sie den Rückgabestring aus.
public function curlCall($apiurl, $auth, $rflag)
{
$ch = curl_init($apiurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if($auth == 'auth') {
curl_setopt($ch, CURLOPT_USERPWD, "passw:passw");
} else {
curl_setopt($ch, CURLOPT_USERPWD, "ss:ss1");
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$dt = curl_exec($ch);
curl_close($ch);
if($rflag != 1) {
$dt = json_decode($dt,true);
}
return $dt;
}
Dies dient auch der Authentifizierung. Wir können auch den Benutzernamen und das Passwort für die Authentifizierung festlegen.
Weitere Funktionen finden Sie im Benutzerhandbuch oder im folgenden Tutorial:
http://php.net/manual/en/ref.curl.php
http://www.startutorial.com/articles/view/php-curl
Anand Pandey
Lassen Sie uns zunächst die Konzepte von curl, libcurl und PHP/cURL verstehen.
kräuseln: Ein Befehlszeilentool zum Abrufen oder Senden von Dateien mithilfe der URL-Syntax.
libcurl: eine von Daniel Stenberg erstellte Bibliothek, die es Ihnen ermöglicht, sich mit vielen verschiedenen Arten von Servern mit vielen verschiedenen Arten von Protokollen zu verbinden und mit ihnen zu kommunizieren. libcurl unterstützt derzeit die Protokolle http, https, ftp, gopher, telnet, dict, file und ldap. libcurl unterstützt auch HTTPS-Zertifikate, HTTP POST, HTTP PUT, FTP-Upload (dies kann auch mit der FTP-Erweiterung von PHP erfolgen), HTTP-Formular-basiertes Hochladen, Proxys, Cookies und Benutzer- und Passwortauthentifizierung.
PHP/cURL: Das Modul für PHP, das es PHP-Programmen ermöglicht, libcurl zu verwenden.
Wie man es benutzt:
Schritt 1: Initialisieren Sie eine Curl-Sitzung mit curl_init().
Schritt 2: Option für CURLOPT_URL festlegen. Dieser Wert ist die URL, an die wir die Anfrage senden. Hängen Sie einen Suchbegriff “curl” mit dem Parameter “q=” an. Setzen Sie die Option CURLOPT_RETURNTRANSFER, true wird curl anweisen, die Zeichenfolge zurückzugeben, anstatt sie auszudrucken. Setzen Sie die Option für CURLOPT_HEADER, false weist curl an, den Header im Rückgabewert zu ignorieren.
Schritt 3: Führen Sie die Curl-Sitzung mit curl_exec() aus.
Schritt 4: Schließen Sie die von uns erstellte Curl-Sitzung.
Schritt5: Rückgabestring ausgeben.
Demo machen :
Sie müssen zwei PHP-Dateien erstellen und sie in einem Ordner ablegen, aus dem Ihr Webserver PHP-Dateien bereitstellen kann. In meinem Fall habe ich sie der Einfachheit halber in /var/www/ abgelegt.
1. helloservice.php und 2. demo.php
helloservice.php ist sehr einfach und gibt im Wesentlichen nur alle Daten zurück, die es erhält:
<?php
// Here is the data we will be sending to the service
$some_data = array(
'message' => 'Hello World',
'name' => 'Anand'
);
$curl = curl_init();
// You can also set the URL you want to communicate with by doing this:
// $curl = curl_init('http://localhost/echoservice');
// We POST the data
curl_setopt($curl, CURLOPT_POST, 1);
// Set the url path we want to call
curl_setopt($curl, CURLOPT_URL, 'http://localhost/demo.php');
// Make it so the data coming back is put into a string
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Insert the data
curl_setopt($curl, CURLOPT_POSTFIELDS, $some_data);
// You can also bunch the above commands into an array if you choose using: curl_setopt_array
// Send the request
$result = curl_exec($curl);
// Get some cURL session information back
$info = curl_getinfo($curl);
echo 'content type: ' . $info['content_type'] . '<br />';
echo 'http code: ' . $info['http_code'] . '<br />';
// Free up the resources $curl is using
curl_close($curl);
echo $result;
?>
2.demo.php Seite können Sie das Ergebnis sehen:
<?php
print_r($_POST);
//content type: text/html; charset=UTF-8
//http code: 200
//Array ( [message] => Hello World [name] => Anand )
?>
Hallo, würden Sie mir bitte etwas über die Seite 1 erzählen. using-curl.php
– Kaveh
26. April 2018 um 20:04 Uhr
@Kaveh: Entschuldigung, ich habe die zweite Seite vergessen. Aktualisierte Antwort. Jetzt bitte prüfen.
– Anand Pandey
29. Juni 2018 um 11:13 Uhr
Naved Ahmed
Die cURL-Erweiterung für PHP wurde entwickelt, damit Sie eine Vielzahl von Webressourcen aus Ihrem PHP-Skript heraus verwenden können.
Hallo, würden Sie mir bitte etwas über die Seite 1 erzählen. using-curl.php
– Kaveh
26. April 2018 um 20:04 Uhr
@Kaveh: Entschuldigung, ich habe die zweite Seite vergessen. Aktualisierte Antwort. Jetzt bitte prüfen.
– Anand Pandey
29. Juni 2018 um 11:13 Uhr
Jaime Hablutzel
cURL in PHP ist eine Brücke zur Verwendung von Befehlszeilen-cURL aus der PHP-Sprache
(Hinweis) PHP-Handbuch: Client-URL-Bibliothek
– Gordon
17. Juni 2010 um 14:07 Uhr
Bitte überprüfen Sie den Link unten 2, ich denke, das wird Ihnen helfen zu verstehen, was cURL ist. phpsense.com/2007/php-curl-functions blog.unitedheroes.net/curl
– Dhaval
18. Juni 2012 um 5:05 Uhr
Konvertieren Sie CURL-Befehle sofort in PHP-Code: incarnate.github.io/curl-to-php
– Nabi KAZ
24. September 2021 um 18:27 Uhr