Вашему вниманию предлагается небольшой набор функций, каждая из которых может пригодится веб-разработчику. Большинство из них нетрудно найти в интернете, но я не смог найти ни одну страницу, где была бы представлена хотя бы половина описанного.
1. Проверка на то, что строка начинается с заданной подстроки. Первый параметр — что ищем (string), второй — где (string), третий задаёт регистронезависимость (boolean).
function isStartsWith ($needle, $haystack, $ignorecase=true) {
if ($ignorecase) {
$needle = strtolower($needle);
$haystack = strtolower($haystack);
}
return (substr($haystack, 0, strlen($needle))==$needle);
}
2. Проверка на то, что строка содержит заданную подстроку. Первый параметр — что ищем (string), второй — где (string), третий задаёт регистронезависимость (boolean).
function contains($needle, $haystack, $ignorecase=true) {
if ($ignorecase) {
$needle = strtolower($needle);
$haystack = strtolower($haystack);
}
return strpos($haystack,$needle) ? true : false;
}
3. Сравнивает строки без учёта регистра.
function isStringsEqualsCaseIns ($srt1, $str2) {
return strcasecmp($srt1, $str2) ? false : true;
}
4. Генерит случайную строку заданной длины из заданных символов. Первый параметр — длина возвращаемой строки (int), второй — допустимые символы (string).
function getRandomString ($length, $valid_chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') {
$random_string = '';
$num_valid_chars = strlen($valid_chars);
for ($i = 0; $i < $length; $i++) {
$random_pick = mt_rand(1, $num_valid_chars);
$random_char = $valid_chars[$random_pick-1];
$random_string .= $random_char;
}
return $random_string;
}
5. Регистронезависимый аналог in_array. Первый параметр — что ищем (string), второй — где (array).
function inArrayCaseIns ($needle, $haystack) {
return in_array(strtolower($needle), array_map('strtolower', $haystack));
}
6. Убирает пробелы у всех элементов массива, в том числе многомерного.
function trimArray ($input) {
if (!is_array($input))
return trim($input);
return array_map('trimArray', $input);
}
7. Превращает массив, в том числе многомерный, в объект.
function arrayToObject ($array) {
if(!is_array($array))
return $array;
$object = new stdClass();
if (is_array($array) && count($array) > 0) {
foreach ($array as $name=>$value) {
$name = strtolower(trim($name));
$object->$name = arrayToObject($value);
}
return $object;
}
else
return false;
}
8. Превращает объект в массив.
function objectToArray ($obj) {
if (is_object($obj))
$obj = get_object_vars($obj);
if (is_array($obj))
return array_map(__FUNCTION__, $obj);
else
return $obj;
}
9. Подсвечивает все слова из области поиска в тексте. Первый параметр — где подсвечивать (string), второй — что (string или array).
function highlightWords ($str, $words) {
if ((empty($words)) || (!is_string($str)))
return false;
if (is_array($words))
$words = implode ('|', $words);
return preg_replace ('@b('.$words.')b@si', '<strong style="background-color:yellow">$1</strong>', $str);
}
10. Возвращает слово с верным окончанием в зависимости от числительного перед ним. Работает и с русским, и с английским. Первый параметр — количество (int), второй — массив верных форм, например
array('корова','коровы','коров')
function correctEnding ($number, $after) {
$cases = array(2, 0, 1, 1, 1, 2);
return $number.' '.$after[($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)]];
}
11. Распечатывает массив или объект в читабельном виде (для отладки). Первый параметр — массив или объект, с которым работаем, второй — заголовок вывода, третий — цвет выводимой информации.
function debugMessage ($message, $title = false, $color = '#008B8B') {
echo '<table border="0" cellpadding="5" cellspacing="0" style="border:1px solid '.$color.';margin:2px;"><tr><td>';
if (strlen($title)>0)
echo '<p style="color:'.$color.';font-size:11px;font-family:Verdana;">['.$title.']</p>';
if (is_array($message) || is_object($message)) {
echo '<pre style="color:'.$color.';font-size:11px;font-family:Verdana;">'; print_r($message); echo '</pre>';
}
else
echo '<p style="color:'.$color.';font-size:11px;font-family:Verdana;">'.$message.'</p>';
echo '</td></tr></table>';
}
12. Генерит короткую ссылку из заданной.
function getShortUrl ($url) {
return file_get_contents('http://tinyurl.com/api-create.php?url='.$url);
}
13. Возвращает весь GET-запрос в виде строки, причём можно указывать элементы для удаления из запроса (array) и элементы для добавления. Например, мы находимся на странице example.com/test.php?a=1&b=2&c=3. Вызов функции с параметрами getCurrPageParamsAsStr(array('a','c'), array('d' => 4)) вернёт нам b=2&d=4, которые мы можем смело подставлять к нужным ссылкам.
function getCurrPageParamsAsStr ($remove = false, $add = false) {
if(!empty($_GET)) {
$get = $_GET;
if ($remove) {
$rem_el = count($remove);
for ($i=0; $i<$rem_el; $i++)
unset($get[$remove[$i]]);
}
if ($add) {
foreach ($add as $key => $value)
$get[$key] = $value;
}
$i = 0;
foreach ($get as $key => $value) {
if ($i == 0)
$get_string = $key . "=" . $value;
else
$get_string .= "&" . $key . "=" . $value;
$i++;
}
}
else
$get_string = '';
return $get_string;
}
Надеюсь, что вам пригодится эта подборка.
P.S. Оставляйте в комментариях свои интересные функции — обязательно размещу, чтобы страницу можно было смело добавлять в закладки:)
Автор: kpotehin