PHP: 6 GET and POST request sending methods, 6 get
In the i94web blog, I tried to chat and talk about two kinds of social comments. Later, I gave up talking and was insecure.
Whether talking or speaking, I need to capture the comments of the article remotely and store them in the local database. For more information, the request format is as follows:
// Get comments, the parameter is the article IDfunction getCommCount ($ postid) {$ jsondata = file_get_contents ("http://api.duoshuo.com/threads/counts.json? Short_name = i94web & threads = $ postid "); // sets true to return an array. If no value is set or false, the returned object $ resjson = json_decode ($ jsondata, true) is returned ); return $ resjson ['response'] [$ postid] ['comments'];}
There are many methods for remote requests. Today, LZ has collected six types for your reference.
1. Use file_get_contents to get the content in get mode:
<?php$url='http://www.ido321.com/';$html = file_get_contents($url);echo $html;?>
2. Open the url with fopen and get it with get
$fp = fopen($url, 'r');stream_get_meta_data($fp);while(!feof($fp)) {$result .= fgets($fp, 1024);}echo "url body: $result";fclose($fp);
3. Use file_get_contents to get the content in post mode:
$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('http://localhost/e/admin/test.html', false, $context); echo $html;
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.
Function 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 ;}
5,Use the fsockopen function to open the url and obtain the complete data in POST mode, including the header and body.
function 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_string.'n'; $fp = fsockopen($URL_Info['host'],$URL_Info['port']);fputs($fp, $request);while(!feof($fp)) {$result .= fgets($fp, 1024);}fclose($fp); return $result;}
6,Before using the curl library, you may need to check whether php. ini has enabled the curl extension.
$ch = curl_init();$timeout = 5;curl_setopt ($ch, CURLOPT_URL, ‘http://www.ido321.com/');curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);$file_contents = curl_exec($ch);curl_close($ch); echo $file_contents;
First: http://www.ido321.com/1297.html
Next article: display of CSS 3: Box Type Details