download this file: func.parse.php view text/plain: func.parse.php file encoding: EUC-KR [goback]
<?php
##
## this file name is 'func.parse.php'
##
## parse functions (string replacing)
##
## [author]
## - Chilbong Kim<san2(at)linuxchannel.net>
##
## [changes]
## - 2003.07.11 : check is_array()
## - 2003.06.18 : add array2str(), str2array()
## - 2003.04.17 : add
## - 2003.03.06 : new build
##
## [references]
##
## [usage]
##
## [example]
##
## fix ugly hagul string
##
function ugly_han($str, $html=0)
{
if(!$html) return preg_replace('/&(#|amp)/','&\\1',$str);
else return str_replace('&','&',$str);
}
## check hangul
##
function is_han($char)
{
if(ord($char) & 0x80) return 1;
}
## is alias
##
function is_hangul($char)
{
return is_han($char);
}
## is alias
##
function ishangul($char)
{
return is_han($char);
}
## ¾ËÆÄºªÀÎÁö ±×¸®°í ´ë¹®ÀÚ(0x41 - 0x5a)ÀÎÁö ¼Ò¹®ÀÚ(0x61 - 0x7a)ÀÎÁö
## °Ë»çÇÏ´Â ÇÔ¼ö
##
## ord - ¹®ÀÚÀÇ ASCII °ªÀ» °¡Á®¿È
## http://www.php.net/manual/function.ord.php
##
function is_alpha($char)
{
$char = ord($char);
if($char >= 0x61 && $char <= 0x7a) return 1;
if($char >= 0x41 && $char <= 0x5a) return 2;
}
## is alias
##
function isalpha($char)
{
return is_alpha($char);
}
## simple URL auto link(is function name URI (not 'URL')
##
## reference : JSBOARD
##
function uri_link($str, $target='_self')
{
$protocol = 'http|https|ftp|telnet|news|mms';
if(!preg_match(";($protocol)://.+;",$str)) return $str;
$from = array(
';&(quot|gt|lt);',
";<(A|IMG)\s+(HREF|SRC)=(['\"]*)($protocol)(://[^>]+)>;i",
//";($protocol)://[\w\-]+\.[\w:\;&#@=~%?/.,+\-\[\]]+;i", // \w == [a-zA-Z0-9_]
";($protocol)://[\xA1-\xFEa-z0-9:_\-]+\.".
'[\xA1-\xFEa-z0-9,:\;&#=_~%\[\]?\/.,+\*\-]+[.]*[\/a-z0-9\[\]]|=[\xA1-\xFE]+;i',
';(<A HREF=[^>]+>)\s*<A HREF=[^>]+>;i', // case of user using A Tag, force to \\1
';</A>\s*</A\s*>;i',
";($protocol)__;i",
';!(quot|gt|lt);'
);
$to = array(
'!\\1',
'<\\1 \\2=\\3\\4__\\5>',
"<A HREF='\\0' TARGET='$target'>\\0</A>",
'\\1',
'</A>',
'\\1',
'&\\1'
);
return preg_replace($from,$to,$str);
}
## is alias
##
function url_link($str, $target='_self')
{
return uri_link($str,$target);
}
function email_link($str, $at='_at_')
{
return preg_replace(';([\w\-]+)@([\w.\-]+)\.+([\w.\-]+);',
"<A HREF='mailto:\\1${at}\\2.\\3'>\\0</A>",$str);
}
function array2str($array)
{
$str = serialize($array);
return str_replace('";',"\";\n",$str);
}
function str2array($str)
{
$str = str_replace("\";\n",'";',stripslashes($str));
$array = unserialize($str);
return $array ? $array : array();
}
## array change
##
## araguments :
## $array array
## $keya string, from string, $array[$keya]
## $keyb string, to string, $array[$keyb]
##
function array_change($array, $keya, $keyb)
{
if(!is_array($array)) return;
$orig['a'] = $array[$keya];
$orig['b'] = $array[$keyb];
unset($array[$keya]);
unset($array[$keya]);
$array[$keya] = $orig['b'];
$array[$keyb] = $orig['a'];
unset($orig);
return $array;
}
?>