Полезные коды в PHP и MySQL

18.96K
.
(\/)____o_O____(\/)

Zidan_@777@, думаю тут вы обычного fetch_row было бы достаточно

.

Koenig, да, я тоже об этому подумал, но решил оставить как было в первоисточнике

.
JohnCMS
<?php
$url="http://api.vkontakte.ru/method/users.get?uids=djesk&fields=online";
$mass=json_decode(file_get_contents($url), true);
if ($mass["response"][0]["online"]==1) $online="<b>в сети</b>";
else $online="<u>не в сети</u>";
echo 'Пользователь <b>'.$mass["response"][0]["first_name"].' '.
$mass["response"][0]["last_name"].'</b> сейчас '.$online.'.';
?>

Статус онлайна вк
Вместо djesk ваш логин ид вк
.

Не совсем по теме, но кому то возможно пригодится.
Есть такая небезызвестная библиотека id3tag
И есть у нее один небольшой косячек, не понимает она кириллических тегов в вин 1251
В общем лечим эту неприятность
В моей версии это строка примерно 3250 файла module.tag.id3v2.php

static $TextEncodingNameLookup = array(
0   => 'ISO-8859-1', // $00  ISO-8859-1. Terminated with $00.
1   => 'UTF-16',     // $01  UTF-16 encoded Unicode with BOM. All strings in the same frame SHALL have the same byteorder. Terminated with $00 00.
2   => 'UTF-16BE',   // $02  UTF-16BE encoded Unicode without BOM. Terminated with $00 00.
3   => 'UTF-8',      // $03  UTF-8 encoded Unicode. Terminated with $00.
255 => 'UTF-16BE'
);

можно найти по static $TextEncodingNameLookup
заменяем ее на
static $TextEncodingNameLookup = array(
0=>'cp1251',
1=>'UTF-16',
2=>'UTF-16BE',
3=>'UTF-8',
255=>'UTF-16BE'
);

проверяем
.
человек И пароход

Моя реализация функции "год, года, лет"

Вроде самая простая как логически так и на коде.
Во всяком случае проще не встречал

function gglet($n){
$nn = $n % 10;

if($nn == 1){
 $out = 'Год';
} else if($nn > 1 && $nn < 5){
 $out = 'Года';
}
else{
 $out = 'Лет';
}
$out = $n.$out;
return $out;
}

echo gglet(101);//год

//1 год
//2 года
//5 лет
.
человек И пароход

Задача функции выводить изображение при помощи css
Такую картинку нельзя перетащить мышкой, при нажатии ПКМ нельзя скачать.
Это позволяет добиться ощущения целостности страницы.

public static function img_css($url){
          //$url - остаточный пусть до картинки
 
     $link = core::$system_set['homeurl'].'/images/';//ссылка на папку с картинками
  
     $arr = getimagesize($link.$url);

      if($arr){ //узнаем картинка ли
  
         $out = '<div style="
  display: inline-block;
  background: url('.$link.$url.') no-repeat;
  width: '.$arr['0'].'px;
  height: '.$arr['1'].'px;"></div>';

    } 
       else
        {
     $out = false;
        }

      return $out;
  
        }


Запускаем:
echo functions::img_css('112.png');

PS никаких наворотов, изображение выводится в его исходном разрешении.
.
ДоХтор
Универсальная пагинация (+/-)
/**
* Универсальная пагинация
* 
* @param array $input   Массив данных (список)
* @param int   $length  Количество строк на странице
* @param int   $reverse Сортировка по возростанию / убыванию
* 
* @return array Срез массива и порядковая нумерация страниц
*/
function pagination($input, $length, $reverse = 1) {
    if (empty($input) or !is_array($input)) {
        return false;
    }
    
    $page = (isset($_GET['page']) ? intval($_GET['page']) : 1);
    $reverse ?: $input = array_reverse($input);
    $numb = ceil(sizeof($input) / $length);
    $offset = ($page * $length) - $length;
    
    if ($page > $numb or $page < 1) {
        $offset = 0;
        $page = 1;
    }
 
    $pages = array_map(function ($i) use ($page, $numb, &$bufr) {
        return $bufr = (
            $i == 1 || $i == $numb || abs($i - $page) < 2 
                ? ($i == $page ? "<b>$i</b>" 
                    : " <a href='". basename(__FILE__) ."?page=$i'>$i</a> ") 
                : ($bufr == '...' || $bufr == '' ? '' : '...')
        );
    }, range(1, $numb));
 
    $output['slice'] = array_slice($input, $offset, $length);
    $output['pages'] = ($numb > 1 ? join($pages) : '');
 
    return $output;
}
Пример использования (+/-)
// Массив данных
$chars = ['А','Б','В','Г','Д','Е','Ж','З','И','К','Л','М'];

