ГлавнаяФорумыЧАТСкрипты/PHP/MySQL/CSS/HTML

Полезные PHP коды

V@dimYch[14] (Off)
[22.06.10, 18:45]
MD5 Decrypter
<?php

function md5_decode($hash){

$ch = curl_init('http://www.md5decrypter.com/index.php');

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, 'hash='.$hash);

$result = preg_replace('#^.+Normal Text: \</b\>(.+?)\n\<br/\>.+$#s', '$1', curl_exec($ch), 1, $count);

curl_close($ch);

return $count ? $result : FALSE;

}

echo md5_decode('adc41cdc9f1515c560ccc70d899c4e42');
?>

Функция "раскодирования" (поиск в базе гг) хеша md5. Возвращает строку. Если результат в базе данных не существует, то FALSE. Используется сервис, который предоставляет сайт md5decrypter.com
V@dimYch[14] (Off)
[22.06.10, 18:46]
Генерируем облако тегов на PHP
<?php

/**

* Tag cloud demo based on word frequency

* @author: unknown

* @since: 2007-02-27

*/



// Store frequency of words in an array

$freqData = array();



// Random words

$lorem = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

Phasellus vestibulum ullamcorper tortor. Aenean quis lacus quis neque

adipiscing ultricies. Pellentesque tincidunt ligula vitae nibh ornare

pharetra. Proin dignissim tortor. Donec et ipsum nec tellus gravida

tempor. Aliquam ullamcorper purus vel felis. Praesent faucibus.

Curabitur porta. Nulla in lorem quis mi lacinia fringilla. Integer

adipiscing mi quis felis. Pellentesque habitant morbi tristique senectus

et netus et malesuada fames ac turpis egestas. Quisque sagittis ante in

arcu. Sed libero enim, venenatis sit amet, vestibulum at, porttitor id,

neque. Vestibulum ornare semper erat. Sed tincidunt nibh et massa. Cras

sed diam. Quisque blandit enim.





Sed nonummy. Aenean mollis turpis quis enim. Nam massa nulla, varius

molestie, aliquet et, feugiat eget, nisi. Sed mollis, leo ut pretium

placerat, nibh turpis egestas ipsum, sed aliquam neque enim in risus.

Nullam nisl. Sed tincidunt leo quis tellus. Mauris non lorem. Aenean

tristique justo at arcu. Fusce et lorem. Nam sodales. Mauris condimentum

diam. Nam commodo. Cum sociis natoque penatibus et magnis dis parturient

montes, nascetur ridiculus mus. Cras ac risus. Proin et dolor laoreet mi

gravida sodales. Duis bibendum, ipsum posuere egestas posuere, dui lacus

feugiat turpis, id tincidunt urna est sit amet est. Cras eu sem.

";



// Get individual words and build a frequency table

foreach( str_word_count( $lorem, 1 ) as $word )

{

// For each word found in the frequency table, increment its value by one

array_key_exists( $word, $freqData ) ? $freqData[ $word ]++ : $freqData[ $word ] = 0;

}



// ==============================================================

// = Function to actually generate the cloud from provided data =

// ==============================================================

function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )

