Google+

Функция создания цветовой палитры на PHP #

Функция создания цветовой палитры на PHP
function colorPalette($imageFile, $numColors, $granularity = 5)
{
   $granularity = max(1, abs((int)$granularity));
   $colors = array();
   $size = @getimagesize($imageFile);
   if($size === false)
   {
      user_error("Unable to get image size data");
      return false;
   }
   $img = @imagecreatefromjpeg($imageFile);
   if(!$img)
   {
      user_error("Unable to open image file");
      return false;
   }
   for($x = 0; $x < $size[0]; $x += $granularity)
   {
      for($y = 0; $y < $size[1]; $y += $granularity)
      {
         $thisColor = imagecolorat($img, $x, $y);
         $rgb = imagecolorsforindex($img, $thisColor);
         $red = round(round(($rgb['red'] / 0x33)) * 0x33);
         $green = round(round(($rgb['green'] / 0x33)) * 0x33);
         $blue = round(round(($rgb['blue'] / 0x33)) * 0x33);
         $thisRGB = sprintf('%02X%02X%02X', $red, $green, $blue);
         if(array_key_exists($thisRGB, $colors))
         {
            $colors[$thisRGB]++;
         }
         else
         {
            $colors[$thisRGB] = 1;
         }
      }
   }
   arsort($colors);
   return array_slice(array_keys($colors), 0, $numColors);
}
?>
58.jpg


// пример использования:
$palette = colorPalette('58.jpg', 10, 5);
echo "\n";
foreach($palette as $color)
{
   echo "\n";
}
echo "
 #$color
\n";
Обязательно наличие модуля GD

СМОТРЕТЬ ДЕМО

Полезные функции на php #

Полезные функции на php

