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

8.3K
.
удалите верхний пост, там быдлокод))
Вот более менее
<?php
// Пример работы с шаблонами
// Класс template позаимствован у mobilecms и немного переделан
require ('template.php');
template::$path = ''; // Путь к шаблонам
$bi = array('one' => 'one'); // Переменные для list.tpl
/**
* "Создаем" блоки
*/
$i = 0;
while ($i < count($bi)) {
    $listb = template::setBlock('list', $bi);
    $i++;
}
// Вставляем блоки в шаблон two.tpl
$vars = array ('listb' => $listb);
// "Создаем" блок из two.tpl
$two = template::setBlock('two', $vars);
// "Вставляем" блок two.tpl в one.tpl
$varso = array ('two' => $two);
template::assign($varso);
// Выводим на экран
template::display('one');

one.tpl
<html><head></head><body style="background: black;color: white;">
<p><div>One.tpl</div><hr/>
<?php echo $two; ?><hr />
<div>End of One.tpl</div></p>
</body></html>

two.tpl
<div style="background: #999999; border: white 1px solid; padding: 4px;">
Two.tpl<hr />
<div style="color: #ff0000">
<?php echo $listb; ?>
</div><hr />End of two.tpl</div>

list.tpl
list.tpl<hr />
<div style="color: red;">
begin:<br />
<?php echo $one; ?>
end;<hr />
End Of List.tpl<hr />
</div>
Прикрепленные файлы:
.
Результат
Прикрепленные файлы:
.
OnLine Quest Game
Вывод знака зодиака в анкете,использовал в своих наработках.
function zodiak($data)
{ //вывод знака зодиака
$day = str_replace("-", "", substr($data, 5));
$zodiak = array(
'ot' => array(
'0120',
'0219',
'0321',
'0421',
'0521',
'0622',
'0723',
'0823',
'0923',
'1024',
'1123',
'1222',
'0101'),
'do' => array(
'0218',
'0320',
'0420',
'0520',
'0621',
'0722',
'0822',
'0922',
'1023',
'1122',
'1221',
'1231',
'0119'),
'zn' => array(
'&deg;Водолей',
'&deg;Рыбы',
'&deg;Овен',
'&deg;Телец',
'&deg;Близнец',
'&deg;Рак',
'&deg;Лев',
'&deg;Дева',
'&deg;Весы',
'&deg;Скорпион',
'&deg;Стрелец',
'&deg;Козерог',
'&deg;Козерог'));
$i = 0;
while (empty($znak) && ($i < 13))
{
$znak = (($zodiak['ot'][$i] <= $day) && ($zodiak['do'][$i] >= $day)) ? $zodiak['zn'][$i] : null;
++$i;
}
return $znak;
}
.
function sravnenie($array, array $default){
if($default){
$out_arr = array();

foreach($default as $key => $val){
if(isset($array[$key])){
if(is_array($val)){
$out_arr[$key] = sravnenie($array[$key], $val);
}else
$out_arr[$key] = $array[$key];
}else
$out_arr[$key] = $val;
}

return $out_arr;
}else
return $array;
}


Ф-ция добавляет нужные ключи => значения (если их нет) из шаблонного массива
Может быть полезной при расшифровке ф-цией unserialize
Пример из форума:

$set_forum = $user_id && !empty($datauser['set_forum']) ? unserialize($datauser['set_forum']) : '';                      // Не ясно что в себе содержит $datauser['set_forum'] и сможет ли ф-ция unserialize правильно расшифровать это и вернет ли она всё что нужно
$set_forum = sravnenie($set_forum, array('farea' => 0, 'upfp' => 0, 'preview' => 1, 'postclip' => 1, 'postcut' => 2));   // Теперь можно быть увенным что к примеру $set_forum['preview'] точно существует ))
.
Mes que un club
Koenig, А можно в файле и в архиве?) Я с телефона и код не до конца вижу
.
(\/)____o_O____(\/)
Gaucer, http://annimon.com/code/?act=view&id=721 снизу ссылка скачать
.
Тупо было бы создавать новую тему!
Просили код на начисления баланса 1 раз в день! если пользователь заходил 1 раз в 24 часа на сайт, ему будет даваться (+)100 баллов!
1.Запрос в базу!
ALTER TABLE `users` ADD `btimes` INT( 11 ) NOT NULL default '0';

