". $title);
$uri="https://namu.wiki/raw/".(myUrlEncode($title));
// echo $uri; exit;
// $raw= file_get_contents($uri);
if ($log) fwrite($logfile, "\n". $uri);
$raw=get_content($uri);
//echo $raw; exit;
$result=e2d($raw);
if ( strlen ($result)<500) return false;
$title=str_replace('%20',' ',$title);
$result="{{tag>$title}}\n======$title======\n\n$title([[$uri|출처]])$result\n * 출처: 나무위키- $title([[https://creativecommons.org/licenses/by-nc-sa/2.0/kr/|CC BY-NC-SA 2.0 KR]])\n\n"; //페이지 제목 추가.
//echo $result; exit;
return $result;
}
function myUrlEncode($string) {
$entities = array('%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40', '%26', '%3D', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D');
$replacements = array('!', '*', "'", "(", ")", ";", ":", "@", "&", "=", "$", ",", "/", "?", "%", "#", "[", "]");
/* http://php.net/manual/kr/function.urlencode.php
$entities = array('%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D');
$replacements = array('!', '*', "'", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]");*/
return str_replace($entities, $replacements, urlencode($string));
}
function get_content($url) {
$agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)';
$curlsession = curl_init ();
curl_setopt ($curlsession, CURLOPT_URL, $url);
curl_setopt ($curlsession, CURLOPT_HEADER, 0);
curl_setopt ($curlsession, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curlsession, CURLOPT_POST, 0);
curl_setopt ($curlsession, CURLOPT_USERAGENT, $agent);
curl_setopt ($curlsession, CURLOPT_REFERER, "");
curl_setopt ($curlsession, CURLOPT_TIMEOUT, 3);
$buffer = curl_exec ($curlsession);
$cinfo = curl_getinfo($curlsession);
curl_close($curlsession);
if ($cinfo['http_code'] != 200)
{
return "";
}
return $buffer;
}
function fetch_enha($title){
$uri="https://raw.enha.kr/wiki/".str_replace('+', '%20',urlencode($title)); //공백을 %20으로 바꿈.
//$uri="https://raw.enha.kr/wiki/".(str_replace(' ', '%20',$title)); //공백을 %20으로 바꿈.
//echo $uri;
# $uri="http://rigvedawiki.net/r1/wiki.php/".str_replace(' ', '%20',$title)."?action=raw"; //공백을 %20으로 바꿈.
//$title=str_replace('%20','_',$title);
# $snoopy = new Snoopy;
# $snoopy->fetch($uri);
# global $raw;
# $raw=$snoopy->results;
$raw= @file_get_contents($uri);
$result=e2d($raw);
if ( strlen ($result)<500) return "냉무";
$result="{{page>:틀#펌글}}\n\n======$title======\n\n".$result."\n * 출처: 엔하위키미러- ".$title."(CC BY-NC-SA 2.0)\n\n{{tag>엔하위키미러 $title}}\n"; //페이지 제목 추가.
return $result;
}
function e2d($raw) {
/*
패턴에서 \b는 단어를 지시합니다. 단어 "web"만 매치하고,
"webbing"이나 "cobweb" 등의 부분적인 경우에는 매치하지 않습니다.
패턴 구분자 뒤의 "i"는 대소문자를 구별하지 않게 합니다.
The i is to ignore letter cases (this is commonly known - I think)
The s tells the code NOT TO stop searching when it encounters \n (line break) - this is important with multi-line entries for example text from an editor that needs search.
The m tells the code it is a multi-line entry, but importantly allows the use of ^ and $ to work when showing start and end.
http://php.net/manual/en/reference.pcre.pattern.modifiers.php
*/
//단순 삭제
$todel=array("[[각주]]","[[목차]]","[목차]","<:>","<(>","<)>","\r","#blue","#orange","#red","#green");
$text=str_ireplace($todel,"",$raw); // 필요없는 것 삭제...
//단순 치환
$torep=array(
"||"=>"|", //테이블처리
"[[추가바람]]" => "[[:추가바람]]",
"{{{" => "%%",
"}}}" => "%%",
"[[include(틀:스포일러)]]" => "{{page>:틀#누설}}",
"[[include(틀:비하적 내용)]]" => "{{page>:틀#속된 표현}}",
"[[include(틀:폭력요소)]]" => "{{page>:틀#폭력성}}",
"[[include(틀:성적요소)]]" => "{{page>:틀#선정성}}",
"[[include(틀:편중된 관)]]" => "{{page>:틀#편중된 관점}}",
"[[BR]]" => " \\ ",
"[/" => "[",
"[\"/" => "[\"",
"%20" => " ",
"attachment:/" => "https://attachment.namu.wiki/",
"attachment:" => "http://z4.enha.kr/http://rigvedawiki.net/r1/pds"
);
foreach ($torep as $key => $val)
{
$text=str_ireplace($key,$val,$text);
}
$torep=array(
"/\n \* /"=>"\n * ", // 불릿 처리
"/\n \* /"=>"\n * ", // 불릿 처리
"/\n\* /"=>"\n * " // 불릿 처리
);
foreach ($torep as $key => $val)
{
$text=preg_replace($key,$val,$text);
}
$text= preg_replace('/^=====([^=]+)=====/m','뷀뷀$1뷀뷀',$text); //제목처리 h5
$text= preg_replace('/^====([^=]+)====/m','뷀뷀뷀$1뷀뷀뷀',$text); //제목처리 h4
$text= preg_replace('/^===([^=]+)===/m','뷀뷀뷀뷀$1뷀뷀뷀뷀',$text); //제목처리 h3
$text= preg_replace('/^==([^=]+)==/m','뷀뷀뷀뷀뷀$1뷀뷀뷀뷀뷀',$text); //제목처리 h2
$text= preg_replace('/^=([^=]+)=/m','뷀뷀뷀뷀뷀뷀$1뷀뷀뷀뷀뷀뷀',$text); //제목처리 h1
$text= preg_replace('/뷀/','=',$text); //제목처리
$text=preg_replace('/(\n=+.+) /','$1',$text); //제목뒤의 공백제거
$text=preg_replace('/(\n=+) /','$1',$text); //제목엎의 공백제거
for ($i=0;$i<3;$i++) { //우와 지랄맞음.. 이방법밖에 없나?
$text=preg_replace('/==(.*)\*\*(.*)\*\*(.*)==/','==$1$2$3==',$text); //제목의 **제거
$text=preg_replace('/^==(.*)\[\[(.*)==/m','==$1$2==',$text); //제목의 [[ ]]제거
$text=preg_replace('/^==(.*)\]\](.*)==$/m','==$1$2==',$text); //제목의 [[ ]]제거
}
$text=preg_replace('/\n\n( )+([^* ])/',"\n * $2",$text); // 들여쓰기 변환...
$text=preg_replace('/\n( )+([^* ])/',' - $2',$text); // 들여쓰기 변환...
$text= preg_replace("/\n\s\* /im","\n * ",$text); //그림 처리2
$text= preg_replace('/https?:.+(jpg|gif|bmp|png|jpeg)/i','{{$0}}',$text); //그림 처리2
$text= preg_replace('/\??width=[0-9]*/i','',$text); // width 처리
$text= preg_replace('/\??height=[0-9]*/i','',$text); // height 처리
$text= preg_replace('/&{0,1}align=right|left|middle/i','',$text); // align 처리
//구문강조 처리
//$text= preg_replace('/\'\'\'([^\'{3}]+)\'\'\'/','**$1**',$text); //굵게''' 처리
$text= preg_replace("/'''/",'궭',$text); //굵게''' 처리
$text= preg_replace("/궭([^궭]*)궭/",'**$1**',$text); //굵게''' 처리
$text= preg_replace('/\'\'([^\'\']+)\'\'/','**$1**',$text); //기울이기'' 처리
$text= preg_replace('/~~([^~~]+)~~/','$1',$text); // 취소선 처리
$text= preg_replace('/--([^--]+)--/','$1',$text); // 취소선 처리
//$text=preg_replace("~.+a","ㅁ",$text);
//$text=preg_replace("(\=+)","$0=",$text);
//$text=preg_replace("(\=+)","$0=",$text); //제목줄처리.
//링크처리
//도쿠위키는 링크[[]]안의 ""를 무시하기 때문에 건드릴 필요가 없다.
$text= preg_replace('/(\[[^\[|^\*][^\]]+\])([^\]])/','[$1]$2',$text); // 홀대괄호 링크처리
$text= preg_replace('/\[wiki\:/i','[',$text); // [wiki: 는 [로
//$text= preg_replace('/ \["([^\[]+)\]/','[["$1]]',$text); // [" "]를 [[ ]]
$text= preg_replace('/\[\[(https?:[^ "\[]+) ([^\[]+)\]\]/','[[$1|$2]]',$text); // [[xx yy]]
$text= preg_replace('/\[\["(.+)"(.+)\]\]/','[[$1|$2]]',$text); // [["ㅌㅌㅌ" ㅊㅊㅊ ]]
$text= preg_replace('/<[^>]+>/','',$text); // 각종 태그 처리.
$text= preg_replace('/\{\{\|([^\|\}\}]+)\|\}\}/','$1',$text); // 상자
// 지랄맞은 주석처리
$text= preg_replace('/\[\[/','뷀뷀',$text);
$text= preg_replace('/\]\]/','뷈뷈',$text);
$text= preg_replace('/\[\*([^\]]*)\]/','(($1))',$text); // 마침내 주석처리..
$text= preg_replace('/뷀뷀/','[[',$text);
$text= preg_replace('/뷈뷈/',']]',$text);
//youtbe
$text= preg_replace('/\[\[.*youtube[^=]+=(.+)\|([^]]*)\]\]/','{{youtube>$1?640x390}}',$text);
//if ( strlen ($text)<500) $text=null;
return $text;
}
?>