
| PureBasic [9] Кроссплатформенный компилятор и IDE для быстрой разработки |
| wxWidgets [3] wxWidgets is a C++ library that lets developers create applications for Windows, OS X, Linux and UNIX on 32-bit and 64-bit architectures as well as several mobile platforms including Windows Mobile, iPhone SDK and embedded GTK+. |
| HGE [2] Игровой движок HGE (Haaf's Game Engine) |
| Windows [2] Программистам под ОС MS Windows |
| PHP [14] Язык такой есть) |
| jQuery [0] Библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML |
| VST [6] Steinberg's Virtual Studio Technology (VST) |
| RegExp [0] Регулярные выражения |
| C/C++ [2] |
function get_word_form($n, $o1, $o2, $o5)
{
//Получить нормальное окончание для слова $word и числа объектов $n.
//Параметры:
//$o1 - окончание для числа *1,
//$o2 - окончание для *2-*4,
//$o5 - окончание для чисел *5-*9,*0,*11-*19
$n = abs($n);
if($n % 100 > 10 and $n % 100 < 20 or $n % 10 == 0 or $n % 10 > 4)
$word = $o5;
elseif($n % 10 > 1 and $n % 10 < 5)
$word = $o2;
else
$word = $o1;
return $word;
}
static function getTextTimeStamp($session_time)
{
if(strpos($session_time, " ") !== false)
{
$session_time = strtotime($session_time);
}
$time_difference = time() - $session_time;
$seconds = $time_difference;
$minutes = round($time_difference / 60);
$hours = round($time_difference / 3600);
$days = round($time_difference / 86400);
$weeks = round($time_difference / 604800);
$months = round($time_difference / 2419200);
$years = round($time_difference / 29030400);
if($seconds == 0)
return "только что";
if($seconds <= 60)
{
return "$seconds ".get_word_form($seconds, "секунду", "секунды", "секунд")." назад";
}
elseif($minutes <= 60)
{
return "$minutes ".get_word_form($minutes, "минуту", "минуты", "минут")." назад";
}
elseif($hours <= 24)
{
return "$hours ".get_word_form($hours, "час", "часа", "часов")." назад";
}
elseif($days <= 7)
{
return "$days ".get_word_form($days, "день", "дня", "дней")." назад";
}
elseif($weeks <= 4)
{
return "$weeks ".get_word_form($weeks, "неделю", "недели", "недель")." назад";
}
elseif($months <= 12)
{
return "$months ".get_word_form($months, "месяц", "месяца", "месяцев")." назад";
}
else
{
return "$years ".get_word_form($years, "год", "года", "лет")." назад";
}
}
/**
* Kicks non unique array items by serializing array items and compare
*
* @param array $myArray
* @return array
*/
function arrayUnique($myArray)
{
if(!is_array($myArray))
return $myArray;
foreach ($myArray as &$myvalue)
{
$myvalue = serialize($myvalue);
}
$myArray = array_unique($myArray);
foreach ($myArray as &$myvalue)
{
$myvalue = unserialize($myvalue);
}
return $myArray;
}
function isAjaxRequest()
{
return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest');
}
/**
* проверка - имеет ли файл допустимое разрешение, второй параметр - массив
* вида $allowedExtensions = array("avi" , "mp4" , ...);
*
* @param mixed $fileName
* @param mixed $allowedExtensions
* @return bool
*/
function isAllowedExtension(
$fileName, $allowedExtensions)
{
$exploded = explode(".", $fileName);
return in_array(mb_strtolower(end($exploded)), $allowedExtensions);
}
/**
* рекурсивное удаление директории
*
* @param mixed $dirname
* @return bool
*/
function rmdirr($dirname)
{
if(!file_exists($dirname))
return false; // Sanity check
if(is_file($dirname) || is_link($dirname))
return unlink($dirname); // Simple delete for a file
// Loop through the folder
$dir = dir($dirname);
while(false !== $entry = $dir->read())
{
if($entry == '.' || $entry == '..')
continue; // Skip pointers
rmdirr($dirname.DIRECTORY_SEPARATOR.$entry); // Recurse
}
$dir->close(); // Clean up
return rmdir($dirname);
}
function dirsize($dirname)
{
if(!is_dir($dirname) || !is_readable($dirname))
return false;
$dirname_stack[] = $dirname;
$size = 0;
do
{
$dirname = array_shift($dirname_stack);
$handle = opendir($dirname);
while(false !== ($file = readdir($handle)))
{
if($file != '.' && $file != '..' && is_readable($dirname.DIRECTORY_SEPARATOR.$file))
{
if(is_dir($dirname.DIRECTORY_SEPARATOR.$file))
{
$dirname_stack[] = $dirname.DIRECTORY_SEPARATOR.$file;
}
$size += filesize($dirname.DIRECTORY_SEPARATOR.$file);
}
}
closedir($handle);
}
while(count($dirname_stack) > 0);
return $size;
}