원격 작업 함수 정보
6725 단어 함수
/**
* Enhanced file_get_contents, use curl to fetch remote file
* @param $file
* @author Wilson Zeng
*/
function ex_file_get_contents($file){
//if is url?
if(preg_match('/^[a-zA-z]+:\/\/[^\s]*/i', $file)){//a url
$ch = curl_init($file);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$rs = curl_exec($ch);
curl_close($ch);
return $rs;
}else{
return file_get_contents($file);
}
}
/**
* Enhanced copying file, can copy remote file(use curl)
* @param $url
* @param $destpath
* @author Wilson Zeng
*/
function trans_file($url, $destpath){
if(preg_match('/^[a-zA-z]+:\/\/[^\s]*/i', $url)){//a url
$ch = curl_init($url);
$opts = array(
CURLOPT_RETURNTRANSFER => 1,
);
curl_setopt_array($ch, $opts);
$file_str = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($http_code < 200 || $http_code >= 300 || file_put_contents($destpath, $file_str) <= 0){
return FALSE;
}
}else{//a local file
return copy($url, $destpath);
}
return TRUE;
}
/**
* POST/GET remote url
* @author Wilson Zeng
* @param $url
* @param $timeout [optinal]
* @param $post_data [optional]
* @param $http_code [optional] return http code
* @return RESPONSE
*/
function get_remote_file($url, $timeout = 0, $post_data = NULL, &$http_code = NULL, &$curl_errno = NULL, &$curl_error = NULL){
$ch = curl_init($url);
$opts[CURLOPT_RETURNTRANSFER] = 1;
if($post_data){
$opts[CURLOPT_POST] = 1;
if(is_array($post_data)){
$opts[CURLOPT_POSTFIELDS] = http_build_query($post_data);
}elseif(is_string($post_data)){
$opts[CURLOPT_POSTFIELDS] = $post_data;
}
}
if($timeout > 0){
$opts[CURLOPT_TIMEOUT] = $timeout;
}
curl_setopt_array($ch, $opts);
$rs = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
curl_close($ch);
return $rs;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[개발일지 3월 25일] [공통교육-웹기초] JavaScript 3/3 - 이고잉 강사→ topics2란 변수에 'html', 'css', 'js' 저장 → topics2.length(3) 미만까지 for문 반복 수행 → 실행 결과값을 loop1.html 본문에 출력 → <li>${topics[i]}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.