View file znwap/functions.php

File size: 14.41Kb
<?php
// функция маштабирует изображение
function resizeimage($image, $max_width, $max_height) {
    preg_match("/\.(\w*)$/", $image, $m);
    $act=strtolower($m[1]);
	if($act=="jpg") {
		$size = GetImageSize($image);
		$width = $size[0];
		$height = $size[1];

		$x_ratio = $max_width / $width;
		$y_ratio = $max_height / $height;

		if ( ($width <= $max_width) && ($height <= $max_height) ) {
		  $tn_width = $width;
		  $tn_height = $height;
		}
		else if (($x_ratio * $height) < $max_height) {
		  $tn_height = ceil($x_ratio * $height);
		  $tn_width = $max_width;
		}
		else {
		  $tn_width = ceil($y_ratio * $width);
		  $tn_height = $max_height;
		}

		$src = ImageCreateFromJpeg($image);
		$dst = ImageCreateTrueColor($tn_width,$tn_height);
		ImageCopyResized($dst, $src, 0, 0, 0, 0,
		    $tn_width,$tn_height,$width,$height);
		ImageJpeg ($dst, $image);
		ImageDestroy($src);
		ImageDestroy($dst);
	}


	if($act=="gif") {
		$size = GetImageSize($image);
		$width = $size[0];
		$height = $size[1];

		$x_ratio = $max_width / $width;
		$y_ratio = $max_height / $height;

		if ( ($width <= $max_width) && ($height <= $max_height) ) {
		  $tn_width = $width;
		  $tn_height = $height;
		}
		else if (($x_ratio * $height) < $max_height) {
		  $tn_height = ceil($x_ratio * $height);
		  $tn_width = $max_width;
		}
		else {
		  $tn_width = ceil($y_ratio * $width);
		  $tn_height = $max_height;
		}

		$src = ImageCreateFromGif($image);
		$dst = ImageCreateTrueColor($tn_width,$tn_height);
		ImageCopyResized($dst, $src, 0, 0, 0, 0,
		    $tn_width,$tn_height,$width,$height);
		ImageGif ($dst, $image);
		ImageDestroy($src);
		ImageDestroy($dst);
	}

	if($act=="png") {
		$size = GetImageSize($image);
		$width = $size[0];
		$height = $size[1];

		$x_ratio = $max_width / $width;
		$y_ratio = $max_height / $height;

		if ( ($width <= $max_width) && ($height <= $max_height) ) {
		  $tn_width = $width;
		  $tn_height = $height;
		}
		else if (($x_ratio * $height) < $max_height) {
		  $tn_height = ceil($x_ratio * $height);
		  $tn_width = $max_width;
		}
		else {
		  $tn_width = ceil($y_ratio * $width);
		  $tn_height = $max_height;
		}

		$src = ImageCreateFromPng($image);
		$dst = ImageCreateTrueColor($tn_width,$tn_height);
		ImageCopyResized($dst, $src, 0, 0, 0, 0,
		    $tn_width,$tn_height,$width,$height);
		ImagePng ($dst, $image);
		ImageDestroy($src);
		ImageDestroy($dst);
	}
}
// функция перекодирует из utf-8 в win-1251
function utf8win1251($s){
$out="";$c1="";$byte2=false;
for ($c=0;$c< strlen($s);$c++){
$i=ord($s[$c]);
if ($i<=127) $out.=$s[$c];
if ($byte2){
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025) $out_i=168; else
if ($new_i==1105) $out_i=184; else $out_i=$new_i-848;
$out.=chr($out_i);
$byte2=false;}
if (($i>>5)==6) {$c1=$i;$byte2=true;}
}
return $out;
}

// функция удаляет опасные символы
function delhtml($str) {
	return mysql_real_escape_string(htmlspecialchars($str, ENT_QUOTES, 'UTF-8'));
}

// Функция выводит набор симводов заданного размера
function randstr($length = 8) {
$ret="";
$a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
for($i=0; $i<$length; $i++) $ret .= substr($a, rand(0, strlen($a)-1), 1);
return $ret;
}

// функция подставляет смайлы
function insertsmiles($mes) {
	global $workdir;
	$dir=opendir("smiles");
	while ($file=readdir($dir)) {
		if (preg_match("/\.gif$/", $file)) {
			$s=str_replace(".gif","",$file);
			$mes=str_replace(":$s","<img src=\"$workdir/smiles/$file\" alt=\"s\"/>", $mes);
		}
	}
	closedir($dir);
	return $mes;
}