{

$minimumCount = min( array_values( $data ) );

$maximumCount = max( array_values( $data ) );

$spread = $maximumCount - $minimumCount;

$cloudHTML = '';

$cloudTags = array();



$spread == 0 && $spread = 1;



foreach( $data as $tag => $count )

{

$size = $minFontSize + ( $count - $minimumCount )

* ( $maxFontSize - $minFontSize ) / $spread;

$cloudTags[] = '<a style="font-size: ' . floor( $size ) . 'px'

. '" class="tag_cloud" href="http://www.google.com/search?q=' . $tag

. '" title="\'' . $tag . '\' returned a count of ' . $count . '">'

. htmlspecialchars( stripslashes( $tag ) ) . '</a>';

}



return join( "\n", $cloudTags ) . "\n";

}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Tag Cloud Demo</title>
<style type="text/css" media="screen">
/*<![CDATA[*/
.tag_cloud { padding: 3px; text-decoration: none; }
.tag_cloud:link { color: #81d601; }
.tag_cloud:visited { color: #019c05; }
.tag_cloud:hover { color: #ffffff; background: #69da03; }
.tag_cloud:active { color: #ffffff; background: #ACFC65; }
/*]]>*/
</style>
</head>

<body>
<h1>Sample Tag Cloud</h1>
<div id="wrapper">

<?php echo getCloud( $freqData ) ?>


</div>
</body>
</html>
V@dimYch[14] (Off)
[22.06.10, 18:46]
Описание:
Очень красивая каптча))
Автор: Up

<?php

# Created by Up

session_start();

$_SESSION['code']=(string)substr(str_shuffle ('QWERTYUIPASDFGHJKLZXCVBNM123456789'),rand(0,30),4);

$thiz=ImageCreate(72,30); // Размер изображения

imagecolortransparent($thiz,imagecolorallocate ($thiz,0xff,0xff,0xff)); // Прозрачный фон

function imagekub($thiz,$size,$i1,$niz1,$chr=NULL) { $color1=imagecolorallocate($thiz,($l1=rand (150,200)),($l2=rand(150,200)),($l3=rand(150,200)));

$color2=imagecolorallocate($thiz,($l1-50),($l2-50),($l3-50));

$color3=imagecolorallocate($thiz,($l1-100), ($l2-100),($l3-100));

$color4=imagecolorallocate($thiz,($l1+55), ($l2+55),($l3+55));

$niz3=$niz1;

$niz2=($niz1+($b=(12+$size)));

$i2=$i1+(12+$size);

do { imageline($thiz,$i2, (++$niz3),$i1,$niz3,$color2); --$b;

}

while($b>1);

imageline($thiz,$i2,$niz1,$i1,$niz1,$color1);

imageline($thiz,$i1,$niz2,$i1,$niz1,$color1);

imageline($thiz,$i2,$niz1,$i2,$niz2,$color3);

imageline($thiz,$i2,$niz2,$i1,$niz2,$color3);

if($chr!==NULL) { imagechar($thiz,$size,$i1+5,($niz1+ ($size<1?4 $size<2?3:2))),$chr,$color3);

imagechar($thiz,$size,$i1+4,($niz1+ ($size<1?3 $size<2?2:1))),$chr,$color4); } return; }

for($i=0;

$i<20; ++$i) imagekub($thiz,rand(0,2),rand(0,56),rand (0,14),'?');

$o=-1;

for($i=1;

$i<=57;

$i+=1 imagekub($thiz,rand(2,4),$i,rand(0,14),substr ($_SESSION['code'],(++$o)));

ob_start();

ImageGif($thiz);

ImageDestroy($thiz);

header("Content-Type: image/gif");

header('Content-Disposition: inline; filename=code.gif');

header('Content-Length: '.ob_get_length());

ob_end_flush();

?>
V@dimYch[14] (Off)
[22.06.10, 18:47]
Постраничный вывод из MySQL

<?php



$length = 10;

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

$page = abs(intval($_GET['page']));

}

else {

$page = 0;

}

$start = $page * $length;

$q = mysql_query('SELECT * FROM `table`');

$all_msg = mysql_num_rows($q);

$all_page = $all_msg / $length - 1;

function navigation($page, $all_page) {

if($page > 0 && $page <= $all_page)

{ echo '<a href="' . $_SERVER['PHP_SELF'] . '?page=' . ($page - 1) . '">&laquo;Назад</a>'; }

if($page < $all_page)

{ echo '<a href="' . $_SERVER['PHP_SELF'] . '?page=' . ($page + 1) . '">Далее&raquo;</a>'; }

}

?>

Каждый из кодеров рано или поздно сталкивается с такой проблемой, как постраничный вывод контента. Сегодня я попытаюсь рассказать, как вышел из этой проблемы я. Вывод конечно реализован при использовании БД, так как файлы по моему личному мнению несерьезное дело и не превели еще ни одного кодера к чему-нибудь хорошему.
Приведенный код (см. выше) выносим в отдельный файл, например, navigation.php. В странице, где нужна "постраничка", коннектинся к БД, инклудим мой файл и в нужном месте вызываем функцию navigation($page, $all_page); Для выборки записей используем запрос $q = mysql_query("SELECT * FROM `table` LIMIT $start, $length"). Все!
Данный листинг выражает лишь мою реализацию постраничного вывода (урезанного и облегченного для понимания новичком) и не претендует на звание "единственно правильного решения". Писал с телефона, т. ч. описывать много не стал, если есть вопросы - задавайте их в комментариях.
InkMission[78] (Off)
[06.02.11, 22:24]
<?php
/**
* Инвертирование rgb цвета
*/
function color_inverse($color){
$color = substr($color, 1); //отрезаем # от цвета
if (strlen($color) != 6){ return '000000'; } //проверка на длинну
$rgb = '';
for ($x=0; $x<3; $x++){
$c = 255 - hexdec(substr($color, (2*$x), 2));
$c = ($c < 0) ? 0 : dechex($c);
$rgb .= (strlen($c) < 2) ? '0'.$c : $c;
}
return '#'.$rgb;
}

