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

8.43K
.
в хеадерах исправте гиф на пнг.
.
вот хороший класс календаря
Прикрепленные файлы:
.
Функция автоочистки папки через определенное время
$dir = 'cache/'; //папка, которую чистим
$cleanTime = '24'; //период очистки в часах
function clearDirRec ($dir, $cleanTime)
{
    while($file = array_diff(scandir($dir), array('.', '..', '.htaccess'))) { //читаем папку
        if(is_dir($dir . $file)) { //если полученый результат - папка, то рекурсивно чистим и ее
            clearDirRec($dir . $file); //то рекурсивно чистим и ее
            rmdir($dir . $file); //удаляем папку
        }
        else {
            unlink($dir . $file); //удаляем файл
        }
    }
}
if(file_exists($dir . 'lastclean.dat') && @filemtime($dir . 'lastclean.dat') < (time() - $cleanTime * 3600)) {
    clearDirRec($dir);
}
else {
    file_put_contents($dir . 'lastclean.dat', 1);
}
.
Автор я.
.
Dimario
Уехал в Украину
// Нужно было получить PR сайтов, вот сварганил быдлокодерскую функцию
// если нужно получить только цифру, то в пишем так
// return $a[1].$a[2];
// в формальную переменную $url передовать название сайте, без http://

function getPR($url){
 $url = 'http://pr-cy.ru/analysis/'.$url;
 if($fp = file_get_contents($url)){
  preg_match('/<b>([0-9]){1}([0]){0,1}\/([0-9]){1}([0]){0,1}<\/b>/si', $fp, $a);
  return $a[1].$a[2].'/'.$a[3].$a[4];
 }else{
  return 0;
 }
}
.
Уехал в Украину
// Эту функцию писал не я, просто уже давно пользуюсь, она в дагонку предыдущей
// Определяет CY сайта

function getCI($url){ 
 $ci_url = "http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://".$url."/"; 
 $ci_data = implode("", file("$ci_url")); 
 preg_match("/value=\"(.\d*)\"/", $ci_data, $ci); 

 if (empty($ci[1])) 
  return 0;
 else 
  return $ci[1];
}
.
откопал в просторах интернета.
Преобразование картинки в текст.
echo '<style>
 div#picture span {
       display: block;
       float: left;
       width: 5px;
       height: 5px;
    }
</style>';

$file = "pic.png";
$mSize = 100;
$im = imagecreatefrompng($file);
list($x, $y) = getimagesize($file);
$ratio = $x/$y;

if ($x > $y) 
{

    $nx = $mSize;
    $ny = round($mSize / $ratio);
	
} 
else 
{

    $ratio = 1/$ratio;
    $ny = $mSize;
    $nx = round($mSize / $ratio);
	
}

$message = '<div id="picture">';
$ni = imagecreatetruecolor($nx, $ny);
imagecopyresampled($ni, $im, 0, 0, 0, 0, $nx, $ny, $x, $y);

for($h = 0; $h < $ny; $h++) 
{

    $message .= '<div style="clear:both"></div>';
	
    for($w = 0; $w < ceil($nx); $w++) 
	{
	
       $rgb = imagecolorat($ni, $w, $h);
       $r = ($rgb >> 16) & 0xFF;
       $g = ($rgb >> 8) & 0xFF;
       $b = $rgb & 0xFF;
       $message .= sprintf('<span style="color: rgb(%d, %d, %d)">*</span>', $r, $g, $b);
	   
    }
}

$message .= '</div>';

echo $message;
Прикрепленные файлы:
.
ramzes
ну раз такой спрос...
echo file_get_contents('http://youre-site.ru/pr.php?site=johncms.com');

результат возвращает в xml формате
<site>johncms.com</site>
<cy>150</cy>
<yapang>4</yarang>
<pr>4</pr>
<lastupdate>1341691530</lastupdate>
<error></error>

