* 파일을 받은 후 압출을 해제하세요.
* DB table 생성 sql 파일이 포함되어 있습니다.
* SQL QUERY 는 자신이 사용하기에 알맞게 수정하세요.
1. 먼저 KISA 국적 검색 API를 이용한다.
1) KISA OPEN API 사이트에서 key를 발급해야한다. (무료)
2) 키를 발급한 후 사이트에서 등록(인증)을 하면 api 이용 가능
3) https://xn--c79as89aj0e29b77z.xn--3e0b707e/kor/openkey/keyCre.do
// kisa ipcheck
function kisa_ipcheck_api(){
$key = "2021072917030408687745";
$dataFormat = "json";
$url ="http://whois.kisa.or.kr/openapi/ipascc.jsp?query=".$_SERVER['REMOTE_ADDR']."&key=".$key."&answer=".$dataFormat."";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_NOSIGNAL, 1);
//curl_setopt($ch,CURLOPT_POST, 1); //Method를 POST로 지정.. 이 라인이 아예 없으면 GET
$data = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
curl_close($ch);
$decodeJsonData = json_decode($data, true);
return $decodeJsonData['whois']['countryCode'];
}
$str_nation = strtolower(kisa_ipcheck_api());
2. RapidAPI의 를 이용하여 Google Translate를 이용한다.
1) 번역은 RapidAPI를 이용한다 (기본 무료)
2) DB에 페이지명, 분류를 이용하여 번역한 이력이 있는지 체크한다.
3) DB에 번역 이력이 있다면 해당 값을 반환, 번역 이력이 없다면 번역 후 해당 값을 반환
4) https://rapidapi.com/googlecloud/api/google-translate1
// google tanslate
function translate_text($stx="한국",$tolang="en",$fromlang="ko"){
$curl = curl_init();
$rapidapi_host = "google-translate1.p.rapidapi.com";
//$rapidapi_key = "eb3ffd85femshc1e8632b6e10718p14f838jsne6e30537b45d";
$rapidapi_key = "726a5a3911mshb931c98247ee555p13ea7ajsn80a6a5d068e5";
$str_postfield = "q=".$stx;
$str_postfield .= "&target=".$tolang;
$str_postfield .= "&source=".$fromlang;
curl_setopt_array($curl, [
CURLOPT_URL => "https://google-translate1.p.rapidapi.com/language/translate/v2",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $str_postfield,
CURLOPT_HTTPHEADER => [
"accept-encoding: application/gzip",
"content-type: application/x-www-form-urlencoded",
"x-rapidapi-host: ".$rapidapi_host,
"x-rapidapi-key: ".$rapidapi_key
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
$info_result = json_decode($response,true);
curl_close($curl);
if ($err) {
//echo "cURL Error #:" . $err;
} else {
return $info_result;
}
}
// DB 이력 체크
function chk_isdb_trans($stx,$cate_p,$cate1,$cate2="",$lang='en'){
global $DB;
if($stx){
$sql = "select * from t_translate where cate_p='{$cate_p}' and cate1='{$cate1}' and cate2='{$cate2}' and lang='{$lang}' ";
$row = $DB->fetch_assoc($sql);
if($row['idx']){
return $row['stx'];
}else{
if($lang=="en"){
$result_trans1 = translate_text($stx,"en","ko");
}else{
$result_trans1 = translate_text($stx,"ko","en");
}
$stx2 = $result_trans1["data"]["translations"][0]["translatedText"];
$t_datetime = date("Y-m-d H:i:s");
$sql = "insert into t_translate set cate_p='{$cate_p}', cate1='{$cate1}', cate2='{$cate2}', lang='{$lang}', stx='{$stx2}', t_datetime='{$t_datetime}' ";
$DB->db_query($sql);
return $stx2;
}
}else{
return "";
}
}
3. 위의 함수들을 이용하여 원하는 값을 얻는다.
// 실제 사용
$str_nation = strtolower(kisa_ipcheck_api());
if($str_nation=="kr"){
$stx1 = "비밀번호를 재설정하세요.";
}else{
$stx1 = chk_isdb_trans("비밀번호를 재설정하세요.",$cate_p,"txt1","","en");
}
'웹 개발 이야기 > php' 카테고리의 다른 글
[PHP] 암호화 복호화 (0) | 2023.07.04 |
---|---|
[PHP] 하나은행 환율 api 이용한 달러 환율 데이터 산출 (0) | 2023.06.15 |
[PHP] php.ini - file upload 용량 설정하기 (0) | 2023.06.15 |
[PHP] php로 node.js 처럼 소켓 여는 법 (0) | 2023.06.15 |
[PHP] php + redis > session 관리로 대폭적인 성능향상 (0) | 2023.06.14 |
댓글