> 백엔드 개발 > PHP 튜토리얼 > PHP의 컬 캡슐화 class_php 기술 사용 예

PHP의 컬 캡슐화 class_php 기술 사용 예

WBOY
풀어 주다: 2016-05-16 20:32:39
원래의
1113명이 탐색했습니다.

이 글의 예제에서는 PHP 컬 캡슐화 클래스의 두 가지 사용 예를 설명합니다. 이 두 함수를 사용하면 PHP 컬 관련 기능을 매우 편리하게 사용할 수 있습니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.

기능을 사용하기 전에 PHP 컬 모듈(libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll)을 열어야 합니다

PHP 컬 함수 라이브러리를 활성화하는 단계

1) windows/php.ini 파일에서 ;extension=php_curl.dll을 제거합니다. /*php.ini의 경로를 보려면 echo phpinfo()를 사용하세요. 2) php5/libeay32.dll 및 ssleay32.dll을 시스템 디렉터리 windows/
에 복사합니다. 3).아파치를 다시 시작하세요

코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
include_once('curl.class.php');
$aa =new Curl('');
$curlOptions = 배열(
CURLOPT_URL => "http://www.xx.com/addTicket.jsp", //접속 URL
CURLOPT_RETURNTRANSFER => true, //결과를 얻어 문자열로 반환
CURLOPT_REFERER => "ww.ww.ww/zw2",
CURLOPT_HTTPHEADER => array('X-FORWARDED-FOR:139.197.14.19', 'CLIENT-IP:127.0.0.1','Proxy-Client-IP:139.197.14.19','WL-Proxy-Client-IP:139.197 .14.19' ),
CURLOPT_HEADER => 1, //반환 헤더 정보 가져오기
//CURLOPT_SSL_VERIFYPEER => false, //SSL 암호화 지원
CURLOPT_POST => true, //POST 매개변수로 전송
CURLOPT_POSTFIELDS => 'ids=897&Submit=vote', //요청된 POST 매개변수 문자열
CURLOPT_TIMEOUT => $aa->timeout //응답을 기다리는 시간
);
echo $aa->getResponseText($curlOptions);
cul 처리 클래스:

코드 복사 코드는 다음과 같습니다.
클래스 컬
{
공개 $cookieFile;
공개 $timeout = 160;
공용 함수 __construct($dir){
$this->cookieFile = $this->getTemporaryCookieFileName($dir);
}
/**
* CURL 매개변수를 설정하고 요청을 보내 응답 콘텐츠를 가져옵니다.
* @액세스 비공개
* @param $curlOptions 배열 컬 설정 매개변수 배열
* @return string|false 접속에 성공하면 획득한 정보를 문자열 형식으로 반환하고, 그렇지 않으면 false
*/
공용 함수 getResponseText($curlOptions) {
/* CURLOPT_RETURNTRANSFER를 true로 설정 */
if(!isset($curlOptions[CURLOPT_RETURNTRANSFER]) || $curlOptions[CURLOPT_RETURNTRANSFER] == false) {
$curlOptions[CURLOPT_RETURNTRANSFER] = true;
}
/* 컬 모듈 초기화 */
$curl = 컬_init();
/* 컬 옵션 설정 */
컬_setopt_array($curl, $curlOptions);
/* 요청 보내기 및 응답 정보 받기 */
$responseText = '';
시도해보세요 {
$responseText = 컬_exec($curl);
if(($errno = 컬_errno($curl)) != CURLM_OK) {
$errmsg = 컬_오류($curl);
새로운 예외 발생($errmsg, $errno);
}
} 잡기(예외 $e) {
//ExceptionDisposeFunction($e);
//print_r($e);
$responseText = 거짓;
}
/* 컬 모듈 닫기 */
컬_닫기($curl);
/* 결과 반환 */
$responseText를 반환합니다.
}
/**
* 유니코드 문자열(u0000)을 utf-8 문자열로 변환, 도구 기능
* @액세스 비공개
* @static
* @param $string string 유니코드 문자열
* @return 문자열 utf-8 문자열
*/
공용 함수 unicodeToUtf8($string) {
$string = str_replace('u', '', strtolower($string));
$length = strlen($string) / 4;
$stringResult = '';
for($i = 0; $i $charUnicodeHex = substr($string, $i * 4, 4);
$unicodeCode = hexdec($charUnicodeHex);
$utf8Code = '';
if($unicodeCode < 128) {
$utf8Code = chr($unicodeCode);
} else if($unicodeCode < 2048) {
$utf8Code .= chr(192 (($unicodeCode - ($unicodeCode % 64)) / 64));
$utf8Code .= chr(128 ($unicodeCode % 64));
} 그 밖의 {
$utf8Code .= chr(224 (($unicodeCode - ($unicodeCode % 4096)) / 4096));
$utf8Code .= chr(128 ((($unicodeCode % 4096) - ($unicodeCode % 64)) / 64));
$utf8Code .= chr(128 ($unicodeCode % 64));
}
$stringResult .= $utf8Code;
}
$stringResult를 반환합니다.
}
개인 함수 getTemporaryCookieFileName($dir='.') {
return (str_replace("", '/', tempnam($dir, 'tmp')));
}
}