_______________
Простое определение ТИЦ и PR сайта/сайтов.
С кешированием и ограничением на запросы разных сайтов.
Вы сами указываете для каких сайтов можно запрашивать данные.
(просто укажите домен сайта в файле tmp/pr/access.txt с новой строки)
http://tfile.info/file/254/ пароль: smartoff
.
Перхватываем ошибки в свои руки.
<?php
ini_set('display_errors', FALSE);
error_reporting(-1);

// Обработчик неперехваченных исключений
set_exception_handler('exceptionHandler');
// Устанавливаем пользовательский обработчик ошибок
// Все что находится выше будет обрабатываться стандартным обработчиком
set_error_handler('errorHandler', -1);
// Пытаемся поймать фатальную ошибку
register_shutdown_function('getLastError');

function getLastError()
{
    
    $error = error_get_last();
    $error = new ErrorException($error['message'], $error['type'], 0, $error['file'], $error['line']);
    echo exceptionHandler($error);
    
}

function exceptionHandler($exception) {
    echo '<pre><h1>Exception</h1><b>Message:</b> ' . $exception->getMessage() .
         '<br /><b>Code:</b> ' . detectErrorCode($exception->getCode()) .
         '<br /><b>File:</b> ' . $exception->getFile() . 
         '<br /><b>Line:</b> ' . $exception->getLine() .
         '<br /><b>Trace:</b><br />' . $exception->getTraceAsString() . '</pre>';     
}
function detectErrorCode($code)
{
    
    switch($code)
    {
        
        case E_ERROR: // 1
            return 'E_ERROR';
        case E_WARNING: // 2
            return 'E_WARNING';
        case E_PARSE: // 4
            return 'E_PARSE';
        case E_NOTICE: // 8
            return 'E_NOTICE';
        case E_CORE_ERROR: // 16
            return 'E_CORE_ERROR';
        case E_CORE_WARNING: // 32
            return 'E_CORE_WARNING';
        case E_CORE_ERROR: // 64
            return 'E_COMPILE_ERROR';
        case E_CORE_WARNING: // 128
            return 'E_COMPILE_WARNING';
        case E_USER_ERROR: // 256
            return 'E_USER_ERROR';
        case E_USER_WARNING: // 512
            return 'E_USER_WARNING';
        case E_USER_NOTICE: // 1024
            return 'E_USER_NOTICE';
        case E_STRICT: // 2048
            return 'E_STRICT';
        case E_RECOVERABLE_ERROR: // 4096
            return 'E_RECOVERABLE_ERROR';
        case E_DEPRECATED: // 8192
            return 'E_DEPRECATED';
        case E_USER_DEPRECATED: // 16384
            return 'E_USER_DEPRECATED';
        default:
            return $code;
    }
    
}
// Ошибки следующих типов не могут быть обработаны пользователем: 
// E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, 
// и большинство E_STRICT ошибок, произошедших в файле, где вызвана функция set_error_handler().

function errorHandler($severity, $message, $filename = NULL, $line = NULL) {
    if (error_reporting() && $severity) {
        throw new ErrorException($message, $severity, 0, $filename, $line);  
    }
    return FALSE;
}

// Небольшой тест

$error = isset($_GET['error']) ? $_GET['error'] : '';

echo ($error == 'e_error' ? 'e_error' : '<a href="?error=e_error">e_error</a>') .
     '<br />' . 
     ($error == 'e_notice' ? 'e_notice' : '<a href="?error=e_notice">e_notice</a>') .
     '<br />' .
     ($error == 'e_warning' ? 'e_warning' : '<a href="?error=e_warning">e_warning</a>') .
     '<br />' .
     ($error == 'e_deprecated' ? 'e_deprecated' : '<a href="?error=e_deprecated">e_deprecated</a>') .
     '<br />' .
     (empty($error) ? 'No error' : '<a href="?">No error</a>');

