This article mainly introduces the six methods for php to send get and post requests, namely, using file_get_contents, fopen, fsockopen, and curl to send GET and POST requests, for more information, see
This article mainly introduces the six methods for php to send get and post requests, namely, using file_get_contents, fopen, fsockopen, and curl to send GET and POST requests, for more information, see
Method 1: Use file_get_contents to get the content in get mode:
<? Php $ url = 'HTTP: // www.jb51.net/'{}html = file_get_contents ($ url); echo $ html;?>
Method 2: Use fopen to open the url and get the content:
<? Php $ fp = fopen ($ url, 'R'); stream_get_meta_data ($ fp); while (! Feof ($ fp) {$ result. = fgets ($ fp, 1024);} echo "url body: $ result"; fclose ($ fp);?>
Method 3: Use the file_get_contents function to obtain the url in post mode.
<? Php $ data = array ('foo' => 'bar'); $ data = http_build_query ($ data ); $ opts = array ('http' => array ('method' => 'post', 'header' => "Content-type: application/x-www-form-urlencodedrn ". "Content-Length :". strlen ($ data ). "rn", 'content' => $ data); $ context = stream_context_create ($ opts); $ html = file_get_contents ('', false, $ context ); echo $ html;?>
Method 4: Use the fsockopen function to open the url and get the complete data, including the header and body. fsockopen must be enabled using the allow_url_fopen option in PHP. ini.
<? Phpfunction get_url ($ url, $ cookie = false) {$ url = parse_url ($ url); $ query = $ url [path]. "?". $ Url [query]; echo "Query:". $ query; $ fp = fsockopen ($ url [host], $ url [port]? $ Url [port]: 80, $ errno, $ errstr, 30); if (! $ Fp) {return false;} else {$ request = "GET $ query HTTP/1.1rn"; $ request. = "Host: $ url [host] rn"; $ request. = "Connection: Closern"; if ($ cookie) $ request. = "Cookie: $ cookien"; $ request. = "rn"; fwrite ($ fp, $ request); while (! @ Feof ($ fp) {$ result. = @ fgets ($ fp, 1024) ;}fclose ($ fp); return $ result ;}// get the html part of the url, remove headerfunction GetUrlHTML ($ url, $ cookie = false) {$ rowdata = get_url ($ url, $ cookie); if ($ rowdata) {$ body = stristr ($ rowdata, "rnrn "); $ body = substr ($ body, 4, strlen ($ body); return $ body;} return false ;}?>
Method 5: Use the fsockopen function to open the url and obtain the complete data in POST mode, including the header and body.
<? Phpfunction HTTP_Post ($ URL, $ data, $ cookie, $ referrer = "") {// parsing the given URL $ URL_Info = parse_url ($ URL ); // Building referrerif ($ referrer = "") // if not given use this script as referrer $ referrer = "111 ″; // making string from $ dataforeach ($ data as $ key => $ value) $ values [] = "$ key = ". urlencode ($ value); $ data_string = implode ("&", $ values); // Find out which port is needed-if not given use standard (= 80) if (! Isset ($ URL_Info ["port"]) $ URL_Info ["port"] = 80; // building POST-request: $ request. = "POST". $ URL_Info ["path"]. "HTTP/1.1n"; $ request. = "Host:". $ URL_Info ["host"]. "n"; $ request. = "Referer: $ referern"; $ request. = "Content-type: application/x-www-form-urlencodedn"; $ request. = "Content-length:". strlen ($ data_string ). "n"; $ request. = "Connection: closen"; $ request. = "Cookie: $ cookien"; $ request. = "n"; $ request. = $ data_stri Ng. "n"; $ fp = fsockopen ($ URL_Info ["host"], $ URL_Info ["port"]); fputs ($ fp, $ request); while (! Feof ($ fp) {$ result. = fgets ($ fp, 1024) ;}fclose ($ fp); return $ result ;}?>
Method 6: Use the curl library. before using the curl library, you may need to check whether php. ini has enabled the curl extension.
<? Php $ ch = curl_init (); $ timeout = 5; curl_setopt ($ ch, CURLOPT_URL, ''); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, $ timeout); $ file_contents = curl_exec ($ ch); curl_close ($ ch); echo $ file_contents;?>