PHP > Tip&Tech > [php] 소켓을 이용한 POST Request
 
PHP
Library
Tip&Tech
Q&A
 
PHP Function
phpschool
그누보드
Tip&Tech
  HOME > PHP > Tip&Tech
 
작성일 : 17-07-26 17:26
[php] 소켓을 이용한 POST Request
 글쓴이 : 덩벙이 (211.♡.155.10)
조회 : 234   추천 : 0   비추천 : 0  

<?php 
 function post_request($url$data=''$referer=''

 { 
  // Convert the data array into URL Parameters like a=b&foo=bar etc. 
  if(!empty($data
)) 
  { 
   $data http_build_query($data
); 
  } 

  // parse the given URL 
  $url parse_url($url
); 

  if (
$url['scheme'] != 'http'

  { 
   die(
'Error: Only HTTP request are supported !'
); 
  } 

  // extract host and path: 
  $host $url['host'
]; 
  $path $url['path'
]; 

  // open a socket connection on port 80 - timeout: 30 sec 
  if($fp fsockopen($host80$errno$errstr30
)) 
  { 
   // send the request headers: 
   fputs($fp"POST $path HTTP/1.1\r\n"
); 
   fputs($fp"Host: $host\r\n"
); 

   if (
$referer != ''

   { 
    fputs($fp"Referer: $referer\r\n"
); 
   } 

   fputs($fp"Content-type: application/x-www-form-urlencoded\r\n"
); 
   fputs($fp"Content-length: "strlen($data) ."\r\n"
); 
   fputs($fp"Connection: close\r\n\r\n"
); 
   fputs($fp$data
); 

   $result ''


   while(!
feof($fp
)) 
   { 
     // receive the results of the request 
     $result .= fgets($fp128
); 
    } 
   } 
   else 
   { 
    return array( 
      'status' => 'err'

      'error' => 
"$errstr ($errno)" 
    ); 
   } 
   fclose($fp
); 

  // split the result header from the content 
  $result explode("\r\n\r\n"$result2
); 

  $header ''

  if(isset(
$result[0
])) 
  { 
   $header $result[0
]; 
  } 
  $content ''

  if(isset(
$result[1
])) 
  { 
   $content $result[1
]; 
  } 

 // return as structured array: 
  return array( 
   'status' => 'ok'

   'header' => $header

   'content' => 
$content 
  ); 
 } 
 // Submit those variables to the server 



 // example #1
 $post_data 
= array( 
   'test' => 'foobar'

   'okay' => 'yes'

   'number' => 

 ); 

 // Send a request to example.com 
 $result post_request('http://www.example.com/'$post_data
); 

 if (
$result['status'] == 'ok'
){ 

 // headers 
 echo $result['header'
]; 

 echo 
'<hr />'


 // print the result of the whole request: 
 echo $result['content'
]; 
 } 
 else

 { 
   echo 
'A error occured: ' $result['error'
]; 
 } 
 ?>


 
 

Total 2,770
번호 제   목 글쓴이 날짜 추천 비추천 조회
2770 PHP로 구현한 SEED128 + CBC + PKCS5 암호화 덩벙이 08-08 0 0 22
2769 세션 타임아웃 구현 덩벙이 06-22 0 0 23
2768 CURL 사용법 덩벙이 03-16 0 0 104
2767 이미지 파일에 문자 병합 (응용 도장이미지 만들기) 덩벙이 08-11 0 0 172
2766    이미지 파일에 문자 병합 (응용 도장이미지 만들기)2 덩벙이 08-11 0 0 173
2765 php GD 이미지 합치기와 텍스트 합치기 덩벙이 08-11 0 0 160
2764 xml 데이터 submit 하기 덩벙이 08-11 0 0 158
2763 php 세션 만료 (2) 덩벙이 08-09 0 0 172
2762 php 세션 (1) 덩벙이 08-09 0 0 194
2761 PHP 문자가 한글인지 확인 is hangul char() 덩벙이 07-28 0 0 169
2760    UTF-8 한글 덩벙이 07-28 0 0 164
2759    has_hangul() 한글을 포함하고 있는지 판별하는 함수 덩벙이 07-28 0 0 169
2758    PHP함수 chr, ord의 UTF-8 확장 커스텀 함수 utf8_chr() utf8_or… 덩벙이 07-28 0 0 164
2757 PHP 파일 다운로드 구현 (1) 덩벙이 07-28 0 0 181
2756    PHP 파일 다운로드 구현 2 (한글 파일명 지원) (2) 덩벙이 07-28 0 0 153
2755    •파일을 출력하는 PHP 함수 PHP readfile() 덩벙이 07-28 0 0 153
2754 Seed_crypto.php 덩벙이 07-26 0 0 153
2753 [php] 맥주소(mac address) 추출 및 검증 소스 덩벙이 07-26 0 0 195
2752 [php] 간단한 포트 스캐너 만들기 덩벙이 07-26 0 0 167
2751 [php] 소켓을 이용한 POST Request 덩벙이 07-26 0 0 235
 1  2  3  4  5  6  7  8  9  10    
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.