switch ($error)
{
    
    case 'e_error'://Fatal Error
        undefined_function();
        break;
    case 'e_notice':
        $_GET['undefined'];
        break;
    case 'e_warning':
        strpos();
        break;
    case 'e_deprecated':
        eregi('', '');
        break;
    default: 
    
}
.
Создание превьюшек для изображений
define('FILESDIR', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'img' . DIRECTORY_SEPARATOR);

if (!empty($_POST) && !empty($_FILES))
{

    $error = array();
    $extensions = array('png', 'jpg', 'jpeg', 'gif');
    $fname = $_FILES['file']['name'];
    $fname_ext = explode('.', $fname);

    /* Проверка расширения */
    if (count($fname_ext) != 2)
    {

        $error[] = 'file must have one extension';

    }
    else
    {

        $ext = $fname_ext[1];

    }

    if (!in_array($ext, $extensions))
    {

        $error[] = lng('err_file_ext_2') . '&#160' . implode(', ', $extensions);

    }

    $fname = strtolower($fname);

    if (preg_match("/[^\da-z_\-.]+/", $fname))
    {

        $error[] = 'file name must have only the next symbols: a-z, 0-9, _-.';

    }

    $fname = FILESDIR . $fname_ext[0] . '.' . $ext;

    /* Проверка файла на существование */
    if (file_exists($fname))
    {

        $fname_ext[0] .= '_' . time();
        $fname = FILESDIR . $fname_ext[0] . '.' . $ext;

    }

    if (empty($error))
    {

        /* Загружаем файл */
        if (copy($_FILES['file']['tmp_name'], $fname) === TRUE)
        {

            /* Создаем превью для изображения */
            if (extension_loaded('gd'))
            {

                $imageSize = getimagesize($fname);
                $types = array(1 => 'gif', 2=> 'jpg', 3 => 'png');
                $imageType = array_key_exists($imageSize[2], $types) ? $types[$imageSize[2]] : FALSE;
                if ($imageType !== FALSE)
                {

                    $width = $imageSize[0];
                    $height = $imageSize[1];
                    if ($width > 220 || $height > 176)
                    {

                        switch ($imageType)
                        {

                            case 'gif':
                                $image = imagecreatefromgif($fname);
                                break;
                            case 'jpg':
                                $image = imagecreatefromjpeg($fname);
                                break;
                            case 'png':
                                $image = imagecreatefrompng($fname);
                                break;
                            default:

                        }

                        $max = $width > $height ? 'w' : 'h';
                        $new_width = 176;
                        $new_height = 220;

                        if ($max == 'w' && $width > $new_width)
                        {

                            $new_height = intval(($new_width * $height) / $width);

                        }

                        if ($max == 'h' && $height > $new_height)
                        {

                            $new_width = intval(($new_height * $width) / $height);

                        }

                        $preview = imagecreate($new_width, $new_height);
                        imagecopyresized($preview, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                        imagepng($preview, FILESDIR . $fname_ext[0] . '_preview.png');
                        var_dump($width, $height, $new_width, $new_height);

                    }

                }

            }

            $_SESSION['libFiles'] += 1;
            $_SESSION['files'][$fname_ext[0] . '.' . $ext] = $_FILES['file']['type'];
            echo '<div class="gmenu">File uploaded. <a href="index.php">Repeat</a></div>';

        }
        else
        {

            $error[] = 'Unable to load file';

        }

    }

}
else
{


    echo '<form action="index.php" method="post" enctype="multipart/form-data">' .
         'Choose file:<br /><input type="file" name="file" />' .
         '<input type="submit" name="submit" value="Upload" /></form>' .
         '<p><a href="?show">Show uploaded images</a></p>';

}

if (isset($_GET['show']))
{


    $dir = scandir(FILESDIR);
    unset($dir[0], $dir[1]);
    foreach ($dir as $img)
    {

        echo '<hr />' . $img . '<br /><img src="./img/' . $img . '" alt="" /><hr />';

    }
}

if (!empty($error))
{

    echo implode('<br />', $error) . '<br /><a href="index.php">Continue</a>';

}
Всего: 360