function CheckCanGzip(){
    if (headers_sent()){
        return 0;
    }
    if (strpos(@$_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) return "x-gzip";
    if (strpos(@$_SERVER['HTTP_ACCEPT_ENCODING'],'gzip') !== false) return "gzip";
    return 0;
}


function GzDocOut($Contents, $level=1){
    $ENCODING = CheckCanGzip();
    if ($ENCODING){
        header("Content-Encoding: $ENCODING");
        print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
        $Size = strlen($Contents);
        $Crc = crc32($Contents);
        $Contents = gzcompress($Contents,$level);
        $Contents = substr($Contents, 0, strlen($Contents) - 4);
        print $Contents;
        print pack('V',$Crc);
        print pack('V',$Size);
        exit;
    }else{
        print $Contents;
        exit;
    }
}



function checklocalurl($url) {
	$domain=$_SERVER['HTTP_HOST'];
	if (preg_match("/^mailto\:.*/i", $url)) {
		return false;
	}
	if (!preg_match("/^http\:\/\/.*/i", $url)) {
		return true;
	} else {
		preg_match("/^http\:\/\/([^\/]*)\//", $url, $m);
		if (!isset($m[1])) {return false;}
		if ($m[1]==$domain) {return true;} else {return false;}
	}
}

function insertsid1($s) {
	$sid=session_id();
   	$url=$s[1];
   	if ($url=='op:fileselect') {return $s[0];}
   	if ($sid) {
	   	if (checklocalurl($url)) {
	    	if (strstr($url, '?')) {
	    		$url.="&amp;sid=$sid";
	    	} else {
	    		$url.="?sid=$sid";
	    	}
	   	}
   	}
   	$res=str_replace($s[1], $url, $s[0]);
   	return $res;
}
function insertsid2($s) {
	$sid=session_id();
	$res=$s[0];
	if ($sid) {$res.="\n<input type=\"hidden\" name=\"sid\" value=\"$sid\"/>\n";}
	return $res;
}
function insertsid3($s) {
	$sid=session_id();
	$res=$s[0];
	if ($sid) {$res.="\n<postfield name=\"sid\" value=\"$sid\"/>\n";}
	return $res;
}



function getbl($usen=true) {
	$bl="";
	// порядковый номер анкеты
	if (isset($_REQUEST['n'])&& $usen) {$bl.="&amp;n=$_REQUEST[n]";}
	// пол
	if (isset($_REQUEST['s'])) {$bl.="&amp;s=$_REQUEST[s]";}
	// возраст
	if (isset($_REQUEST['v'])) {$bl.="&amp;v=$_REQUEST[v]";}
	// ориентация
	if (isset($_REQUEST['so'])) {$bl.="&amp;so=$_REQUEST[so]";}
	// город
	if (isset($_REQUEST['region'])) {$bl.="&amp;region=$_REQUEST[region]";}
	// только online
	if (isset($_REQUEST['on'])) {$bl.="&amp;on=1";}
	// только с фото
	if (isset($_REQUEST['of'])) {$bl.="&amp;of=1";}
    return $bl;
}

function getantirep() {
	$code=randstr(5);
	mysql_query("INSERT INTO zn_antirep VALUES('$code', CURRENT_TIMESTAMP())");
	return "<input type=\"hidden\" name=\"repcode\" value=\"$code\"/>";
}

function checkantirep() {
	mysql_query("DELETE FROM zn_antirep WHERE lastdate < CURRENT_TIMESTAMP()-INTERVAL 30 MINUTE");
    if (isset($_POST['repcode'])) {
    	$code=delhtml($_POST['repcode']);
    } else {
    	return false;
    }
    $res=mysql_query("SELECT * FROM zn_antirep WHERE repcode='$code'");
    mysql_query("DELETE FROM zn_antirep WHERE repcode='$code'");
    if (mysql_num_rows($res)>0) {return true;} else {return false;}
}


function sendactmail($login, $pass, $email, $reg=false) {
	global $backlink, $workdir, $adminemail;
	$code=randstr(20);
	$l="http://$_SERVER[HTTP_HOST]$workdir/?mode=regemail&rlogin=".urlencode($login)."&code=$code";
    mysql_query("DELETE FROM zn_actmail WHERE login='$login'");
    mysql_query("INSERT INTO zn_actmail VALUES ('$login', '$code')");
    $mailmes="";
    if ($reg)  {
	    $mailmes.="Привет, $login! Ты успешно зарегистрирован на сайте $backlink\r\n\r\n";
		$mailmes.="Твой nick: $login\r\n";
		$mailmes.="Пароль: $pass\r\n\r\n";
		$mailmes.="Для быстрого входа сделай закладку с таким адресом:\r\n";
		$mailmes.="http://$_SERVER[HTTP_HOST]$workdir/?mode=menu&login=$login&pass=$pass\r\n";
	} else {
		$mailmes.="Привет, $login!\r\n";
	}

	$mailmes.="Для подтверждения email перейди по ссылке: $l\r\n";
	$mailmes.="\r\n\r\nВнимание! Это письмо сгенерировано автоматически. Не нужно отвечать на него!\r\n";

	$mailmes=utf8win1251($mailmes);
	$headers = 'Content-type: text/plain; charset="windows-1251"' . "\r\n";
	$headers .= "From: $backlink <$adminemail>" . "\r\n";
	@mail($email, $backlink, $mailmes, $headers);
}

function checkactmail($login, $code) {
	$res=mysql_query("SELECT * FROM zn_actmail WHERE login='$login' AND code='$code'");
	if (mysql_num_rows($res)!=0) {
		mysql_query("UPDATE zn_anket SET emailactive='1' WHERE login='$login'");
		return true;
	} else {
		return false;
	}
}


function utftolower($str) {
	$str=str_replace("А", "а", $str);
	$str=str_replace("Б", "б", $str);
	$str=str_replace("В", "в", $str);
	$str=str_replace("Г", "г", $str);
	$str=str_replace("Д", "д", $str);
	$str=str_replace("Е", "е", $str);
	$str=str_replace("Ё", "ё", $str);
	$str=str_replace("Ж", "ж", $str);
	$str=str_replace("З", "з", $str);
	$str=str_replace("И", "и", $str);
	$str=str_replace("Й", "й", $str);
	$str=str_replace("К", "к", $str);
	$str=str_replace("Л", "л", $str);
	$str=str_replace("М", "м", $str);
	$str=str_replace("Н", "н", $str);
	$str=str_replace("О", "о", $str);
	$str=str_replace("П", "п", $str);
	$str=str_replace("Р", "р", $str);
	$str=str_replace("С", "с", $str);
	$str=str_replace("Т", "т", $str);
	$str=str_replace("У", "у", $str);
	$str=str_replace("Ф", "ф", $str);
	$str=str_replace("Х", "х", $str);
	$str=str_replace("Ц", "ц", $str);
	$str=str_replace("Ч", "ч", $str);
	$str=str_replace("Ш", "ш", $str);
	$str=str_replace("Щ", "щ", $str);
	$str=str_replace("Ъ", "ъ", $str);
	$str=str_replace("Ы", "ы", $str);
	$str=str_replace("Ь", "ь", $str);
	$str=str_replace("Э", "э", $str);
	$str=str_replace("Ю", "ю", $str);
	$str=str_replace("Я", "я", $str);
	$str=str_replace("A", "a", $str);
	$str=str_replace("B", "b", $str);
	$str=str_replace("C", "c", $str);
	$str=str_replace("D", "d", $str);
	$str=str_replace("E", "e", $str);
	$str=str_replace("F", "f", $str);
	$str=str_replace("G", "g", $str);
	$str=str_replace("H", "h", $str);
	$str=str_replace("I", "i", $str);
	$str=str_replace("J", "j", $str);
	$str=str_replace("K", "k", $str);
	$str=str_replace("L", "l", $str);
	$str=str_replace("M", "m", $str);
	$str=str_replace("N", "n", $str);
	$str=str_replace("O", "o", $str);
	$str=str_replace("P", "p", $str);
	$str=str_replace("Q", "q", $str);
	$str=str_replace("R", "r", $str);
	$str=str_replace("S", "s", $str);
	$str=str_replace("T", "t", $str);
	$str=str_replace("U", "u", $str);
	$str=str_replace("V", "v", $str);
	$str=str_replace("W", "w", $str);
	$str=str_replace("X", "x", $str);
	$str=str_replace("Y", "y", $str);
	$str=str_replace("Z", "z", $str);
	return $str;
}

function utftoupper($str) {
	$str=str_replace("а", "А", $str);
	$str=str_replace("б", "Б", $str);
	$str=str_replace("в", "В", $str);
	$str=str_replace("г", "Г", $str);
	$str=str_replace("д", "Д", $str);
	$str=str_replace("е", "Е", $str);
	$str=str_replace("ё", "Ё", $str);
	$str=str_replace("ж", "Ж", $str);
	$str=str_replace("з", "З", $str);
	$str=str_replace("и", "И", $str);
	$str=str_replace("й", "Й", $str);
	$str=str_replace("к", "К", $str);
	$str=str_replace("л", "Л", $str);
	$str=str_replace("м", "М", $str);
	$str=str_replace("н", "Н", $str);
	$str=str_replace("о", "О", $str);
	$str=str_replace("п", "П", $str);
	$str=str_replace("р", "Р", $str);
	$str=str_replace("с", "С", $str);
	$str=str_replace("т", "Т", $str);
	$str=str_replace("у", "У", $str);
	$str=str_replace("ф", "Ф", $str);
	$str=str_replace("х", "Х", $str);
	$str=str_replace("ц", "Ц", $str);
	$str=str_replace("ч", "Ч", $str);
	$str=str_replace("ш", "Ш", $str);
	$str=str_replace("щ", "Щ", $str);
	$str=str_replace("ъ", "Ъ", $str);
	$str=str_replace("ы", "Ы", $str);
	$str=str_replace("ь", "Ь", $str);
	$str=str_replace("э", "Э", $str);
	$str=str_replace("ю", "Ю", $str);
	$str=str_replace("я", "Я", $str);
	$str=str_replace("a", "A", $str);
	$str=str_replace("b", "B", $str);
	$str=str_replace("c", "C", $str);
	$str=str_replace("d", "D", $str);
	$str=str_replace("e", "E", $str);
	$str=str_replace("f", "F", $str);
	$str=str_replace("g", "G", $str);
	$str=str_replace("h", "H", $str);
	$str=str_replace("i", "I", $str);
	$str=str_replace("j", "J", $str);
	$str=str_replace("k", "K", $str);
	$str=str_replace("l", "L", $str);
	$str=str_replace("m", "M", $str);
	$str=str_replace("n", "N", $str);
	$str=str_replace("o", "O", $str);
	$str=str_replace("p", "P", $str);
	$str=str_replace("q", "Q", $str);
	$str=str_replace("r", "R", $str);
	$str=str_replace("s", "S", $str);
	$str=str_replace("t", "T", $str);
	$str=str_replace("u", "U", $str);
	$str=str_replace("v", "V", $str);
	$str=str_replace("w", "W", $str);
	$str=str_replace("x", "X", $str);
	$str=str_replace("y", "Y", $str);
	$str=str_replace("z", "Z", $str);
	return $str;
}

function likechars($str) {
	$str=trim(utftolower($str));
	for ($i=10; $i>1; $i--) {
		$p="";
		for ($k=0; $k<$i; $k++) {$p.=" ";}
		$str=str_replace($p, " ", $str);
	}
	$str=str_replace("а", "a", $str);
	$str=str_replace("в", "b", $str);
	$str=str_replace("е", "e", $str);
	$str=str_replace("ё", "e", $str);
	$str=str_replace("з", "3", $str);
	$str=str_replace("к", "k", $str);
	$str=str_replace("м", "m", $str);
	$str=str_replace("н", "h", $str);
	$str=str_replace("о", "o", $str);
	$str=str_replace("р", "p", $str);
	$str=str_replace("с", "c", $str);
	$str=str_replace("т", "t", $str);
	$str=str_replace("у", "y", $str);
	$str=str_replace("х", "x", $str);
	$str=str_replace("ч", "4", $str);
    return $str;

}

function rustranslit($text) {
	$l=array(
		'а'=>'a',
		'б'=>'b',
		'в'=>'v',
		'г'=>'g',
		'д'=>'d',
		'е'=>'e',
		'ё'=>'yo',
		'ж'=>'zh',
		'з'=>'z',
		'и'=>'i',
		'й'=>'j',
		'к'=>'k',
		'л'=>'l',
		'м'=>'m',
		'н'=>'n',
		'о'=>'o',
		'п'=>'p',
		'р'=>'r',
		'с'=>'s',
		'т'=>'t',
		'у'=>'u',
		'ф'=>'f',
		'х'=>'h',
		'ц'=>'c',
		'ч'=>'ch',
		'ш'=>'sh',
		'щ'=>'sch',
		'ъ'=>"''",
		'ы'=>'y',
		'ь'=>"'",
		'э'=>'ye',
		'ю'=>'yu',
		'я'=>'ya',
	);
	$res="";
	for ($i=0; $i<iconv_strlen($text, 'UTF-8'); $i++) {
		$c=iconv_substr($text, $i, 1, 'UTF-8');
		
		if (isset($l[$c])) {
			$c=$l[$c];
		} elseif (isset($l[utftolower($c)])) {
			$c=utftoupper($l[utftolower($c)]);
		}
		if ((ord($c)<32) or (ord($c)>126)) {
			$c=' ';
		}
		$res.=$c;
	}
	return $res;
}

?>