PHP는 제출 후 데이터를 시뮬레이션합니다.

WBOY
풀어 주다: 2016-07-25 09:09:06
원래의
1076명이 탐색했습니다.
PHP는 제출 후 데이터를 시뮬레이션하며 웹사이트 수집, 로그인 등에 사용될 수 있습니다.
  1. //포럼에 로그인하는 프로그램을 예로 들어보세요
  2. function bbslogin($user_login, $password, $host , $port = "80") {
  3. //제출해야 할 데이터 게시
  4. $argv = array('cookie' => array('user_login' => $user_login, 'password' = > $password, ' _wp_http_referer' => '/bbpress/', 're' => '', '기억' => true));
  5. foreach ($argv['cookie'] 키 => $value ) {
  6. $params[] = $key . $value;
  7. }
  8. $params = implode('&', $params);
  9. $ header = "POST /bbpress /bb-login.php HTTP/1.1rn";
  10. $header .= "Host:$host:$portrn";
  11. $header .= "콘텐츠 유형: application/x -www-form-urlencodedrn ";
  12. $header .= "콘텐츠 길이: " . strlen($params) . "rn";
  13. $header .= "연결: Closernrn";
  14. $header .= $params;
  15. $fp = fsockopen($host, $port);
  16. fputs($fp, $header);
  17. while (!feof($fp)) {
  18. $str = fgets($fp) ;
  19. //다음은 주로 쿠키를 시뮬레이션하고 동기적으로 로그인하는 데 사용할 수 있는 나만의 논리 코드입니다.
  20. if (!(strpos($str, "Set-Cookie:" ) === false)) {
  21. $tmparray = 폭발(" ", $str);
  22. $cookiearray = 폭발("=", $tmparray[1]);
  23. $cookiepaths = 폭발( "=", $tmparray[6] );
  24. $cookiename = urldecode($cookiearray[0]);
  25. $cookievalue = urldecode(substr($cookiearray[1], 0, strlen($cookiearray[1) ]) - 1));
  26. $cookietime = time() 3600 * 24 * 7;
  27. $cookiepath = urldecode(substr($cookiepaths[1], 0, strlen($cookiepaths[1]) - 1 ));
  28. setcookie($cookiename, $cookievalue, $cookietime, $cookiepath);
  29. }
  30. }
  31. fclose($fp);
  32. }
  33. ?>
코드 복사
  1. //PHP POST 데이터에 대한 세 가지 방법
  2. //PHP에는 데이터를 게시하는 세 가지 방법, 즉 Curl, 소켓, file_get_contents가 있습니다.
  3. /**
  4. * 소켓 버전
  5. * 사용법:
  6. * $post_string = "app=socket&version=beta";
  7. * request_by_socket('facebook.cn','/restServer.php',$post_string) ;
  8. */
  9. 함수 request_by_socket($remote_server, $remote_path, $post_string, $port = 80, $timeout = 30)
  10. {
  11. $socket = fsockopen ($remote_server, $port, $errno, $errstr, $timeout);
  12. if (!$socket) die("$errstr($errno)");
  13. fwrite($socket , " POST $remote_path HTTP/1.0rn");
  14. fwrite($socket, "User-Agent: 소켓 예제rn");
  15. fwrite($socket, "HOST: $remote_serverrn");
  16. fwrite ($ 소켓, "콘텐츠 유형: 애플리케이션/x-www-form-urlencodedrn");
  17. fwrite($socket, "콘텐츠 길이: " . (strlen($post_string) 8) . 'rn'); > fwrite($socket, "수락:*/*rn");
  18. fwrite($socket, "rn");
  19. fwrite($socket, "mypost=$post_stringrn");
  20. fwrite( $socket, "rn");
  21. $header = "";
  22. while ($str = Trim(fgets($socket, 4096))) {
  23. $header .= $str;
  24. }
  25. $data = "";
  26. while (!feof($socket)) {
  27. $data .= fgets($socket, 4096);
  28. }
  29. return $data ;
  30. }
  31. /**
  32. * Curl 버전
  33. * 사용법:
  34. * $post_string = "app=request&version=beta";
  35. * request_by_curl('http://facebook.cn/restServer.php',$post_string ) ;
  36. */
  37. 함수 request_by_curl($remote_server, $post_string)
  38. {
  39. $ch = cur_init() ;
  40. 컬_setopt($ch, CURLOPT_URL, $remote_server);
  41. 컬_setopt($ch, CURLOPT_POSTFIELDS, 'mypost=' . $post_string);
  42. 컬_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  43. 컬_setopt( $ch, CURLOPT_USERAGENT, "Jimmy의 CURL 예제 베타");
  44. $data =curl_exec($ch);
  45. curl_close($ch);
  46. return $data;
  47. }
  48. /**
  49. * 기타 버전
  50. * 사용법:
  51. * $post_string = "app=request&version=beta";
  52. * request_by_other('http://facebook.cn/restServer.php',$post_string ) ;
  53. */
  54. function request_by_other($remote_server, $post_string)
  55. {
  56. $context = array(
  57. 'http' => array(
  58. 'method' => 'POST',
  59. 'header' => 'Content-type: application/x-www-form-urlencoded' .
  60. 'rn'.'User-Agent : Jimmy의 POST 예제 베타' .
  61. 'rn'.'콘텐츠 길이:' . strlen($post_string) 8,
  62. 'content' => 'mypost_string)
  63. );
  64. $stream_context = stream_context_create($context);
  65. $data = file_get_contents($remote_server, false, $stream_context);
  66. return $data;
  67. }
  68. ?>
코드 복사


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!