//возьмем для примера желтый
$color = '#FFFF00';
echo "<div style='height:10%; background-color:$color'></div>";
//посмотрим что получится если его инвертировать
echo "<div style='height:10%; background-color:".color_inverse($color)."'></div>";
InkMission[78] (Off)
[06.02.11, 22:25]
объёмная круговая диаграмма

<?

// $im - идентификатор изображения
// $VALUES - массив со значениями
// $LEGEND - массив с подписями
function Diagramm($im,$VALUES,$LEGEND) {
GLOBAL $COLORS,$SHADOWS;

$black=ImageColorAllocate($im,0,0,0);

// Получим размеры изображения
$W=ImageSX($im);
$H=ImageSY($im);

// Вывод легенды #####################################

// Посчитаем количество пунктов, от этого зависит высота легенды
$legend_count=count($LEGEND);

// Посчитаем максимальную длину пункта, от этого зависит ширина легенды
$max_length=0;
// foreach($LEGEND as $v) if ($max_length<strlen($v)) $max_length=strlen($v);

// Номер шрифта, котором мы будем выводить легенду
$FONT=2;
$font_w=ImageFontWidth($FONT);
$font_h=ImageFontHeight($FONT);

// Вывод прямоугольника - границы легенды ----------------------------

$l_width=($font_w*$max_length)+$font_h+10+5+10;
$l_height=$font_h*$legend_count+10+10;


// Получим координаты верхнего левого угла прямоугольника - границы легенды
$l_x1=$W-10-$l_width;
// $l_y1=($H-$l_height)/2;

// Выводя прямоугольника - границы легенды
// ImageRectangle($im, $l_x1, $l_y1, $l_x1+$l_width, $l_y1+$l_height, $black);

// Вывод текст легенды и цветных квадратиков
// $text_x=$l_x1+10+5+$font_h;
// $square_x=$l_x1+10;
/// $y=$l_y1+10;
/*
$i=0;
foreach($LEGEND as $v) {
$dy=$y+($i*$font_h);
ImageString($im, $FONT, $text_x, $dy, $v, $black);
ImageFilledRectangle($im,
$square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1,
$COLORS[$i]);
ImageRectangle($im,
$square_x+1,$dy+1,$square_x+$font_h-1,$dy+$font_h-1,
$black);
$i++;
}
*/
// Вывод круговой диаграммы ----------------------------------------

$total=array_sum($VALUES);
$anglesum=$angle=Array(0);
$i=1;

// Расчет углов
while ($i<count($VALUES)) {
$part=$VALUES[$i-1]/$total;
$angle[$i]=floor($part*360);
$anglesum[$i]=array_sum($angle);
$i++;
}
$anglesum[]=$anglesum[0];

// Расчет диаметра
$diametr=$l_x1-10-10;

// Расчет координат центра эллипса
$circle_x=($diametr/2)+10;
$circle_y=$H/2-10;

// Поправка диаметра, если эллипс не помещается по высоте
if ($diametr>($H*2)-10-10) $diametr=($H*2)-20-20-40;

// Вывод тени
for ($j=20;$j>0;$j--)
for ($i=0;$i<count($anglesum)-1;$i++)
ImageFilledArc($im,$circle_x,$circle_y+$j,
$diametr,$diametr/2,
$anglesum[$i],$anglesum[$i+1],
$SHADOWS[$i],IMG_ARC_PIE);

// Вывод круговой диаграммы
for ($i=0;$i<count($anglesum)-1;$i++)
ImageFilledArc($im,$circle_x,$circle_y,
$diametr,$diametr/2,
$anglesum[$i],$anglesum[$i+1],
$COLORS[$i],IMG_ARC_PIE);
}
$an=0;
$an1=1;
$an2=2;
$an3=3;
$an4=4;
$an5=5;
$an6=6;
// Зададим значение и подписи
$VALUES=Array($an,$an1,$an2,$an3,$an4,$an5,$an6);
$LEGEND=Array("Пон","Вт","Ср","Чет","Пят","Суб","AS");

// Создадим изображения
header("Content-Type: image/png");
$im=ImageCreate(300,300); // размеры

