Class
- Tip&Tech
[ÇÔ¼ö] fopen ÇØ°á¹× ¸ÞŸ°Ë»ö¼Ò½ºÂü°í | |||||
±Û¾´ÀÌ | »Ç·ç | ³¯ Â¥ | 05-06-27 17:11 | Á¶ ȸ | 11947 |
---|---|---|---|---|---|
°£ÆíURL |
https://phpschool.com/link/tipntech/40685
|
||||
Link1 | http://dnsolution.co.kr/dnmeta/naver.php (527) | ||||
ÀÚ·á¿¡µî·ÏÀ̾ȵdz׿± ¿Ö±×·±´ÙÁö.
fopen´ë¿ëÀ¸·Î »ç¿ëÇغ¸¼¼¿± ¸ÞŸ¼Ò½ºµ¥¸ð: http://dnsolution.co.kr/dnmeta/naver.php <? class BrowserEmulator { var $headerLines = Array(); var $postData = Array(); var $authUser = ""; var $authPass = ""; var $port; var $lastResponse = Array(); var $debug = false; function BrowserEmulator() { $this->resetHeaderLines(); $this->resetPort(); } function addHeaderLine($name, $value) { $this->headerLines[$name] = $value; } function resetHeaderLines() { $this->headerLines = Array(); $this->headerLines["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"; } /** * $urlºÒ·¯fopenÀ» ¸¸µê * °ªÀ»ºÎ¸§. ¸ðµçÇìµå¿¡ º¸³¿, µ¥ÀÌÅÍ¿Í»ç¿ëÀÚº¸¾Èµ¥ÀÌŸº¸³¿. * ÆÄÀÏÁ¶Á¤µÇ¾úÀ»½Ã µÇµ¹¸², or ¿À·ù½Ã¾ø¿¥. **/ function fopen($url) { $this->lastResponse = Array(); preg_match("~([a-z]*://)?([^:^/]*)(:([0-9]{1,5}))?(/.*)?~i", $url, $matches); $protocol = $matches[1]; $server = $matches[2]; $port = $matches[4]; $path = $matches[5]; if ($port!="") { $this->setPort($port); } if ($path=="") $path = "/"; $socket = false; $socket = fsockopen($server, $this->port); if ($socket) { $this->headerLines["Host"] = $server; if ($this->authUser!="" && $this->authPass!="") { $this->headerLines["Authorization"] = "Basic ".base64_encode($this->authUser.":".$this->authPass); } if (count($this->postData)==0) { $request = "GET $path HTTP/1.0\r\n"; } else { $request = "POST $path HTTP/1.0\r\n"; } if ($this->debug) echo $request; fputs ($socket, $request); if (count($this->postData)>0) { $PostStringArray = Array(); foreach ($this->postData AS $key=>$value) { $PostStringArray[] = "$key=$value"; } $PostString = join("&", $PostStringArray); $this->headerLines["Content-Length"] = strlen($PostString); } foreach ($this->headerLines AS $key=>$value) { if ($this->debug) echo "$key: $value\n"; fputs($socket, "$key: $value\r\n"); } if ($this->debug) echo "\n"; fputs($socket, "\r\n"); if (count($this->postData)>0) { if ($this->debug) echo "$PostString"; fputs($socket, $PostString."\r\n"); } } if ($this->debug) echo "\n"; if ($socket) { $line = fgets($socket, 1000); if ($this->debug) echo $line; $this->lastResponse[] = $line; $status = substr($line,9,3); while (trim($line = fgets($socket, 1000)) != ""){ if ($this->debug) echo "$line"; $this->lastResponse[] = $line; if ($status=="401" AND strpos($line,"WWW-Authenticate: Basic realm=\"")===0) { fclose($socket); return FALSE; } } } return $socket; } /** * Æ÷Æ®Ãß°¡. Æ÷Æ®ÆĶó¸ÞÅÍ°ª HTTP POST ¿ä±¸À» ¹Ùµð¿¡ º¸³¿. **/ function addPostData($name, $value) { $this->postData[$name] = $value; } /** * ¸ðµçÀϹÝÆ÷Æ®ÆĶó¸ÞÅÍÁö¿ò. **/ function resetPostData() { $this->postData = Array(); } /** * »ç¿ëÀÚÆ佺¿öµå »ç¿ë¿ä±¸. * . **/ function setAuth($user, $pass) { $this->authUser = $user; $this->authPass = $pass; } /** * »ç¿ëÀÚÀϹÝÆ÷Æ®¼±Åÿ䱸. **/ function setPort($portNumber) { $this->port = $portNumber; } /** * º¸³½»ç¿ëÀڱ⺻ HTTP default(80)¸®¼Â¿ä±¸. **/ function resetPort() { $this->port = 80; } /** * $url ºÒ·¯ÆÄÀÏÀ»¸¸µê. * °ªÀ»ºÎ¸£°í. Çìµåº¸³¿, µ¥ÀÌÅÍ¿Í»ç¿ëÀÚº¸¾È. * ¿ä±¸ÆÄÀϼº°øÀûÀ¸·Î Á¤·Ä½Ã µÇµ¹¸², ¶Ç´Â¿À·ù½·±è. **/ function file($url) { $file = Array(); $socket = $this->fopen($url); if ($socket) { $file = Array(); while (!feof($socket)) { $file[] = fgets($socket, 10000); } } else { return FALSE; } return $file; } function getLastResponseHeaders() { return $this->lastResponse; } } /* // ¿¹Á¦ÄÚµå $be = new BrowserEmulator(); $be->addHeaderLine("Referer", "http://dnsolution.co.kr/"); $be->addHeaderLine("Accept-Encoding", "x-compress; x-zip"); $be->addPostData("Submit", "OK"); $be->addPostData("item", "42"); $be->setAuth("admin", "secretpass"); // also possible: // $be->setPort(10080); $file = $be->fopen("http://dnsolution.co.kr/somepage.html"); $response = $be->getLastResponseHeaders(); while ($line = fgets($file, 1024)) { // ÆÄÀÏwidth¾Æ¹«°Å³ª! } fclose($file); */ ?> |
Àüü´ñ±Û¼ö 3
-
Ä¡Áî¹ö°Å 05-06-27 08:40
| »èÁ¦¼Ò½ºº¸±â
-
fopen() À̳ª fsockopen() À¸·Î ¿¸®Áö ¾Ê´Â ÆäÀÌÁö´Â file() ·Î Àß ¿¸®´õ±º¿ä,
±×¸®°í post Çü½Ä form ÆäÀÌÁö´Â ¾Æ·¡ ÇÔ¼ö·Î Àß ¿¸³´Ï´Ù.
function HTTP_Post($URL,$data, $referrer=\"\") {
// parsing the given URL
$URL_Info=parse_url($URL);
// Building referrer
if($referrer==\"\") // if not given use this script as referrer
$referrer=$_SERVER[\"SCRIPT_URI\"];
// making string from $data
foreach($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.1\\n\";
$request.=\"Host: \".$URL_Info[\"host\"].\"\\n\";
$request.=\"Referer: $referer\\n\";
$request.=\"Content-type: application/x-www-form-urlencoded\\n\";
$request.=\"Content-length: \".strlen($data_string).\"\\n\";
$request.=\"Connection: close\\n\";
$request.=\"\\n\";
$request.=$data_string.\"\\n\";
$fp = fsockopen($URL_Info[\"host\"],$URL_Info[\"port\"]);
fputs($fp, $request);
while(!feof($fp)) {
$result .= fgets($fp, 128);
}
fclose($fp);
return $result;
}
»ç¿ëÀº
$output=HTTP_Post(\"http://www.server.com/script.php\",$_POST);
$_POST ´Â post Æû¿¡¼ ÇÊ¿äÇÑ º¯¼öµéÀÇ ¹è¿ÀÔ´Ï´Ù. ¿¹¸¦µé¸é
$_POST[\"name\"] = \"php\";
$_POST[\"pwd\"] = \"school\";
$_POST[\"email\"] = \"webmaster@phpschool.com\";
Ãâó http://man.phpschool.com/manual/en/ref.curl.php
-
³¹Ùº¸ 05-07-03 08:33
| »èÁ¦¼Ò½ºº¸±â
-
ÀÌ°Å µÇ³× ¤Ñ¤Ñ;;
Çæ... ½Å±â ¤Ñ¤Ñ;;;;;;;;;;; ÇØ´õ Á¶ÀÛÀÌ ¹«¼·´Ù´Ï±î..
-
yahosarang 05-08-24 22:53
| »èÁ¦¼Ò½ºº¸±â
-
¿ÀÈ£ ½Å±âÇÏ³× ;; ÀÌ ÀÚ·á °í¸¿½À´Ï´Ù. Àß ¸ð¸£°ÚÁö¸¸, Á¦°¡ ã´ø°Å¿¡¿ä.
±¸±ÛÀ̸ÞÀÏ °®°í ½Í¾î¿ä. yahosarang@hanmail.net ¾Æ¹«°Å³ª Çϳª ¸¸µéÁÖ¼¼¿ä.. °¡ÀÔÀÌ ¾ÈµÇ°í, ÃßõÁ¦¶ó´Âµ¥¿ä.
1 2 3 4 5