-
+158
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
$GLOBALS['_utf8win1251'] = array(
"\xD0\x90"=>"\xC0","\xD0\x91"=>"\xC1","\xD0\x92"=>"\xC2","\xD0\x93"=>"\xC3","\xD0\x94"=>"\xC4",
............
"\xD1\x96"=>"\xB3","\xD1\x97"=>"\xBF","\xD1\x94"=>"\xBA","\xD1\x9E"=>"\xA2");
$GLOBALS['_win1251utf8'] = array(
"\xC0"=>"\xD0\x90","\xC1"=>"\xD0\x91","\xC2"=>"\xD0\x92","\xC3"=>"\xD0\x93","\xC4"=>"\xD0\x94",
............
"\xB3"=>"\xD1\x96","\xBF"=>"\xD1\x97","\xBA"=>"\xD1\x94","\xA2"=>"\xD1\x9E");
function utf8_win1251($a) {
// global $_utf8win1251;
if (is_array($a)){
foreach ($a as $k => $v) {
if (is_array($v)) {
$a[$k] = utf8_win1251($v);
} else {
$a[$k] = strtr($v, $GLOBALS['_utf8win1251']);
}
}
return $a;
} else {
return strtr($a, $GLOBALS['_utf8win1251']);
}
}
function win1251_utf8($a) {
// global $_win1251utf8;
if (is_array($a)){
foreach ($a as $k=>$v) {
if (is_array($v)) {
$a[$k] = win1251_utf8($v);
} else {
$a[$k] = strtr($v, $GLOBALS['_win1251utf8']);
}
}
return $a;
} else {
return strtr($a, $GLOBALS['_win1251utf8']);
}
}
а сколько всего...
mb_convert_encoding и array_walk_recursive отменили...
ну или хотя-бы от вложенных if избавиться можно
ivan.borzenkov,
26 Ноября 2009
-
+157.5
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
if($conf['settings']['del_sess']){
$func = create_function('&$val, $key','$val = strtr(stripslashes($val), array("\\\\"=>"\", \'"\'=>""", "\'"=>"'"));');
array_walk ($get = $_GET, $func);
$post = $_POST;
if (isset($post['pass'])) $post['pass'] = 'hide';
if (isset($post['pass2'])) $post['pass2'] = 'hide';
array_walk ($post, $func);
array_walk ($files = $_FILES, $func);
array_walk ($server = $_SERVER, $func);
$request = serialize(array('$_POST'=>$post, '$_GET'=>$get, '$_FILES'=>$files, '$_SERVER'=>$server));
}
Вот так вот борются с magic_quotes
ivan.borzenkov,
26 Ноября 2009
-
+128.8
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
public static T Parse<T>(string txt)
{
if (string.IsNullOrEmpty(txt))
return default(T);
txt = txt.Trim();
Type[] typeArray = new Type[] {
typeof(string),
typeof(T).MakeByRefType()};
MethodInfo mi = typeof(T).GetMethod("TryParse", typeArray);
T value = default(T);
if (mi != null)
{
object[] prms = new object[]{
txt,
value};
if ((bool)mi.Invoke(null, prms) && prms[1] != null)
value = (T)prms[1];
}
return value;
}
Не скажу что это такой уж говнокод, но что то говнистое в нем есть =)
sven47,
26 Ноября 2009
-
+135.6
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
public class Singleton<T> where T : class
{
private static T _Instance = null;
protected static readonly object locker = new object();
public static T Instance
{
get
{
if (_Instance == null)
{
lock (locker)
{
if (_Instance == null)
{
ConstructorInfo[] info = typeof(T).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic);
if (info.Length > 0)
_Instance = (T)info[0].Invoke(null);
}
}
}
return _Instance;
}
}
protected Singleton() { }
static Singleton() { }
}
Вот такой вот универсальный сиглтон нашел в проекте
sven47,
26 Ноября 2009
-
+124.3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
[ $(echo $a|cut -c$((${#a}-1))-) = "gz" ] && echo "Hello, world!"
[ $(echo $a|sed "s/.*\(..\)/\1/") = "gz" ] && echo "Hello, world!"
echo $a|sed -e"s/.*gz$/Hello, world\!/" -et -eD
expr $a : .*gz >/dev/null && echo "Hello, world!"
[ $(expr $a : '.*\(..\)') = "gz" ] && echo "Hello, world!"
echo "ifelse(substr($a,eval(len($a)-2)),gz,\`Hello, world! ')"|m4
case $a in *gz) echo "Hello, world!";; esac
echo $a|emacs -batch -eval '(defun f (arg) "M") (if (string= (substring arg -2) "gz") (princ "Hello, world!\n")) )' -f f
2168-му посвящается...
Задача: Если последние два символа переменной "gz", то вывести "Hello, world!".
Решение проблемы от поклонников разных инструментов. awk, perl и всякие tcl не писал, поскольку там не будет говнокода.
11 строка, то, как обычно пишу я. ИЧСХ, все примеры, кроме последнего, строго соответствуют POSIX.2:)
nil,
26 Ноября 2009
-
+115.9
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
function TFilesStrings.LastSlash(FileString: string): byte;
{*
Функция для вычисления положения последнего слеша в строке
*}
var
i: byte;
begin
Result := 0;
for i := 1 to Length(FileString) do
if (FileString[i] = #92) then Result := i;
end;
{==============================================================================}
{******************************************************************************}
function TFilesStrings.GetPath(FullFileName: string): string;
{*
Функция возвращает оконечный путь у заданному Файлу
*}
var
SlNum: byte;
begin
Result := '';
SlN um := LastSlash(FullFileName);
Result := Copy(FullFileName, 1, SlNum);
end;
Вот ещё вспомнил... Не мог понять почему у меня не работает функция ExtractFilePath, пришлось писать вручную :)
S@nderS,
25 Ноября 2009
-
+92.4
- 1
- 2
if (a<0) or (a=0)
then ...
Почему в универститах вместо того, чтобы ставить автоматы за такие вещи, не оценивают оптимизацию кода?
Теперь понятно почему когда берёшь чьи-нибудь сорцы, пытаешься час понять логику в 10 строчек.
S@nderS,
25 Ноября 2009
-
+156
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
if(strstr($username, '**')) {
$admin = 1;
$username = str_replace('**', '', $username);
$_SESSION['admin'] = 1;
} else {
$admin = 0;
}
Вот нашел случайно... Судя по всему этот кусок в каком-то коммерческом проекте
"Actually, it turns out there’s an even simpler way, and that Adam P’s predecessor discovered and implemented it for their client’s fairly large ecommerce website."
furang,
25 Ноября 2009
-
+156.8
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
#topBlock
<script language="JavaScript">
function process(){}
today = new Date()
if((today.getHours() < 12) && (today.getHours() >= 6)) {background:url('http://site/1.png') top center no-repeat;height:243px;}
if((today.getHours() >= 12) && (today.getHours() < 18)) {background:url('http://site/2.png') top center no-repeat;height:243px;}
if((today.getHours() >= 18) && (today.getHours() <= 23)) {background:url('http://site/3.png') top center no-repeat;height:243px;}
if((today.getHours() >= 0) && (today.getHours() < 6)) {background:url('http://site/4.png') top center no-repeat;height:243px;}
</script>
#tobTable.... ну и дальше неважно
Отчаянная попытка сделать логотип, сменяющий цвет в зависимости от времени суток =) Как выяснилос, поциент вставлял это в CSS. http://helper.ucoz.ru/forum/20-6633
fuckyounoob,
25 Ноября 2009
-
+170.8
- 1
/* Читайте описание, не пожалеете =) */
Коллеги!
Сейчас кода уже нет, но могу объяснить в двух словах, это было гениально!
Интерфейс наподобие CRM с выводом записей в HTML таблицу.
Таблица MySQL с 130 000 записями, без (!) индексов.
Брались ВСЕ 130 000 (!) записей и загонялись в PHP массив!
И потом делалась пагинация с выводом по 20 на странице!
И КАК! Делался цикл по всему (!) массиву, т. е. 1 до 130 000.
И функция, которая проверяла, входит ли $i (индекс цикла) в промежуток типа от ($page-1)*$on_page до $page*$on_page! Если $i наша - выводим, нет - идем дальше (!) по циклу без остановки.
Это похоже на программы со специальной задержкой для видимости бурной вычислительной деятельности, которые делали на Delphi в школе - со StatusBar'ами и Sleep'ами.
Вся эта шняга даже на арендованном сервере работала по 30 секунд.
Про HTML в стиле <font color="red".. size="2" и т. д. - отдельная история.
Создавал это 35-летний штатный программист, получавший непомерную зарплату.
matveev,
25 Ноября 2009