// Вывод по возростанию
$view = pagination($chars, 10);

// Или по убыванию
//$view = pagination($chars, 10, 0);
 
if ($view) {
    // Постраничка сверху
    echo $pagin = '<div style="background-color:#EEE5DE">'. $view['pages'] .'</div>';
 
    foreach ($view['slice'] as $i => $v) {
        // Вывод "зеброй" (для демонстрации)
        echo ($i & 1 ? '<div style="background-color:#EEEEE0">'. $v .'</div>' : $v);
    }
 
    // Постраничка снизу
    echo $pagin;
}
.
ramzes

не совсем пхп, точнее вовсе не пхп)
красим вкладку в хроме на андроиде:

<meta name="theme-color" content="#цвет"> <!-- Android-->
<meta name="msapplication-TileColor" content="#6F8BA" /> <!-- MS -->

результат: http://mydroid.pro/forum/file/132/
добавляем иконку в высоком разрешении (заменяет фавикон):
<link rel="icon" sizes="192x192" href="/style/images/192_icon.png">
<link rel="icon" sizes="128x128" href="/style/images/128_icon.png">
<link rel="icon" sizes="96x96" href="/style/images/96_icon.png">
 <!-- Android, PC -->
<meta name="msapplication-square150x150logo" content="/image/main.png" />
<meta name="msapplication-wide310x150logo" content="/image/main.png" />
 <!-- Win 8-10 -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png">
<!-- Safari, Android -->

Для чего нужна такая иконка?
по мимо того что она просто четче, именно ее выводит андроид в уведомлениях от сайта в шторке (например плеер будет в шторке выводить именно эту иконку, фавикон не выведет)
.
ramzes

немного дополню, как еще можно использовать цвет вкладки:
как индикатор события.
довольно простенький скриптик:

<meta id="chrome-theme-color" name="theme-color" content="#3C5E7B">

$('#chrome-theme-color').attr('content', '#F33');
setTimeout(function () {
    $('#chrome-theme-color').attr('content', '#3C5E7B');
    });
}, 2000);

при срабатывании заменяет на 1 секунду цвет вкладки на красный (например при входящем сообщении можно его повесить)
http://mydroid.pro/forum/file/134/
.
ДоХтор
Интеллектуальная кнопка (+/-)
<?php

session_id() ?: session_start();

$f = 'file.txt';

$cnt = file_exists($f) ? (int)file_get_contents($f) : 0;

!empty($cnt) ?: $txt = 'Нажмите на кнопку';
!empty($_SESSION['cnt']) ?: $_SESSION['cnt'] = $cnt;
empty($_SESSION['msg']) ?: $txt = $_SESSION['msg'];

if (filter_input(INPUT_POST, 'subm')) {
    file_put_contents($f, ++$cnt);
    $_SESSION['msg'] = 'Вы нажали на эту кнопку';
    $_SESSION['cnt'] == $cnt ?: $_SESSION['cnt'] = $cnt;
    
    header('Location: '. basename(__FILE__));
    die;
}

if ($_SESSION['cnt'] != $cnt || empty($txt)) {
    $txt = $_SESSION['msg'] = 'Кнопка нажата другим пользователем';
}

?>

<form method="post">
    <input type="submit" name="subm" value="<?php echo $txt; ?>" />
</form>
Кнопка, отображающая текст, в зависимости от того, кто по ней кликнул последним: вы, или кто-то другой.
зы: идея не моя, писал по просьбе форумчанина пхп.су
Всего: 361