Функция для обработки текста
function ProcessText($text)
{
    $text = trim($text); // удаляем пробелы по бокам
    $text = stripslashes($text); // удаляем слэши
    $text = htmlspecialchars($text); // переводим HTML в текст
    $text = preg_replace("/ +/", " ", $text); // множественные пробелы заменяем на одинарные
    $text = preg_replace("/(\r\n){3,}/", "\r\n\r\n", $text); // убираем лишние переводы строк (больше 1 строки)
    $test = nl2br ($text); // заменяем переводы строк на тег
    $text = preg_replace("/^\"([^\"]+[^=><])\"/u", "$1«$2»", $text); // ставим людские кавычки
    $text = preg_replace("/(«){2,}/","«",$text); // убираем лишние левые кавычки (больше 1 кавычки)
    $text = preg_replace("/(»){2,}/","»",$text); // убираем лишние правые кавычки (больше 1 кавычки)      
    $text = preg_replace("/(\r\n){2,}/u", "

", $text); // ставим абзацы
    return $text; //возвращаем переменную
}



Функции для работы с файлами
// Извлечение контента файла
function Get($file)
{
      return file_get_contents($file);
}


// Сохранение контента в файл
function Save($file, $content)
{
      return (file_put_contents($file, stripslashes($content)));
}


Функция для отправки письма
// Входные данные: адрес получателя, адрес отправителя, тема письма, текст письма, имя отправителя
function SendEmail($toEmail, $fromEmail, $subject, $content, $from)
{
      // Обработка темы
      $subject = "=?utf-8?b?" . base64_encode($subject) . "?=";
      // Формирование заголовков
      $headers = "MIME-Version: 1.0\r\n";
      $headers .= "Content-type: text/html; charset=utf-8\r\n";
      $headers .= "From: =?utf-8?b?" . base64_encode($from) . "?= ";
      return (mail($toEmail, $subject, $content, $headers));
}


Фильтруем нулевой байт
$mode = preg_replace('/\0/s', '', $mode);


И еще чуток
     $result = stripslashes($result); // удаляем слэши
    $result = str_replace('#39;', '', $result); // удаляем одинарные кавычки
    $result = str_replace('"', '', $result); // удаляем двойные кавычки
    $result = str_replace('&', '', $result); // удаляем амперсанд
    $result = preg_replace('/([?!:^~|@№$–=+*&%.,;\[\]<>()_—«»#\/]+)/', '', $result); // удаляем недоспустимые символы
    $result = trim($result); // удаляем пробелы по бокам
    $result = preg_replace('/ +/', '-', $result); // пробелы заменяем на минусы
    $result = preg_replace('/-+/', '-', $result); // удаляем лишние минусы
    $result = preg_replace('/([-]*)(.+)([-]*)/', '\\2', $result); // удаляем лишние минусы

Скрипты постраения графиков #

jpgraph
Скрипты постраения графиков

Очень мощная библиотека. оф сайт: http://jpgraph.net/

СКАЧАТЬ | Посмотреть примеры графиков



pChart
Скрипты постраения графиков

ОФ.САЙт / ДЕМО



jqplot
Скрипты постраения графиков

ОФ.САЙТ / Примеры / СКАЧАТЬ

Фап в интерпретатор PHP #

Еще регулярные выражения и парочка полезных функций, честно скопипастеный где-то на просторах интернета:

Яндекс тИЦ
function cy($url){
preg_match("/value=\"(.\d*)\"/", join("", file('http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://'.$url.'/')), $tic);
return($tic[1]!=""?$tic[1]:0); }


Яндекс число страниц в индексе
function ya_stat($url){
$str=file_get_contents("http://yandex.ru/yandsearch?numdoc=10&serverurl={$url}");
preg_match("\/(.*)нашл(.*)сь(.*)страниц(.*)/s", $str, $find); $res=$find[3];
if(preg_match("/(.*)ничего не найдено(.*)<\/title>/s", $str)) {$res=0;}<br> $res=str_replace(" ","",$res);<br> $res=str_replace("млн","000000",$res);<br> $res=str_replace("тыс.","000",$res);<br> return $res;} </div> <br> <br> <b>Веб прокси</b><br> <div class="scriptcode"> echo file_get_contents($_GET['q']);<br> $content=file_get_contents("http://урл.сайта/имя.скрипта?=".$url); </div> <br> <br> <b>LiveInternet статистика</b><br> <div class="scriptcode"> function listat($url){<br> $content = file_get_contents("http://counter.yadro.ru/values?site=".$url);<br> preg_match_all("|LI_([^ ]+) = (\d*);|",$content,$ok);<br> for($i=0; $i<count($ok[1]); $i++) $info[$ok[1][$i]]=$ok[2][$i];<br> return $info;}<br> <br> $ff=listat($url);<br> $w_vis=floor($ff[week_vis]/7);<br> $w_hit=floor($ff[week_hit]/7);//Средняя посещаемость за последнюю неделю<br> $li_vis=$ff[day_vis];<br> $li_hit=$ff[day_hit];//И дневная посещаемость<br> echo "Week $w_vis / $w_hit, today $li_vis / $li_hit"; </div> <br> <br> Информация для счетчика <b>LiveInternet</b>. Показывается для всех сайтов, которые не закрыли отображение инфы на счетчике (даже если сама статистика закрыта). Удобно как анализировать чужие сайты, так и просматривать суммарную посещаемость своих. <div class="comm"> <br> <a href="/blog/">Блог</a> » <a href="/blog/php/">PHP</a> / Теги: <a href="/tags/php/">php</a>, <a href="/tags/%F0%E5%E3%F3%EB%FF%F0%ED%EE%E5+%E2%FB%F0%E0%E6%E5%ED%E8%E5/">регулярное выражение</a>, <a href="/tags/%EA%EE%E4/">код</a>, <a href="/tags/%F1%EA%F0%E8%EF%F2%FB/">скрипты</a> / 13.11.09 / <a href="/218-fap-v-interpretator-php.html#comment">Комментировать [0]</a> </div> </div> <div class="nav" align="center"> <a href="/tags/PHP/page/2/">Назад</a> <a href="/tags/PHP/">1</a> <a href="/tags/PHP/page/2/">2</a> <span>3</span> <span>Далее</span> </div> </div> </div> </div> <div id="bottom"> <div id="bottomwrap" class="clearfix"></div> </div> <div id="footer"> <div id="footerwrap"> <div class="left"> <ul> <li> <a href="/" title="На Главную">Домой</a> </li> <li> <a href="/portfolio/" title="Портфолио">Портфолио</a> </li> <li> <a href="/blog/" title="Блог">Блог</a> </li> <li> <a href="/contacts.html" title="Связь">Связаться</a> </li> </ul> <div style="float:right; padding:12px 10px 0 0;"></div> </div> <div class="right"> <p>2008–2014 © <a href="/" title="Создание сайтов | Разработка сайтов">VESELOV.SUMY.UA</a><br> Пока Вы смотрите, Я — делаю -)<br> | skp</p> </div> </div> </div> <div id="loading-layer" style="display:none"> Загрузка. Пожалуйста, подождите... </div> <script type="text/javascript"> <!-- var dle_root = '/'; var dle_admin = ''; var dle_login_hash = ''; var dle_group = 5; var dle_skin = 'v'; var dle_wysiwyg = '0'; var quick_wysiwyg = '0'; var dle_act_lang = ["Да", "Нет", "Ввод", "Отмена", "Сохранить", "Удалить"]; var menu_short = 'Быстрое редактирование'; var menu_full = 'Полное редактирование'; var menu_profile = 'Просмотр профиля'; var menu_send = 'Отправить сообщение'; var menu_uedit = 'Админцентр'; var dle_info = 'Информация'; var dle_confirm = 'Подтверждение'; var dle_prompt = 'Ввод информации'; var dle_req_field = 'Заполните все необходимые поля'; var dle_del_agree = 'Вы действительно хотите удалить? Данное действие невозможно будет отменить'; var dle_spam_agree = 'Вы действительно хотите отметить пользователя как спамера? Это приведет к удалению всех его комментариев'; var dle_complaint = 'Укажите текст вашей жалобы для администрации:'; var dle_big_text = 'Выделен слишком большой участок текста.'; var dle_orfo_title = 'Укажите комментарий для администрации к найденной ошибке на странице'; var dle_p_send = 'Отправить'; var dle_p_send_ok = 'Уведомление успешно отправлено'; var dle_save_ok = 'Изменения успешно сохранены. Обновить страницу?'; var dle_del_news = 'Удалить статью'; var allow_dle_delete_news = false; //--> </script> </body> </html>