- 1
- 2
- 3
if (preg_match("/^([zZ][aA]|[зЗ][аА])$/", $text)) {
//za
} elseif (preg_match("/^([pP][rR][oO][tT][iI][vV]|[пП][рР][оО][тТ]][иИ][вВ])$/", $text)){
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+34.2
if (preg_match("/^([zZ][aA]|[зЗ][аА])$/", $text)) {
//za
} elseif (preg_match("/^([pP][rR][oO][tT][iI][vV]|[пП][рР][оО][тТ]][иИ][вВ])$/", $text)){
Составил кто-то регулярку на проверку в сообщении слов за/za, против/protiv
Обратите внимание как элегантно решена проблемма регистра символов
+34.2
#Проверяем тест браузер
function user_brouser(){
global $HTTP_USER_AGENT;
$agent=$HTTP_USER_AGENT;
if(strlen($agent)>2&&!strstr($agent,'MSIE')){$br="Netscape";}
else{if($agent!=str_replace("Opera","",$agent)){$br="Opera";}
else{$br="IE";}}
if($br!="IE"){
echo"Для корректной работы нашего ресурса требуется Internet Explorer версии не ниже 6.0 !";
exit();
}
}
Вот так вот жестко.
+34
class cxx_query {
elements operator()(const std::string &css_query);
void operator()(std::function<void()> callback);
http_request get(const std::string &url);
// ...
} $;
#define function []
$(function() {
$.get(some_url, function(const std::string &data) {
$("#result").html(data);
});
});
+34
class A
{
public:
unsigned int m_value;
inline bool operator != ( const A & value )
{
unsigned int temp;
temp = 0 != ( m_value != value.m_value );
return 0 == temp;
}
inline bool operator == ( const A & value )
{
unsigned int temp;
temp = 0 != ( m_value == value.m_value );
return 0 != temp;
}
};
Фрагмент кода одной коммерческой библиотеки. Имя класса изменено, 100500 прочих методов вырезано, но они похожи на эти.
Я не буду акцентировать внимание на том, что операторы невозможно использовать для константных объектов, даже не буду говорить о странном способе сравнения целых чисел... Но я упомяну о том, что 'operator !=' работает немножко не так, как руссо-индусы ожидали.
+34
if (date('dmY', $lmtime) === date('dmY')) {
Нужно было узнать, не сегодняшний ли день в отметке $lmtime.
+34
void
XmlRpcDispatch::work(double timeout)
{
...
nEvents = select(maxFd+1, &inFd, &outFd, &excFd, NULL);
...
}
void XmlRpcDispatch::terminate() {
...
XmlRpcSocket::connect(_cmd_sock, "127.0.0.1", port);
...
}
Не то чтобы говнокод, но забавный костыль. А как еще корректно выйти из select'a, ждущего входящих соединений? Создать соединение самому.
+34
int main()
try
{
}
catch (...)
{
}
http://ideone.com/luh8p
+34
#include "xsmell.hpp"
#include <iostream>
TAG(html, NO_ATTRIBS);
TAG(head, NO_ATTRIBS);
TAG(title, NO_ATTRIBS);
TAG(body, NO_ATTRIBS);
TAG(p, NO_ATTRIBS);
TAG(a, ATTRIB(href));
TAG(img, ATTRIB(src), ATTRIB(alt));
int main()
{
using namespace xsmell;
document doc =
_
<html>_
<head>_
<title>"XSMELL demo"<!title>_
<!head>_
<body>_
<p>"Yesssssssssssssssss!"<!p>_
<img .src("chucknorris.png") .alt("sneezing eyes open")>_ <!img>_
<!body>_
<!html>
_;
std::cout << doc << '\n';
return 0;
}
C++ умеет HTML не хуже этих ваших похапешечек ;)
https://bitbucket.org/edd/xsmell/src
+34
foreach($keys as $key)
$settings[$type][$fieldname][$key] = (isset($fl[$type] [$fieldname] ['widget'] [$key] ) ) ? $fl[$type] [$fieldname] ['widget'] [$key] : '';
вобля
+34
void dump_indexes(map<int,stride_slices> picks, ofstream &f);
{
f<<"# full size: "<<picks.size()<<endl;
for(map<int, stride_slices>::iterator
p=picks.begin(); p!=picks.end(); ++p)
{
f<<"## "
<<p->first<<"'st stride slices count: "
<<p->second.size()<<endl;
for(stride_slices::iterator
pp=p->second.begin(); pp!=p->second.end(); ++pp)
{
f<<"### "
<< p->first<<"'st stride, "
<<pp->first<<"'st slice size: "
<<pp->second.size()<<endl;
for(max_slice::iterator
ppp=pp->second.begin(); ppp!=pp->second.end(); ++ppp)
{
f<<"#### "
<<p->first<<"'st stride, "
<<pp->first<<"'st slice, "
<<ppp->first<<"'st chunk size:"
<<ppp->second.size()<<endl;
for(max_chunk::iterator
pppp=ppp->second.begin(); pppp!=ppp->second.end(); ++pppp)
f<<" "
<<p->first<<" "
<<pp->first<<" "
<<ppp->first<<" "
<<pppp->first<<" : "
<<pppp->second<<endl;
}
}
}
}
а как нормально просмотреть кучу вложенных контейнеров?