- 1
- 2
- 3
- 4
$p = array(1,0,0,0,0,0,0,0,0,0); // вероятность 1/10
$a = array();
for($i=0; $i<100; $i++)
$a[] = $p[mt_rand(0, count($p)-1)];
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+170
$p = array(1,0,0,0,0,0,0,0,0,0); // вероятность 1/10
$a = array();
for($i=0; $i<100; $i++)
$a[] = $p[mt_rand(0, count($p)-1)];
Это — заполнение массива случайными значениями с заданной вероятностью 1 к 10. =)
+164
RewriteRule ^tn_([0-9]*)x([0-9]*)_([a-z]+)_([0-9]*)_([0-9]+)_(.*)_([c]*)_([f]*)_([0-9]*).[a-z]*$ перенос
/index.php?exception=imageModification&width=$1&height=$2&module=$3&id=$4&time=$5&name=$6&crop=$7&force=$8&query=$9&file_name=%{REQUEST_URI} [L]
В .htaccess:
Победа над ресайзом картинок. Чуваки еще не успели ощутить на себе всю мощь ананимуса
+170
<?php if ( $row->type ){ ?>
<?php if ( $row->type==1 ){ ?><?php echo _EZREALTY_TYPE_SALE;?><?php } ?>
<?php if ( $row->type==2 ){ ?><?php echo _EZREALTY_TYPE_RENTAL;?><?php } ?>
<?php if ( $row->type==3 ){ ?><?php echo _EZREALTY_TYPE_LEASE;?><?php } ?>
<?php if ( $row->type==4 ){ ?><?php echo _EZREALTY_TYPE_AUCTION;?><?php } ?>
<?php if ( $row->type==5 ){ ?><?php echo _EZREALTY_TYPE_SWAP;?><?php } ?>
<?php if ( $row->type==6 ){ ?><?php echo _EZREALTY_TYPE_TENDER;?><?php } ?>
<?php } ?>
Компонент joomla ezrealty)
+232
echo "Для разлагинивания почистите куки браузером.<br>";
Взяли новичка на испытательный срок. При нажатии на кнопку "Выход" наблюдаю данную надпись.
+164
$update = !empty($id) and $id > 0;
Вопреки ожиданиям автора, выражение $id > 0 вообще никогда не принимается во внимание.
/* Ознакомьтесь с приоритетом операций */
Сначала отработает $update = !empty($id)
потом значение из $update будет сравниваться с $id > 0 и результат сравнения никуда не попадёт.
Рекомендация: используйте && вместо оператора "and".
+162
<?php
function is_get($id) {
return (count(array_unique(str_split($id))) == 1);
}
?>
Гет или не гет?)
+159
<?php
//////////
static function AddKeyDis($meta_key,$meta_dis=null){
if(is_array($meta_key)){
return self::$result=array("meta_key"=>$meta_key['meta_key'],"meta_dis"=>$meta_key['meta_dis']);
}elseif($meta_dis!==null){
return self::$result=array("meta_key"=>$meta_key,"meta_dis"=>$meta_dis);
}
return null;
}
//////////
?>
эх =)
+160
<?php
class UserSessionComponent extends Component {
//...
protected function loginByUserId($user_id, $is_autologin = false) {
$list = $this->_loadComponents($this->components, array('UserAuth'));
$userAuth = $list['UserAuth'];
$userAuth->startup($this->controller); # !!! WORKFLOW VIOLATION !!!
$method = $is_autologin ? 'autologin' : 'login';
if ($userAuth->$method($user_id)) {
return $this->controller->Session->read('User.data');
}
}
//...
}
class UserAuthComponent extends BaseMagicComponent {
protected $loginType = 'explicit';
//...
public function autologin($params = array()) {
$this->loginType = 'implicit';
return $this->_login($params);
}
public function login($params = array()) {
$this->loginType = 'explicit';
return $this->_login($params);
}
//...
protected function _login($params = array()) {
switch (true) {
case (is_array($params) && isset($params['user']) && isset($params['password'])):
$result = $this->loginByUserAndPassword($params['user'], $params['password']);
break;
case (is_numeric($params) && $params > 0):
$result = $this->loginUser($params);
break;
default:
if (empty($params)) {
$result = false;
} else {
$result = $this->loginUser($params);
}
}
// ...
}
// ...
public function loginUser($user) {
switch (true) {
case is_object($user):
if (isset($user->data)) {
$a_user = $user->data;
} else {
return false;
}
break;
case (is_numeric($user) && ($user > 0)):
if (!($a_user = $this->User->findById($user))) {
return false;
}
break;
case (is_array($user) && (isset($user['User']['id']))):
$a_user = $user;
break;
default:
return false;
}
// ...
CFL::using('log');
if (empty($GLOBALS['loginIsLogged'])) {
$loginLog = new cflLoginTrackingLogger();
if ($this->loginType == 'implicit') {
$loginLog->implicit_login(array('user_id' => $a_user['User']['id']));
} else {
$loginLog->explicit_login(array('user_id' => $a_user['User']['id']));
}
$GLOBALS['loginIsLogged'] = true;
}
// ...
}
}
Сорри за много-много кода, еле-еле вписался в лимит. Но пришлось запостить все. Логическая цепочка совершенно потрясающая (смотрим с самого верхнего метода и идем дальше к самому нижнему методу). Тут у нас кода просто по колено: сумасшедший пахлава-код, использование глобальной переменной флага, особое извращенное использование конструкции switch, фактическое дублирование этого самого switch в двух последних методах, нейминг переменных и методов...
Казалось бы, как все это вообще могло быть написано? Но использование компонента с говорящим именем BaseMagic все ставит на свои места.
+161
// функция с именем is_url, передаваемые ей перем.: $url.
function is_url($url)
{
// если ничего не ввели, иначе:
if($url == "") return 0;
// если не соответствует стандарту, возвращаем ошибку.
if(!(ereg("\.", $url) && ereg("http://", $url) && ereg("/", str_replace("http://" , "", $url)))) return 0;
else return 1;
}
Проверка URL на валидность (http://www.snippy.ru/snippet/213/)
+158
function changeType(what) {
if (what == "forward") {
if (document.forms[0].elements['forward_list'].disabled == true) {
document.forms[0].elements['forward_list'].disabled = false;
} else {
document.forms[0].elements['forward_list'].disabled = true;
}
}
}
Есть замечательная ispCP и форма для настройки форвардинга е-мэйлов. Тут описывается поведение чек-бокса для включения формы.