Язык php
#41
Posted 14 February 2008 - 01:07 PM
а ты как замеряешь? первой строкой идет включение таймера и последней подсчет?
#42
Posted 14 February 2008 - 01:15 PM
У меня нет ООП в коде Вообще. Все процедурно, т.е как я тебе и описал ))
Измеряю так:
Первая строчка:
$tm_start = array_sum(explode(' ', microtime()));
...
Последняя строчка:
$secs_total = array_sum(explode(' ', microtime())) - $tm_start;
Источник: http://www.php.net/m...otime.php#76804
#43
Posted 14 February 2008 - 01:44 PM
у меня в общем то получился тот же результат что и с функцией, которую я юзаю
Page processing time: 0.20 sec (0.2068 sec)
в скобках твой вариант.
что в принципе неудивительно, тогда оставлю свой метод
#44
Posted 14 February 2008 - 05:29 PM
echo "<!-- Page generated in ".$total_secs." sec. -->";
Это уже самая последняя строчка
Оффтоп не большой: иногда, при заходе на форум, выдается 500-ая ошибка. Так и должно быть? После рефреша окна все проходит.
Edited by Elkaz, 14 February 2008 - 05:30 PM.
#45
Posted 14 February 2008 - 05:44 PM
это изза мод_фастсжи модуля на апач, он неправильно считывает инфо о процессе фастсжи когда сервер бывает загружен, и выдает 500 ерр, скоро перейду на другой модуль, надеюсь проблема решится.
#46
Posted 14 February 2008 - 05:45 PM
#47
Posted 14 February 2008 - 05:55 PM
ага фастсжи, мы оффтопим
#48
Posted 14 February 2008 - 05:58 PM
#49
Posted 14 February 2008 - 06:06 PM
/**
* Process request.
*
* @param array $_options options to apply to request.
* @param array $_int_options interceptors options.
*/
public function process($_options, $_int_options = array())
{
$_options = PHLControllerInit::_initOptions($_options);
$_int_options = PHLControllerInit::_initOptions($_int_options);
$interceptor = $this->matchInterceptors($_int_options);
$rule = $this->matchRules($_options);
if (count($rule) == 0) {
if ($this->options['last_behavior'] == '404') {
PHLCore::get()->response->status(
'404', 'Controller Rule Not Found', '1.0');
}
else if ($this->options['last_behavior'] == 'exception') {
throw new PHLException('Controller Rule Not Found');
}
exit;
}
$rule = PHLControllerInit::_initRule(
$this->mergeRule($interceptor, $rule));
$context = NULL;
$session = NULL;
try {
if ($rule['session']) {
$this->initSession($rule['session']);
$session = PHLCore::get()->session;
}
$context = $this->initContext($rule);
$this->loadContext($rule['context'], $context);
if ($rule['context']['ref_save']) {
$context->saveReferer();
}
if (isset($rule['context']['name'])) {
$session->set($rule['context']['name']);
}
$ok = true;
if (isset($rule['auth'])) {
$ok = $this->initAuthenticator($rule, $context);
}
$count = isset($rule['processor_set'])
? count($rule['processor_set']) : 0;
if ($ok && $count > 0) {
for ($i = 0; $i < $count; $i++) {
$p = $rule['processor_set'][$i];
if ($this->matchProcessor($p) == false) {
continue;
}
if (isset($p['validate'])) {
$ok = $this->validate($p['validate'], $context);
}
if ($ok && strlen($p['worker']) > 0) {
$res = true;
array_unshift($p['args'], $context);
$res = call_user_func_array(
phlParseCallableName($p['worker']), $p['args']);
$ok = ($res);
if ($ok && $p['authenticator'] && isset($rule['auth'])) {
$ok = $this->authenticate($res, $rule['auth']);
}
if ($ok) {
$this->handleEvent(true,
$p, $rule['context'], $context);
}
}
if ($ok == false) {
break;
}
}
}
if ($ok == false) {
$this->handleEvent(false, $rule, $rule['context'], $context);
}
if (isset($rule['template'])) {
$this->processTemplate($rule['template'], $context);
if ($rule['context']['save']) {
$session->set($rule['context']['name'], $context);
}
}
}
catch(PHLException $ex) {
if (is_null($context)) {
$context = $this->initContext($rule);
}
$context->global_errors->add($ex->getMessage());
if (PHLCore::get()->debug_mode) {
$context->global_errors->add($ex->getDescription());
}
$this->handleEvent(false, $rule, $rule['context'], $context);
if (isset($rule['template'])) {
$this->processTemplate($rule['template'], $context);
if ($rule['context']['save']) {
$session->set($rule['context']['name'], $context);
}
}
else {
throw $ex;
}
}
}
#50
Posted 14 February 2008 - 06:15 PM
Для меня это трудночитаемый код
Спасибо. Пример моего:
function puton ($thing_id, $user_id){
// фильтруем переменные
$thing_id = intval (mysql_real_escape_string ($thing_id));
$user_id = intval (mysql_real_escape_string ($user_id));
// сначала проверяем, имеет ли пользователь достаточное количество статов и уровень
$row = playerinfo ($user_id);
$inf = winfo ($thing_id);
$er = array();
if ($inf['give_power'] < 0) $gpower = $inf['give_power'];
if ($inf['give_intellect'] < 0) $gintellect = $inf['give_intellect'];
if ($inf['give_knowleadge'] < 0) $gknowleadge = $inf['give_knowleadge'];
if ($inf['give_reaction'] < 0) $greaction = $inf['give_reaction'];
if ($inf['give_dodge'] < 0) $gdodge = $inf['give_dodge'];
if ($inf['give_health'] < 0) $ghealth = $inf['give_health'];
$mass = sumall ($user_id);
$S = mysql_query ("SELECT * FROM `".table_weapons."` WHERE wtype = '$inf[wtype]' AND weared = '1' AND owner = '$user_id'");
if ($row['level'] < $inf['need_level']) $er[] = 'Ваш уровень слишком мал';
if ($row['power'] < $inf['need_power']) $er[] = 'У вас не хватает Силы';
if ($row['intellect'] < $inf['need_intellect']) $er[] = 'У вас не хватает Интеллекта';
if ($row['knowleadge'] < $inf['need_knowleadge']) $er[] = 'У вас не хватает Знаний';
if ($row['health'] < $inf['need_health']) $er[] = 'У вас не хватает Здоровья';
if ($row['dodge'] < $inf['need_dodge']) $er[] = 'У вас не хватает Ловкости';
if ($row['reaction'] < $inf['need_reaction']) $er[] = 'У вас не хватает Реакции';
if (($row['power'] * MASS_PARAM) < $mass['mass']) $er[] = 'У вас не хватает свободной массы';
if (mysql_num_rows ($S) != 0 && $inf['wtype'] != 1) $er[] = 'На вас уже надета вещь данного типа';
if (mysql_num_rows ($S) > 2 && $inf['wtype'] = 1) $er[] = 'Вы не можете взять больше 2-ух оружий';
if ($row['power']+$gpower < $inf['need_power']) $er[] = 'Вам не будет хватать Силы';
if ($row['intellect']+$gintellect < $inf['need_intellect']) $er[] = 'Вам не будет хватать Интеллекта';
if ($row['knowleadge']+$gknowleadge < $inf['need_knowleadge']) $er[] = 'Вам не будет хватать Знаний';
if ($row['reaction']+$greaction < $inf['need_reaction']) $er[] = 'Вам не будет хватать Реакции';
if ($row['health']+$ghealth < $inf['need_health']) $er[] = 'Вам не будет хватать Здоровья';
if ($row['dodge']+$gdodge < $inf['need_dodge']) $er[] = 'Вам не будет хватать Ловкости';
if (count ($er) < 1 && !is_weared ($thing_id)){
$power = $inf['give_power'];
$intellect = $inf['give_intellect'];
$knowleadge = $inf['give_knowleadge'];
$health = $inf['give_health'];
$dodge = $inf['give_dodge'];
$reaction = $inf['give_reaction'];
$destruction = $inf['give_mf_destruction'];
$accuracy = $inf['give_mf_accuracy'];
$stability = $inf['give_mf_stability'];
$reservation = $inf['give_mf_reservation'];
$breakdown = $inf['give_mf_breakdown'];
#$hp = $health * 5;
#$give_hp = $hp + $inf['give_hp'];
#$give_psy = $inf['give_psy'];
mysql_query ("UPDATE `".table_weapons."` SET weared = '1' WHERE wid = '$thing_id' and owner = '$user_id'");
mysql_query ("UPDATE `".table_users."` SET power = power + $power, intellect = intellect + $intellect, knowleadge = knowleadge + $knowleadge,
health = health + $health,
dodge = dodge + $dodge, reaction = reaction + $reaction,
destruction = destruction + $destruction, accuracy = accuracy + $accuracy, stability = stability + $stability,
reservation = reservation + $reservation, breakdown = breakdown + $breakdown
WHERE uid = '$user_id'");
redirect_to ("?page=main&m=inventory");
}
else {
echo "<div id='whp_err' style='color: darkred; font-weight: bold;'>";
foreach ($er as $q){
echo $q."<br />";
}
echo "</div>";
}
}
Кусок из библиотеки оружия WarHour
P.s
Сделай подсветку РНР кода что ли Если не трудно
#51
Posted 14 February 2008 - 06:24 PM
это был код из парсера реквест контроллера, а это код из библиотеки одного сайта, на основе контроллера.
function authenticate(PHLRequestContext $context)
{
$RQ = PHLCore::get()->request;
$u = $RQ->param('string', 'u', 'P', '');
$p = $RQ->param('string', 'p', 'P', '');
$user_data = PHLCore::get()->table_admins->executeGetSingleRow(
'select_by_username', array($u));
if (count($user_data) == 0) {
$context->global_errors->add(_I('Username is wrong.'));
return false;
}
if (sha1($p) != $user_data['pasword']) {
$context->global_errors->add(_I('Password is wrong.'));
return false;
}
$context->messages->add(_I('User authenticated successfully.'));
return $u;
}
у каждого свой стиль и предпочтения
я например никогда код sql команд и хтмл код в коде программы не указываю я их разделяю, но опять же, на вкус и цвет
ты сколько лет програмишь?
#52
Posted 14 February 2008 - 06:39 PM
#53
Posted 14 February 2008 - 06:43 PM
include_once ("library/news.inc.php");
$page = (int) $_GET['page'];
$category = (int) $_GET['cat'];
$per_page = 10; // сколько новостей на страницу
if (!empty ($page) && !empty ($category) && $page > 0 && $cat > 0){
show_news ($category, $per_page);
}
Вот как-то так
Я HTML изучал с 12-и лет (курсы при IATP были), потом сам взялся за изучение PHP, C++ и Java. Т.е где-то 3-3.5 года.
#54
Posted 14 February 2008 - 06:52 PM
мне кажется удобнее все таки разделять, потому что сопровождать проще но это тока мое имхо. конечно когда клепаешь сайт из 2-3 паг можно и не париться, но чем больше страничек и модулей, тем больше гимора. стиль где то поменяется, лейаут страницы изменится, или фиг знает еще чего. ну в общем, работая, кому как легче так и делает
ну то что ты показываешь это тож разделение, тока я не про это разделение говорю, делить по модулям тоже хорошо и верно, я про константы в коде, скл команды, и хтмл и цсс коды в пхп коде
#55
Posted 14 February 2008 - 06:54 PM
Согласен
#56
Posted 25 June 2009 - 07:53 AM
#57
Posted 22 January 2011 - 03:56 PM
$twitterInfo = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=Akhundzade';
$twitterCache = CACHE . '/twitter.cache';
if (!is_file ($twitterCache) || (filemtime ($twitterCache) + 3600) < time()){
$Twitter = file_get_contents ($twitterInfo);
if (strlen ($Twitter) > 100){
unlink ($twitterCache);
file_put_contents ($twitterCache, $Twitter, FILE_APPEND);
}
} else {
$Twitter = file_get_contents ($twitterCache);
}
$Twitter = json_decode ($Twitter);
$twitterText = '';
$twitterCounter = 0;
if (!is_null ($Twitter)){
while ($twitterText == ''){
if ($Twitter[$twitterCounter]->in_reply_to_screen_name == ''){
$twitterText = $Twitter[$twitterCounter]->text;
$twitterAvatar = $Twitter[$twitterCounter]->user->profile_image_url;
}
$twitterCounter++;
}
} else {
$twitterText = 'Twitter gateway down...';
$twitterAvatar = 'http://a3.twimg.com/profile_images/1129086105/photo_normal.jpg';
}
Edited by Эльказ, 22 January 2011 - 03:58 PM.
#58
Posted 22 January 2011 - 04:25 PM
socket timeout?
#59
Posted 22 January 2011 - 08:01 PM
0 user(s) are reading this topic
members, guests, anonymous users