Стары баланс не сгорает!
$times = $realtime+86400;
        if($datauser['btimes'] <= $times)
        mysql_query("UPDATE `users` SET `balans` = `balans` + 100, `btimes`='".$realtime."'  WHERE `id` = '". $datauser['manager'] ."' AND `btimes` <= '".$realtime."'");


Старый баланс сгорает!
$times = $realtime+86400;
        if($datauser['btimes'] <= $times)
        mysql_query("UPDATE `users` SET `balans` = '100', `btimes`='".$realtime."'  WHERE `id` = '". $datauser['manager'] ."' AND `btimes` <= '".$realtime."'");
.
Упс прошу изменить в запросах $datauser['manager'] на $datauser['id']
P.S.Та верните вы уже кнопки изменить / удалить!
.
что то давненько не постили сюда
слияние вложенных массивов в один.
вчера очень долго бился головой никак не мог придумать, а сегодня за пару минут все решил.
/**
* $array (array) Массив, который хотим обработать
* $result (array) Результат
*/

function array_join($array, $result = array())
{

    foreach ($array as $key => $val)
    {

        if (is_array($val))
        {

            $result = array_merge($result, $val);
            $result = array_join($result);

        }
        else
        {

            $result[$key] = $val;

        }

    }

    return $result;

}

// Пример использования

$array = array(
    0,1,2,3,4,5,6,7,8,9,
    array(
        11, 22, 33, 44, 55, 66, 77, 88, 99,
        array(111,222,333,444,555,666,777,888,999)
    ),
    array(
        1111,2222,3333,4444,5555,6666,7777,8888,9999,
        array(11111,22222,33333,55555,66666,77777,88888,99999)
    )
);

var_dump(array_join($array));
.
простенькая превью,минут наверно 5 писал.
[code]
<?php
header("content-type: image/gif");
header("Content-Disposition: attachment; filename=wallpaper.gif");
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
#######################
function err($text='unknow error',$w=120,$h=60){
$im=imagecreatetruecolor($w,$h);
$white=imagecolorallocate($im,255,255,255);
imagefill($im,0,0,$white);
$red=imagecolorallocate($im,255,0,0);
imagestring($im,5,0,0,$text,$red);
imagepng($im);
imagedestroy($im);
}
Function imagecreateauto($file){
$arr=getimagesize($file);
$mime=$arr['mime'];
switch($mime){
default:
return false;
break;
case 'image/png':
return imagecreatefrompng($file);
break;
case 'image/jpeg':
return imagecreatefromjpeg($file);
break;
case 'image/gif':
return imagecreatefromgif($file);
break;
case 'image/wbmp':
return imagecreatefromwbmp($file);
break;
}
}


if($_GET['img']){
if(preg_match('/tiled/' ,$_GET['img']){
$im=imagecreatetruecolor($w,$h);
$fill=imagecreateauto($_GET['img']) or die (err('can not open file '.$_GET['img']));
imagesettile($im,$fill);
imagefill($im,0,0,IMG_COLOR_TILED);
imagepng($im);
imagedestroy($im);
exit();
}else{
$bufer=imagecreateauto($_GET['img']) or die (err('can\'t open file '.$_GET['img']));
$ix=imagesx($bufer);
$iy=imagesy($bufer);
$ratio=($ix>$iy) ? $ix/$w : $iy/$h;
$iw=round($ix/$ratio);
$ih=round($iy/ratio);
$im=imagecreatetruecolor($iw,$ih);
imagecopyresampled($im,$bufer,0,0,0,0,$iw,$ih,$ix,$iy);
imagedestroy
($bufer);
imagepng($im);
imagedestroy($im);
exit();
}
?>
[/code]
Всего: 360