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;(#|amp)/','&\\1',$str);                                                     
  else return 
str_replace('&amp;','&',$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;
}

?>