Heim > Artikel > Backend-Entwicklung > So verwenden Sie CURL zum Implementieren von GET- und POST-Anfragen in PHP
CURL ist ein Tool, das URL-Syntax zum Übertragen von Dateien und Daten verwendet. Es unterstützt viele Protokolle wie HTTP, FTP, TELNET usw. Das Beste daran ist, dass PHP auch die CURL-Bibliothek unterstützt. Verwenden Sie die CURL-Bibliothek von PHP, um Webseiten einfach und effektiv zu crawlen. Sie müssen lediglich ein Skript ausführen und die von Ihnen gecrawlten Webseiten analysieren. Anschließend können Sie die gewünschten Daten programmgesteuert abrufen. Ganz gleich, ob Sie Teildaten aus einem Link abrufen, eine XML-Datei in eine Datenbank importieren oder einfach nur den Inhalt einer Webseite abrufen möchten: CURL ist eine leistungsstarke PHP-Bibliothek.
①: Initialisierung
curl_init()
②: Attribute festlegen
curl_setopt() Es gibt eine lange Liste von CURL-Parametern, die festgelegt werden können und die verschiedene Details der URL-Anfrage angeben können.
③: Ausführen und das Ergebnis erhalten
curl_exec()
④: Den Griff loslassen
curl_close()
①: GET-Methode zur Implementierung
//初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //执行命令 $data = curl_exec($curl); //关闭URL请求 curl_close($curl); //显示获得的数据 print_r($data);
②: POST-Methode zur Implementierung
//初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置post方式提交 curl_setopt($curl, CURLOPT_POST, 1); //设置post数据 $post_data = array( "username" => "coder", "password" => "12345" ); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); //执行命令 $data = curl_exec($curl); //关闭URL请求 curl_close($curl); //显示获得的数据 print_r($data);
③:如果获得的数据时json格式的,使用json_decode函数解释成数组。
$output_array = json_decode($data,true); //如果第二个参数为true,就转为数组的形式。如果不填就为对象的形式
如果使用json_decode($data)解析的话,将会得到object类型的数据。
//参数1:访问的URL,参数 :post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies 2 function curl_request($url,$post='',$cookie='', $returnCookie=0){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_AUTOREFERER, 1); curl_setopt($curl, CURLOPT_REFERER, "http://XXX"); if($post) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post)); } if($cookie) { curl_setopt($curl, CURLOPT_COOKIE, $cookie); } curl_setopt($curl, CURLOPT_HEADER, $returnCookie); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); if (curl_errno($curl)) { return curl_error($curl); } curl_close($curl); if($returnCookie){ list($header, $body) = explode("\r\n\r\n", $data, 2); preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches); $info['cookie'] = substr($matches[1][0], 1); $info['content'] = $body; return $info; }else{ return $data; } }
这俩个函数虽然不难,但是还是值得学习一下的。因为在做接口或者调用的接口的时候,必定会用到这俩个函数。
Das obige ist der detaillierte Inhalt vonSo verwenden Sie CURL zum Implementieren von GET- und POST-Anfragen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!