/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* Librarie de functii comune ACTIVESOFT
*
* Versiune de PHP: 4 sau 5
*
* @category Utils
* @package AS_UTILS
* @copyright 2006-2007 ACTIVESOFT SRL
* @version 1.4
*/
/**
* Functie care transforma o data intr-un string afisabil, conform unor cazuri (7)
*
* @author ACTIVESOFT
* @param String $date
* @param Integer $caz
* @param Integer $l
* @return String
*/
function date_to_str( $date = '', $caz = 3, $l = 1 )
{
$luna_str[1] = "Ianuarie";
$luna_str[2] = "Februarie";
$luna_str[3] = "Martie";
$luna_str[4] = "Aprilie";
$luna_str[5] = "Mai";
$luna_str[6] = "Iunie";
$luna_str[7] = "Iulie";
$luna_str[8] = "August";
$luna_str[9] = "Septembrie";
$luna_str[10] = "Octombrie";
$luna_str[11] = "Noiembrie";
$luna_str[12] = "Decembrie";
$ziua_str[0] = "Duminica";
$ziua_str[1] = "Luni";
$ziua_str[2] = "Marti";
$ziua_str[3] = "Miercuri";
$ziua_str[4] = "Joi";
$ziua_str[5] = "Vineri";
$ziua_str[6] = "Sambata";
if ( trim( $date ) == '' )
{
$date = date( "Y-m-d H:i:s" );
}
$arr = split( "[- :.+]", $date );
$an = isset( $arr[ 0 ] ) ? (int) $arr[ 0 ] : 0;
$luna = isset( $arr[ 1 ] ) ? ( (int) $arr[ 1 ] < 10 ? '0' . (int) $arr[ 1 ] : (int) $arr[ 1 ] ) : 0;
$zi = isset( $arr[ 2 ] ) ? ( (int) $arr[ 2 ] < 10 ? '0' . (int) $arr[ 2 ] : (int) $arr[ 2 ] ) : 0;
$ore = isset( $arr[ 3 ] ) ? ( (int) $arr[ 3 ] < 10 ? '0' . (int) $arr[ 3 ] : (int) $arr[ 3 ] ) : 0;
$minute = isset( $arr[ 4 ] ) ? ( (int) $arr[ 4 ] < 10 ? '0' . (int) $arr[ 4 ] : (int) $arr[ 4 ] ) : 0;
$secunde = isset( $arr[ 5 ] ) ? ( (int) $arr[ 5 ] < 10 ? '0' . (int) $arr[ 5 ] : (int) $arr[ 5 ] ) : 0;
$date = $an . '-' . $luna . '-' . $zi . ' ' . $ore . ':' . $minute . ':' . $secunde;
switch( $caz )
{
case 1:
switch ( $l )
{
case 1:
$nr_ziua = date( "w", strtotime( $date ) );
$res = ( isset( $ziua_str [ $nr_ziua ] ) ? $ziua_str[ $nr_ziua ] : '' ) . ", $zi " . ( isset( $luna_str[ (int) $luna ] ) ? $luna_str[ (int) $luna ] : '' ) . " $an, ora $ore:$minute";
break;
case 2:
$res = date( "l, F jS Y, h:i A", strtotime( $date ) );
break;
}
break;
case 2:{
switch( $l )
{
case 1:
$nr_ziua = date( "w", strtotime( $date ) );
$res = ( isset( $ziua_str[ $nr_ziua ]) ? $ziua_str[ $nr_ziua ] : '' ) . ", $zi " . ( isset( $luna_str[ (int) $luna ] ) ? $luna_str[ (int) $luna ] : '' ) . " $an";
break;
case 2:
$res = date( "l, F jS Y", strtotime( $date ) );
break;
}
break;
}
case 3:{
switch($l)
{
case 1:
$res = $zi . ' ' . ( isset( $luna_str[ (int) $luna ] ) ? $luna_str[ (int) $luna ] : '' ) . ' ' . $an;
break;
case 2:
$res = date( "F jS Y", strtotime( $date ) );
break;
}
break;
}
case 4:
switch( $l )
{
case 1:
$res = date( "d.m.Y", strtotime( $date ) );
break;
case 2:
$res = date( "m.d.Y", strtotime( $date ) );
break;
}
break;
case 5:{
switch( $l )
{
case 1:
$nr_ziua = date( "w", strtotime( $date ) );
$res = (isset( $ziua_str[ $nr_ziua ] ) ? $ziua_str[ $nr_ziua ] : '' );
break;
case 2:
$res = date( "l", strtotime( $date ) );
break;
}
break;
}
case 6:{
switch( $l )
{
case 1:
$res = date( "d.m.Y $ore:$minute", strtotime( $date ) );
break;
case 2:
$res=date( "m.d.Y h:i A", strtotime( $date ) );
break;
}
break;
}
case 7:{
switch( $l )
{
case 1:
$res = "$ore:$minute";
break;
case 2:
$res = date( "h:i A", strtotime( $date ) );
break;
}
break;
}
case 8:
switch( $l )
{
case 1:
$res = date( "d-m-Y $ore:$minute", strtotime( $date ) );
break;
case 2:
$res = date( "m-d-Y h:i:s A", strtotime( $date ) );
break;
}
break;
case 9:
switch( $l ){
case 1:
$res = $zi . ' ' . ( isset( $luna_str[ (int) $luna ] ) ? $luna_str[ (int) $luna ] : '' );
break;
case 2:
$res = date( "F jS Y", strtotime( $date ) );
break;
}
break;
case 10:
switch( $l ){
case 1:
$res = $ziua_str[ date( "w", strtotime( $date ) ) ];
break;
case 2:
$res = date( "F jS Y", strtotime( $date ) );
break;
}
break;
}
return $res;
}
/**
* Functie care detecteaza, cat mai precis, ip-ul real al utilizatorului
* Functia intoarce prima valoare valida dintre urmatoarele:
* HTTP_CLIENT_IP
* HTTP_X_FORWARDED_FOR
* REMOTE_ADDR (cu getenv)
* REMOTE_ADDR (din $_SERVER)
* "unknown" (in cazul in care niciuna dintre cele de mai sus nu este valida)
*
* @author ACTIVESOFT
* @return String
*/
function get_ip() {
if ( getenv( "HTTP_CLIENT_IP" ) && strcasecmp( getenv( "HTTP_CLIENT_IP" ), "unknown" ) ){
$ip = getenv("HTTP_CLIENT_IP");
}else{
if ( getenv( "HTTP_X_FORWARDED_FOR" ) && strcasecmp( getenv( "HTTP_X_FORWARDED_FOR" ), "unknown" ) ) {
$ip = getenv("HTTP_X_FORWARDED_FOR");
}else{
if ( getenv( "REMOTE_ADDR" ) && strcasecmp( getenv( "REMOTE_ADDR" ), "unknown" ) ) {
$ip = getenv("REMOTE_ADDR");
}else{
if ( isset( $_SERVER[ 'REMOTE_ADDR' ] ) && $_SERVER[ 'REMOTE_ADDR' ] && strcasecmp ($_SERVER[ 'REMOTE_ADDR' ], "unknown" ) ) {
$ip = $_SERVER['REMOTE_ADDR'];
}else{
$ip = "unknown";
}
}
}
}
return $ip;
}
/**
* Functie care formateaza o expresie intr-un string capabil de a fi introdus
* intr-un url
*
* @author Adrian Popa
* @param String $string
* @param String $separator
* @return String
*/
function link_style( $string, $separator = "_" )
{
$content = str_replace("?","A", $string);
$content = str_replace("?","a" , $content);
$content = str_replace("?","A", $content);
$content = str_replace("?","a", $content);
$content = str_replace("?","I", $content);
$content = str_replace("?","i", $content);
$content = str_replace("?","S", $content);
$content = str_replace("?","s", $content);
$content = str_replace("?","T", $content);
$content = str_replace("?","t", $content);
$content = str_replace("?","a", $content);
$content = str_replace("/","-", $content);
$content = str_replace("?", "t", $content);
$content = str_replace("?", "A", $content);
$content = str_replace("?", "S", $content);
$content = str_replace("?", "s", $content);
$content = str_replace("?", "T", $content);
$content = str_replace("?", " ", $content);
$content = str_replace("=",",", $content);
$content = str_replace("+"," ", $content);
$content = str_replace(" "," ",$content);
$content = str_replace(" ","",$content);
$content = trim($content);
$content = ereg_replace("[^[:alnum:]+]","$separator",$content);
$content = eregi_replace("([".$separator."]+)",$separator,$content);
return $content;
}
/**
* Functie care intoarce extensia unui fisier
*
* @author Paul Cocei
* @param String $filename
* @return String
*/
function get_extension($filename)
{
$bucati = explode(".", $filename);
return strtolower($bucati[count($bucati) - 1]);
}
/**
* Functie care verifica validitatea unei adrese de e-mail
* Reguli:
*