예시 2

코드 복사 코드는 다음과 같습니다.
//컬类
클래스 컬
{
    함수 컬(){
        true를 반환합니다.
    }
    
    함수 실행($method, $url, $fields='', $userAgent='', $httpHeaders='', $username='', $password=''){
        $ch = Curl::create();
        if(false === $ch){
            false를 반환합니다.
        }
        if(is_string($url) && strlen($url)){
            $ret = 컬_setopt($ch, CURLOPT_URL, $url);
        }그밖에{
            false를 반환합니다.
        }
        //是否显示头부信息
        컬_setopt($ch, CURLOPT_HEADER, false);
        //
        컬_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        if($username != ''){
            cur_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
        }
        $method = strtolower($method);
        if('post' == $method){
            컬_setopt($ch, CURLOPT_POST, true);
            if(is_array($fields)){
                $sets = 배열();
                foreach($fields AS $key => $val){
                    $sets[] = $키 . '=' . urlencode($val);
                }
                $fields = implode('&',$sets);
            }
            컬_setopt($ch, CURLOPT_POSTFIELDS, $fields);
        }else if('put' == $method){
            컬_setopt($ch, CURLOPT_PUT, true);
        }
        //curl_setopt($ch, CURLOPT_PROGRESS, true);
        //curl_setopt($ch, CURLOPT_VERBOSE, true);
        //curl_setopt($ch, CURLOPT_MUTE, false);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);//设置curl超时秒数
        if(strlen($userAgent)){
            컬_setopt($ch, CURLOPT_USERAGENT, $userAgent);
        }
        if(is_array($httpHeaders)){
            컬_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders);
        }
        $ret = 컬_exec($ch);
        if(curl_errno($ch)){
            컬_닫기($ch);
            반환 배열(curl_error($ch), 컬_errno($ch));
        }그밖에{
            컬_닫기($ch);
            if(!is_string($ret) || !strlen($ret)){
                false를 반환합니다.
            }
            $ret 반환;
        }
    }
    
    함수 포스트($url, $fields, $userAgent = '', $httpHeaders = '', $username = '', $password = ''){
        $ret = Curl::execute('POST', $url, $fields, $userAgent, $httpHeaders, $username, $password);
        if(false === $ret){
            false를 반환합니다.
        }
        if(is_array($ret)){
            false를 반환합니다.
        }
        $ret 반환;
    }
    
    함수 get($url, $userAgent = '', $httpHeaders = '', $username = '', $password = ''){
        $ret = Curl::execute('GET', $url, '', $userAgent, $httpHeaders, $username, $password);
        if(false === $ret){
            false를 반환합니다.
        }
        if(is_array($ret)){
            false를 반환합니다.
        }
        $ret 반환;
    }
    
    함수 생성(){
        $ch = null;
        if(!function_exists('curl_init')){
            false를 반환합니다.
        }
        $ch = 컬_init();
        if(!is_resource($ch)){
            false를 반환합니다.
        }
        $ch 반환;
    }
}
?>
용법

사용 방법 받기:

复제대码 代码如下:
$curl = new Curl();
$curl->get('http://www.jb51.net/');

게시물 사용법 :
复제대码 代码如下:
$curl = new Curl();
$curl->get('http://www.jb51.net/', 'p=1&time=0′);

希望本文所述对大家的PHP程序设计有所帮助。

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