// Зададим цвет фона.
$bgcolor=ImageColorAllocate($im,255,255,255);

// Зададим цвета элементов
$COLORS[0] = imagecolorallocate($im, 255, 203, 3);
$COLORS[1] = imagecolorallocate($im, 220, 101, 29);
$COLORS[2] = imagecolorallocate($im, 189, 24, 51);
$COLORS[3] = imagecolorallocate($im, 214, 0, 127);
$COLORS[4] = imagecolorallocate($im, 98, 1, 96);
$COLORS[5] = imagecolorallocate($im, 0, 62, 136);
$COLORS[6] = imagecolorallocate($im, 0, 102, 179);
$COLORS[7] = imagecolorallocate($im, 0, 145, 195);

// Зададим цвета теней элементов
$SHADOWS[0] = imagecolorallocate($im, 205, 153, 0);
$SHADOWS[1] = imagecolorallocate($im, 170, 51, 0);
$SHADOWS[2] = imagecolorallocate($im, 139, 0, 1);
$SHADOWS[3] = imagecolorallocate($im, 164, 0, 77);
$SHADOWS[4] = imagecolorallocate($im, 48, 0, 46);
$SHADOWS[5] = imagecolorallocate($im, 0, 12, 86);
$SHADOWS[6] = imagecolorallocate($im, 0, 52, 129);
$SHADOWS[7] = imagecolorallocate($im, 0, 95, 145);


// Вызов функции рисования диаграммы
Diagramm($im,$VALUES,$LEGEND);

// Генерация изображения
ImagePNG($im)
?>
InkMission[78] (Off)
[06.02.11, 22:25]
Перевод цвета изображения в Чёрно-белое

<?php
$im = ImageCreateFromJpeg("file.jpg");
$size = getimagesize("file.jpg");
$new = imagecreate($size[0], $size[1]);
$black = imagecolorallocate($new, 0, 0, 0);
$white = imagecolorallocate($new, 0xFF, 0xFF, 0xFF);

for ($i = 1; $i < $size[0]; $i++) {
for ($j = 1; $j < $size[1]; $j++) {
$rgb = ImageColorAt($im, $i, $j);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >>  & 0xFF;
$b = $rgb & 0xFF;
if ( $r < 128 && $r < 128 && $b < 128 ) {
imagesetpixel($new, $i, $j, $black);
} elseif ( $r >= 128 && $r >= 128 && $b >= 128 ) {
imagesetpixel($new, $i, $j, $white);
}
}
}
header("Content-type: image/jpeg");
imagejpeg($new, null, 100);
imagedestroy($im);
imagedestroy($new);
?>
InkMission[78] (Off)
[06.02.11, 22:26]
Получаем все картинки со страницы

<?php
$url = "Нужный адрес";
$images = array();
preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media);
unset($data);
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3" ,$media[0]);
foreach($data as $url)
{
$info = pathinfo($url);
if (isset($info['extension']))
{
if (($info['extension'] == 'jpg') ||
($info['extension'] == 'jpeg') ||
($info['extension'] == 'gif') ||
($info['extension'] == 'png))
array_push($images, $url);
}
}
?>
InkMission[78] (Off)
[06.02.11, 22:27]
Применение Google Image Api
<?php
/**
* Применение Google Image Api
* автор: Nc_SOft
* 25.11.09
*/

/*
Не знаю как вас, а меня изрядно подзаебали умники, продающие
"воздух" под громким названием глобальный поиск картинок
*/

$search = 'Сиськи Семенович';
$json = file_get_contents('http://ajax.googleapis.com/ajax/services/search/images?v=1.0&rsz=large&q='.urlencode($search).'&start=0');
$data = json_decode($json);

//смотрим с чем имеем дело
//print_r($data);
//и на вывод

?><div>результатов: <?=$data->responseData->cursor->estimatedResultCount;?></div>
<?php foreach ($data->responseData->results as $v) : ?>
<div><a href="<?=$v->unescapedUrl;?>"><img src="<?=$v->tbUrl;?>" /></a></div>
<?php endforeach;

//для самостоятельной работы:
//http://code.google.com/intl/ru/apis/ajaxsearch/documentation/reference.html#_intro_fonje
InkMission[78] (Off)
[06.02.11, 22:27]
Вывод картинок из директории

<?php
$dir = "/img/" /Откуда

if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "<img src="$file" /">;
}
closedir($dh);
}
}
?>
Последние ответы