чета ваще не по теме флудня пошла …
ты сам только что не в тему написал
чета ваще не по теме флудня пошла …
ты сам только что не в тему написал
и я тоже
Форум → Программирование → PHP для идиотов → PHP и ООП → Как начать понимать в ООП или что почитать для самых непонимающих
Страницы: ← Предыдущая страница • Следующая страница →
Ноя. 17, 2009, 7:24 д.п., спустя 4 часа 53 минуты 21 секунду
чета ваще не по теме флудня пошла …
чета ваще не по теме флудня пошла …
ты сам только что не в тему написал
Ноя. 17, 2009, 9:24 д.п., спустя 1 час 59 минут 51 секунду
а как вот к примеру эту функцию можно былобы на ООП написать…
Ноя. 17, 2009, 10:10 д.п., спустя 45 минут 41 секунду
function avatar($id)
{
if (is_file("user/avatars/".$id.".gif"))
$size=getimagesize("user/avatars/".$id.".gif");
if($size[0]>200 && $size[1]>200) { $hw="WIDTH=200 HEIGHT=200"; } else { $hw=""; }
if (is_file("user/avatars/".$id.".jpg"))
$size=getimagesize("user/avatars/".$id.".jpg");
if($size[0]>200 && $size[1]>200) { $hw="WIDTH=200 HEIGHT=200"; } else { $hw=""; }
if (is_file("user/avatars/".$id.".png"))
$size=getimagesize("user/avatars/".$id.".png");
if($size[0]>200 && $size[1]>200) { $hw="WIDTH=200 HEIGHT=200"; } else { $hw=""; }
if (is_file("user/avatars/".$id.".gif"))
echo "<img src='user/avatars/".$id.".gif' ".$hw." alt='' />\n";
elseif (is_file("user/avatars/".$id.".jpg"))
echo "<img src='user/avatars/".$id.".jpg' ".$hw." alt='' />\n";
elseif (is_file("user/avatars/".$id.".png"))
echo "<img src='user/avatars/".$id.".png' ".$hw." alt='' />\n";
else {
echo "<img src='user/avatars/noava.gif' WIDTH=200 HEIGHT=200 alt='аватар' />\n";
}
}
<?
class Avatar {
private $id;
public __construct($id)
{
$this->id = $id;
}
function imgTag($path, $maxW, $maxH = false, $alt="")
{
$path = sprintf($path, $this->id);
$maxH = $maxH ? $maxH : $maxW;
if (is_file($path))
{
$size=getimagesize("user/avatars/".$id.".gif");
if($size[0]>$maxW && $size[1]>$maxH) {
$hw="WIDTH=\"$maxW\" HEIGHT=\"$maxH\"";
}
else
{
$hw="";
}
return "<img src=\"$path\" $hw alt='".htmlspecialchars($alt)."' />\n";
}
return "";
}
}
class UserAvatar extends Avatar {
function avatar($id)
{
if($img = $this->imgTag("user/avatars/%s.gif",200))
{
echo $img;
}
elseif($img = $this->imgTag("user/avatars/%s.jpg",200))
{
echo $img;
}
elseif($img = $this->imgTag("user/avatars/%s.png",200))
{
echo $img;
}
else {
echo "<img src='user/avatars/noava.gif' WIDTH=200 HEIGHT=200 alt='аватар' />\n";
}
}
Ноя. 17, 2009, 6:12 п.п., спустя 8 часов 2 минуты
заеабало что питон называют пайтоном … или я урод или мир уроды … кто рассудит … :)
Ноя. 17, 2009, 6:18 п.п., спустя 6 минут 7 секунд
class UserAvatar extends Avatar {
private avatars = array('gif','jpg','png')
function avatar($id)
{
$i=0;
while(!is_file($file = $this->imgTag("user/avatars/%s.".$this->avatars[$i++],200));
if ($file)
echo $file ;
else
echo "<img src='user/avatars/noava.gif' WIDTH=200 HEIGHT=200 alt='аватар' />\n";
}
}
Ноя. 17, 2009, 6:22 п.п., спустя 3 минуты 53 секунды
Ноя. 17, 2009, 6:27 п.п., спустя 4 минуты 55 секунд
$this->avatars[$i++] && !is_file($file = $this->imgTag("user/avatars/%s.".$this->avatars[$i],200)
for($i=0;$this->avatars[$i] && !is_file($file = $this->imgTag("user/avatars/%s.".$this->avatars[$i],200);i++);
if ($file)
echo $file ;
else
echo "<img src='user/avatars/noava.gif' WIDTH=200 HEIGHT=200 alt='аватар' />\n";
Ноя. 17, 2009, 6:35 п.п., спустя 7 минут 44 секунды
for($i=0;$this->avatars[$i] && ($file = $this->imgTag("user/avatars/%s.".$this->avatars[$i],200));i++);
if ($file)
echo $file ;
else
echo "<img src='user/avatars/noava.gif' WIDTH=200 HEIGHT=200 alt='аватар' />\n";
Ноя. 18, 2009, 6:55 д.п., спустя 12 часов 19 минут 16 секунд
Ноя. 18, 2009, 8:51 д.п., спустя 1 час 56 минут 24 секунды
phpdude, пример говно :) Зачем плодить такие микро-классы? Понятно, что в реальной системе кроме аватары есть еще кое что, поэтому…
imho:
Метод imgTag() просится в более общий класс Картинка или МенеджерКартинок. Если аватары пользователя и группы разные - добавим метод avatar() в классы Пользователь и Группа (логично порождать их от общего абстрактного родителя - не только ради аватара). Обходимся без ТРЕХ ЛИШНИХ УЕБАНСКИХ КЛАССОВ.
Ноя. 18, 2009, 3:14 п.п., спустя 6 часов 22 минуты 39 секунд
а как вот к примеру эту функцию можно былобы на ООП написать…function avatar($id)
{
if (is_file("user/avatars/".$id.".gif"))
$size=getimagesize("user/avatars/".$id.".gif");
if($size[0]>200 && $size[1]>200) { $hw="WIDTH=200 HEIGHT=200"; } else { $hw=""; }
if (is_file("user/avatars/".$id.".jpg"))
$size=getimagesize("user/avatars/".$id.".jpg");
if($size[0]>200 && $size[1]>200) { $hw="WIDTH=200 HEIGHT=200"; } else { $hw=""; }
if (is_file("user/avatars/".$id.".png"))
$size=getimagesize("user/avatars/".$id.".png");
if($size[0]>200 && $size[1]>200) { $hw="WIDTH=200 HEIGHT=200"; } else { $hw=""; }
if (is_file("user/avatars/".$id.".gif"))
echo "<img src='user/avatars/".$id.".gif' ".$hw." alt='' />\n";
elseif (is_file("user/avatars/".$id.".jpg"))
echo "<img src='user/avatars/".$id.".jpg' ".$hw." alt='' />\n";
elseif (is_file("user/avatars/".$id.".png"))
echo "<img src='user/avatars/".$id.".png' ".$hw." alt='' />\n";
else {
echo "<img src='user/avatars/noava.gif' WIDTH=200 HEIGHT=200 alt='аватар' />\n";
}
}
А как ты написал эту функцию и с какой целью?
Дек. 4, 2009, 6:18 п.п., спустя 16 дней 3 часа 3 минуты
<?
//скрипт добавление файла
#подгружаем доп файлы#
include_once 'sys.php';
######################
$smarty->assign("title","Загрузка файлов");
$smarty->assign("test",$_POST['name']);
$filename = $_FILES['uf']['name'];
$time=time();
class FileUplaod
{
var $types = array('.jpg','.gif','.png','.mp3','.zip','.rar','.jar');
var $filename;
var $dir="files/";
var $time;
//Получаем расширение сравниваем расширение файла с допустимым
function ras($filename)
{
$this->filename = $filename;
$ras = substr($this->filename, strpos($this->filename,'.'), strlen($this->filename)-1);
if(!in_array($ras,$types)) die ('Данный тип файла не поддерживается!');
}
function newFile($time,$dir)
{
$savefile=$dir.$time."_".$ras;
}
function saveNewFile()
{
if(copy($_FILES['uf']['tmp_name'],$savefile))
{
echo "Файл успешно загружен в альбом!";
} else {
echo "Во время загрузки произошла ошибка!";
}
}
}
$obj = new FileUplaod;
$obj->ras();
$obj->newFile();
$obj->saveNewFile();
$smarty->display('add_file.tpl');
?>
<?
require('smarty/Smarty.class.php');
$smarty = new Smarty;
?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<title>{$title}</title>
<link rel="stylesheet" href="templates/style.css" type="text/css" />
</head>
<body>
<div class="body">
{$test}
<form method="post" action="add_file.php">
Название<div><input type="text" name="name" /></div>
Описание<div><textarea name="des" cols="20"></textarea></div>
Автор<div><input type="text" name="autor"/></div>
Файл<div><input type="file" name="uf" id="file" style="width:150px;"/></div><br />
<input type="submit" value="Добавить"/>
</form>
</div>
</body>
</html>
Дек. 4, 2009, 6:44 п.п., спустя 25 минут 59 секунд
$obj->ras();
туда надо передать $filename in_array($ras,$types)
надо in_array($ras,$this->types)
strlen($this->filename)-1
это нафига? strpos($this->filename,'.')
В вашем случае надо искать с конца, а то названия "bla.blabla.zip" не пройдет if(copy($_FILES['uf']['tmp_name'],$savefile))
надо if(copy($_FILES['uf']['tmp_name'],$this->savefile))
и тут $savefile=$dir.$time."_".$ras;
надо $this->savefile=$dir.$time."_".$ras;
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!