#911 2012.07.29 02:06

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

werwap написал:

привет, подскажите пожалоста как определить размер папки с файлами public_html/files

Как-то так.

Код:

1
span style="color: #0000BB"><?phpfunction size ($var){ if (is_dir($var)) { $d = dir($var); while (($entry = $d->read()) !== false) { if ('.' == $entry or '..' == $entry or 'php' == pathinfo($entry, PATHINFO_EXTENSION)) continue; $unit = $var . DIRECTORY_SEPARATOR . $entry; if (is_dir($unit)) { //$self = __FUNCTION__; //$result += $self($unit); $result += size($unit); } else { $result += filesize($unit); } } $d->close(); } else { $result = filesize($var); } return $result;}

Отредактировано tipsun (2012.07.29 02:28)

Неактивен

#912 2012.07.29 02:56

werwap
Гость

Re: Общие вопросы по PHP

tipsun, большое спасибо

#913 2012.07.29 10:54

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

werwap, рекурсивно читать папки и файлы в них, складывая размер.

Неактивен

#914 2012.07.29 23:07

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Можете привести пример, когда нужно использовать и как исключения:
не оборачивать же весь код файла в скобки try.

Код:

1
span style="color: #0000BB"><?phpfunction inverse($x) { if (!$x) { throw new Exception('Division by zero.'); } else return 1/$x;}try { echo inverse(5) . "\n"; echo inverse(0) . "\n";} catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n";}// Continue executionecho 'Hello World';

Из примера, я понимаю, что надо использовать когда есть всяко функции и классы.
Но код ими изобилует.
- - - -
Хоть что-то поконкретней

Код:

1
span style="color: #0000BB"><?php try { // код, который может выбросить исключение } catch(Exception $ex) { //$ex - экземпляр класса Exception // или его наследника }

Исключения нужны там, где код не просто вот так в 10 строк умещается, а где есть сложные структура и иерархии классов, каждый содержит тьму методов, где идут всякие делегации-декорации и прочие паттеры. И тогда throw делается в одном месте (где ошибка выявлена), а catch -- где-то далеко-далеко, где эту ошибку могут обработать.

Плюс ко всему, отличие исклчений от die() в том, что исключение на каком-то промежуточном этапе можно поймать, и, на усмотрение, полностью обработать (например, делать insert, а при DbUniqueError делать update; это если нету replace или insert on duplicate update как в MySQL), перевкинуть другое исклоючение (например, заменить DbUniqueError на EmailALreadyUsedError), или сделать окаточный код (например, rollback) и кинуть исходное исключение.

http://wiki.agiledev.ru/doku.php?id=ooa … tion_using
http://i-novice.net/obrabotka-isklyuchi … j-chast-1/

Неактивен

#915 2012.07.30 10:43

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

tipsun, исключения хорошо вписываются в mvc модель. когда модель кидает исключение. а контроллер его перехватывает.

Неактивен

#916 2012.07.30 16:19

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Gemorroj, спс.

Неактивен

#917 2012.07.31 21:18

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

POFIGISST написал:

Млин,возник такой вопрос, есть код javascript всунутый в страницу,но незнаю как сделать функцию if else,вот там кусок кода
Мне нужно сделать,чтоб если переменная например $zz == 2 то чтоб выводило выводило строки смайлов и цветов, а если $zz != 2 то чтоб скрывалась эта панелька со смайлами и цветами,подскажите плиз как в этом случае сделать if else?

Код:

1
span style="color: #0000BB"><?phpecho '</table><br /></td><td class="textmes">';/*******************************************************/?><div class='anput'><script language="JavaScript" type="text/javascript"> function tag(text1, text2) { if ((document.selection)) { document.message.msg.focus(); document.message.document.selection.createRange().text = text1+document.message.document.selection.createRange().text+text2; } else if(document.forms['message'].elements['msg'].selectionStart!=undefined) { var element = document.forms['message'].elements['msg']; var str = element.value; var start = element.selectionStart; var length = element.selectionEnd - element.selectionStart; element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length); document.forms['message'].elements['msg'].focus(); } else document.message.msg.value += text1+text2; document.forms['message'].elements['msg'].focus();}</script><div style="margin:2px;padding:1px;border:1px solid #333">Цвета: <a href="javascript:tag('[red]', '[/red]')"><img src="/style/bb/re.png" alt="red" title="Красный"/></a> <a href="javascript:tag('[green]', '[/green]')"><img src="/style/bb/gr.png" alt="green" title="Зелёный"/></a><a href="javascript:tag('[blue]', '[/blue]')"><img src="/style/bb/bl.png" alt="blue" title="Синий"/></a><br />Cмайлы:<a href="javascript:tag(':-*','')"><img src="/style/smiles/lips.gif" alt=":-*" title=":-*"/></a> <a href="javascript:tag('.ковыр2.','')"><img src="/style/smiles/kovyr2.gif" alt="ковыр" title="ковыр2"/></a><a href="javascript:tag('.ах.','')"><img src="/style/smiles/ah.gif" alt="ах" title="ах"/></a><a href="javascript:tag('.дум.','')"><img src="/style/smiles/dum.gif" alt="дум" title="дум"/></a><a href="javascript:tag('.дружба.','')"><img src="/style/smiles/druzhba.gif" alt="дружба" title="дружба"/></a><a href="javascript:tag(':-D','')"><img src="/style/smiles/biggrin.gif" alt=":-D" title=":-D"/></a><a href="javascript:tag('.ржу.','')"><img src="/style/smiles/rzhu.gif" alt="ржу" title="ржу"/></a><a href="javascript:tag('.неа.','')"><img src="/style/smiles/nea.gif" alt="неа" title="неа"/></a><a href="javascript:tag('.лол.','')"><img src="/style/smiles/lol.gif" alt="лол" title="лол"/></a><a href="javascript:tag('.кофе.','')"><img src="/style/smiles/kofe.gif" alt="кофе" title="кофе"/><a href="javascript:tag('.курит.','')"><img src="/style/smiles/kurit.gif" alt="кур" title="курит"/></a><a href="javascript:tag('.гы.','')"><img src="/style/smiles/gy.gif" alt="гы" title="гы"/></a><a href="javascript:tag('.глаза.','')"><img src="/style/smiles/glaza.gif" alt="глаза" title="глаза"/></a></div></div><?php/*******************************************************/echo "<form method='post' name='message' action='/mail.php?id=$ank[id]&amp;" . rand(1000, 9999) . "' enctype='multipart/form-data'>\n";

Неактивен

#918 2012.07.31 23:27

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

POFIGISST,
так делал?

Код:

1
span style="color: #0000BB"><?phpif ($zz == 2): ?>js code<?phpendif;?>

Неактивен

#919 2012.07.31 23:48

POFIGISST
Участник
Зарегистрирован: 2011.03.20
Сообщений: 1531
Карма: 6
Профиль

Re: Общие вопросы по PHP

tipsun
Спасибо большое,работает))

Неактивен

#920 2012.08.03 23:52

werwap
Гость

Re: Общие вопросы по PHP

привет, у меня сервис сайтов грузит очень БД, можно както испольэовать 2 БД для одного скрипта?

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.027 s