- global $script,$vars,$interwiki,$WikiName,$InterWikiName;
- global $_title_invalidiwn,$_msg_invalidiwn;
-
- $retvars = array();
-
- if (!preg_match("/^$InterWikiName$/",$vars['page'],$match)) {
- $retvars['msg'] = $_title_invalidiwn;
- $retvars['body'] = str_replace('$1',htmlspecialchars($name),str_replace('$2',"<a href=\"$script?InterWikiName\">InterWikiName</a>",$_msg_invalidiwn));
- return $retvars;
- }
- $name = $match[2];
- $param = $match[3];
-
- $url = $opt = '';
- $source = get_source($interwiki);
- foreach($source as $line) {
- // <1 url --------------------------------------------------------------> <2 name> <3 opt >
- if (preg_match('/\[((?:https?|ftp|news)(?:\:\/\/[[:alnum:]\+\$\;\?\.%,!#~\*\/\:@&=_\-]+))\s([^\]]+)\]\s?([^\s]*)/',$line,$match) and $match[2] == $name) {
- $url = $match[1];
- $opt = $match[3];
- break;
- }
- }
-
- if ($url == '') {
- $retvars['msg'] = $_title_invalidiwn;
- $retvars['body'] = str_replace('$1',htmlspecialchars($name),str_replace('$2',"<a href=\"$script?InterWikiName\">InterWikiName</a>",$_msg_invalidiwn));
- return $retvars;
- }
-
- $b_mb = function_exists('mb_convert_encoding');
-
- // ʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°
- if ($opt == 'yw')
- {
- // YukiWiki·Ï
- if (!preg_match("/$WikiName/",$param))
- $param = $b_mb ? '[['.mb_convert_encoding($param,'SJIS',SOURCE_ENCODING).']]' : FALSE;
- }
- else if ($opt == 'moin')
- {
- // moin·Ï
- $param = str_replace('%','_',rawurlencode($param));
- }
- else if ($opt == '' or $opt == 'std')
- {
- // ÆâÉôʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Î¤Þ¤ÞURL¥¨¥ó¥³¡¼¥É
- $param = rawurlencode($param);
- }
- else if ($opt == 'asis' or $opt == 'raw')
- {
- // URL¥¨¥ó¥³¡¼¥É¤·¤Ê¤¤
-// $match[3] = $match[3];
- }
- else if ($opt != '')
- {
- // ¥¨¥¤¥ê¥¢¥¹¤ÎÊÑ´¹
- if ($opt == 'sjis')
- $opt = 'SJIS';
- else if ($opt == 'euc')
- $opt = 'EUC-JP';
- else if ($opt == 'utf8')
- $opt = 'UTF-8';