$width, 1=>$height) с шириной и высотой получившегося изображения function imageResize ($src, $dest, $width, $height) { if (!file_exists($src)) return false; if (($size=getimagesize($src))===false) return false; $format=strtolower(substr($size['mime'],strpos($size['mime'],'/')+1)); $icfunc='imagecreatefrom'.$format; if (!function_exists($icfunc)) return false; $x_ratio=$width/$size[0]; $y_ratio=$height/$size[1]; $ratio=min($x_ratio, $y_ratio); $use_x_ratio=($x_ratio==$ratio); $new_width=$use_x_ratio?$width:floor($size[0]*$ratio); $new_height=!$use_x_ratio?$height:floor($size[1]*$ratio); $new_left=$use_x_ratio?0:floor(($width-$new_width)/2); $new_top=!$use_x_ratio?0:floor(($height-$new_height)/2); $isrc=$icfunc($src); $idest=imagecreatetruecolor($new_width, $new_height); imagecopyresampled($idest, $isrc, 0, 0, 0, 0, $new_width, $new_height, $size[0], $size[1]); //Пишем в файл if ($format=='jpeg') imagejpeg($idest, $dest, 70); else if ($format=='gif') imagegif($idest, $dest); else imagepng($idest, $dest, 7); imagedestroy($isrc); imagedestroy($idest); return array($new_width, $new_height); } //Водяной знак (размножит по поверхности одного изображения другое) function watermark($src,$stm) { if (!file_exists($src) || !file_exists($stm)) return false; if (($size=getimagesize($src))===false) return false; $format=strtolower(substr($size['mime'],strpos($size['mime'],'/')+1)); // создание водяного знака в формате png $watermark = imagecreatefrompng($stm); // получаем ширину и высоту $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); // создание jpg изображения if ($format=='jpeg') { if(!$image = imagecreatefromjpeg($src)) { error_log('Error imagecreatefromjpeg '.$_SERVER['REQUEST_URI']); } }else if ($format=='gif') $image = imagecreatefromgif($src); else $image = imagecreatefrompng($src); //Выясняем количество повторов по оси X и по Y $dx=ceil($size[0] / $watermark_width); $dy=ceil($size[1] / $watermark_height); imagealphablending($image, true); imagealphablending($watermark, true); // создаём новое изображение for($y=0;$y<$dy;$y++) for($x=0;$x<$dx;$x++) imagecopy($image, $watermark, $x * $watermark_width, $y * $watermark_height, 0, 0, $watermark_width, $watermark_height); //Пишем в файл if ($format=='jpeg') imagejpeg($image,$src); else if ($format=='gif') imagegif($image,$src); else imagepng($image,$src); // освобождаем память imagedestroy($image); imagedestroy($watermark); } //вернёт только цифры function getInt($str) { $res=''; for($i=0;$i24*60*60) unlink($dir.$file); } closedir($dh); } } } //Генерация пароля function getPassword($max) { $chars="qazxswedcvfrtgbnhyujmkiolp1234567890"; $size=StrLen($chars)-1; $password=''; while($max--) $password.=$chars[rand(0,$size)]; return $password; } //Полный путь к текущему URL включая http и название скрипта function selfURL() { if(!isset($_SERVER['REQUEST_URI'])){ $suri = $_SERVER['PHP_SELF']; } else { $suri = $_SERVER['REQUEST_URI']; } $s = empty($_SERVER["HTTPS"]) ? '' : (($_SERVER["HTTPS"] == "on") ? "s" : ""); $sp=strtolower($_SERVER["SERVER_PROTOCOL"]); $pr = substr($sp,0,strpos($sp,"/")).$s; $pt = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $pr."://".$_SERVER['SERVER_NAME'].$pt.$suri; } //Путь без файла пример: http://truemisha.ru function selfDomain() { //if(!isset($_SERVER['REQUEST_URI'])) $suri = $_SERVER['PHP_SELF']; //else $suri = $_SERVER['REQUEST_URI']; $s = empty($_SERVER["HTTPS"]) ? '' : (($_SERVER["HTTPS"] == "on") ? "s" : ""); $sp=strtolower($_SERVER["SERVER_PROTOCOL"]); $pr = substr($sp,0,strpos($sp,"/")).$s; $pt = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $pr."://".$_SERVER['SERVER_NAME'].$pt;//.$suri; } //Строка до последнего найденого символа если символа нет то всю строку function beforeLast(&$str,$ch) { return substr($str, 0, strrpos($str, $ch)); } //Строка после последнего найденого символа если символа нет то всю строку function afterLast(&$str,$ch) { return substr($str, strrpos($str, $ch)+strlen($ch)); } //Строка до первого попавшегося символа function beforeFirst(&$str,$ch) { return substr($str, 0, strpos($str, $ch)); } //Строка после первого попавшегося символа function afterFirst(&$str,$ch) { return substr($str, strpos($str, $ch)+strlen($ch)); } // Вернёт подстроку если символа нет то всю строку // @param string $str // @param string $chr function cutStr(&$str,$chr) { $pos = strpos($str, $chr); if($pos===false) { return $str; }else { $buf = substr($str, 0, $pos); $str = substr($str, $pos + strlen($chr)); return $buf; } } //Вырезаеи всё после заданого разделителя удаляя разделитель если разделителя нет возвращает всю строку //$fstr - Разделитель //$num - На каком разделителе остановиться function cutAfterLast(&$sstr,$fstr,$num = 1) { $sub=''; $pos=strlen($sstr); for($i=0;$i<$num;$i++) { $pos = strripos($sstr, $fstr, $pos-strlen($sstr)-1); if($pos === false) { break; } } if($pos === false) { $sub=$sstr; $sstr=''; return $sub; }else { $sub = substr( $sstr , $pos + strlen($fstr)); $sstr = substr( $sstr , 0, $pos); return $sub; } } //Зачем коментил? //Отрезаем от строки всё до заданой подстроки если подстроки нет отрезается вся строка function cutBeforeFirst(&$sstr,$fstr) { $sub=''; $pos = strpos($sstr, $fstr); if($pos === false) { $sub=$sstr; $sstr=''; return $sub; }else { $sub = substr( $sstr , 0, $pos); $sstr = substr( $sstr , $pos + strlen($fstr)); return $sub; } }