Jump to content

NeoXidizer

User
  • Posts

    372
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by NeoXidizer

  1. я проверял, порядок не изменяется, да и там далее идет обращение к хешу по ключам, но сами ключи имеют значение, так как на их основе (12, 18 и т.д.) создаются значения. Сделал так: $n = array(2 => '', 5 => '', 8 => '', 12 => '', 18 => ''); array_walk($n, function (&$val, $key, $str) { $c = 0; return $val = sprintf("$c: 1 %d $str; $c: %d 63 $str;", $key, $key + 1); }, $str);$c в будущем будет назначаться в другом месте. Можно ли сделать лучше? В итоге и в перле и у меня получаются одинаковые массивы
  2. он он всегда одинаков, поэтому можно не заморачиваться
  3. не знаю, как на мобильном, но текст ссылки можно выделить, если взяться курсором чуть ниже текста ссылки
  4. это распространенная проблема в DW, сам испытывал когда начинал с него уже давным-давно я искал решение, самое лучшее что рекомендуют - изменить клавиши смены языка
  5. я и не говорю, что они используются повсевместно я проявил недовольство из-за выражения "в HTML5 появились только <footer>, <header> и куда их помещать" и выразил свою точку зрения, что собой представляет HTML5, как меня и попросили а затем ответил на вопрос, где можно найти работу, чтобы эти новые технологии использовались
  6. http://habrahabr.ru/post/140155/ здесь подробно описано про doctype
  7. my %n = map {$_ => sprintf "$c: 1 %d $str; $c: %d 63 $str;", $_, $_+1} 2,5,8,12,18; while ( my ($key, $value) = each(%n) ) { print "$key => $value\n"; }вывод: 8 => 0: 1 8 0 3; 0: 9 63 0 3; 18 => 0: 1 18 0 3; 0: 19 63 0 3; 12 => 0: 1 12 0 3; 0: 13 63 0 3; 2 => 0: 1 2 0 3; 0: 3 63 0 3; 5 => 0: 1 5 0 3; 0: 6 63 0 3; почему не по порядку? и насколько я понял, в этом случае нет разницы между array_map и array_walk?
  8. это просто бонус для верстальщиков, наравне с отсувствием строгости, подобной XHTML Из полезного только History, FileAPI да LocalStorage, остальное сомнительной полезности если так рассуждать, то в компе спикер - абсолютно не нужная и бесполезная вещь или DVD на 4 гб, смотря на текущие цены на флешки по 16гб - тоже абсолютно пустая трата денег, учитывая, что у многих привода и нет вовсе технологии нужны в зависимости от потребностей. Если у вас нет/небыло случаев, в которых нужна геолокация, drag&drop, canvas и т.д., то и эти технологии для вас бесполезны. а другие считают эти (и другие) новшества идеальным решением для их бизнеса К примеру, многие мобильные устройства и браузеры отказались от поддержки Flash проигрователя, а мобильный интернет трафик сейчас имеет очень большой процент, все сидят в соц. сетях, ютюбе и т.д. А как проиграть музыку или видео или запустить игру без flash? на помощь приходит HTML5 Audo, Video, Canvas, WebGL. Тоже самое и с другими технологиями, ведь раз технология появилась, значит была потребность. ладно, HTML - "HyperText Markup Language", но так как HTML подвластен DOM модели, то разметка(HTML) и изменение поведения браузера (Javascript) идут практически взявшись за руки. HTML5 же это общее название новых технологии, среди которых есть и новые правила HTML, и новое JavaScript API, а так как они (HTML и JavaScript) взаимосвязаны и повсевместно используются вместе, я бы сказал, что это эти две технологии неотрывны друг от друга, поэтому я считаю не корректным говорить, что HTML5 это, повторяюсь, Фриланс. Многие технологии уже полноценно поддерживаются последними версиями браузеров, либо через костыли с не очень старыми. А вообще, вы так общаетесь, будто это ваш локальный форум и здесь все друг-друга лично знают. Лично я из Москвы и здесь проблем с работой нет, а у вас даже в персональных данных на форуме не указан город, в котором вы сейчас живете, поэтому как-то помочь вам невозможно. Вообще, есть много студий(команд), которые разрабатывают игры для тех же соц. сетей (фейсбука, вконтакта), во многих из них используют эти технологии. Темболее, вы нарываетесь на большой спрос при большом предложении. Все эти заказы на верстку сметаются за минуты, а заказы с большим бюджетом уходят веб студиям. Реальное портфолио (на заказах) новичку заработать сложновато, а когда заказчик видит одни и теже выполненные работы у нескольких человек (которые создавали свое портфолио по бесплатным общедоступным шаблонам), то к таким людям доверия, как к професионалам, не возникает, имхо Я не отговариваю, просто делюсь своими мыслями.
  9. а как же новое API? Drag&Drop, History, GeoLocation, Canvas, нативное проигрование видео/аудио (без флеша), FileAPI, локальное хранилище (WebStorage), микроданные и т.д; а это просто бонус для верстальщиков, наравне с отсувствием строгости, подобной XHTML
  10. http://gskinner.com/RegExr/ тестер регулярок со встроенной помощью по выражениям
  11. я понимаю, что это тернарные операции, просто не встречался со вложенностью, немного запутало с примером разобрался вроде как, проверка: if ($a == $ return 0; return ($a < $ ? -1 : 1;== return ($a == $ ? 0 : (( $a < $ ? -1 : 1); ? и с =~ разобрался P.S. форум явно делает латинскую b заглавной
  12. для IE нужно задавать line-height со значением указанного height
  13. собственно это и есть новый HTML. жаль, что люди так считают
  14. и честно говоря, не понимаю записи return ($ret = self::cmp(!$matches[3], !$matches[1])) ? $ret : ( ($ret = self::cmp($matches[4], $matches[2])) ? $ret : strcmp($b, $a) );непонимание начинается со второй строки а так же: $refine =~ s/.* (0 \d);//; здесь выполняется preg_match (судя по обращению к найденному в следующей строчке) и preg_replace одновременно. Возможно ли в php такое? Выполнить preg_replace и обратится к тому, что было найдено, не используя preg_match и preg_replace поочереди и вообще, как определить, что =~ выполняет? Ведь может производиться как и просто поиск по шаблону, так и замена, правильно ли я понял? или всегда и поиск и замена? если второе, то это preg_match("/: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/", "$a\n$b", $matches) or die('AAA');не совсем совпадает с тем, что делает perl
  15. уберите музыку, курсор, автозапуск флеш галереии в постах (2 штуки), если возможно лучше - переедьте на свой хостинг и наймите человека, который оптимизирует сжатие, кеширование, а так же подгружайте все картинки со своих доменов не изменяя их размер через HTML (например картинка 500x300, а в вы ее вставляете как <img src width="150"/>, что заставляет браузер ее конвертировать, а это тормозит)
  16. получилось, спасибо большое
  17. <?php // Входной массив $txt = "0: 0 0 0 9;\n0: 1 8 0 0;\n0: 9 63 0 0;\n0: 1 63 1 0;\n"; $old_txt = $txt; echo 'Input:<br>'; print($txt);echo'<br>'; $txt = explode("\n", trim($txt)); echo 'После explode:<br>'; print_r($txt);echo'<br>';echo'<br>'; function cmp($a, $ { if ($a == $ return 0; return ($a < $ ? -1 : 1; } usort($txt, function($a, $ { preg_match("/: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/", "$a\n$b", $matches) or die('died'); echo "<br> a = $a<br>b = $b<br>"; $return = (int) ( (int)cmp(!$matches[3], !$matches[1]) || (int)cmp($matches[4], $matches[2]) || (int)strcmp($b, $a) ); echo "sorting returns: $return <br>"; return (int) ( (int)cmp(!$matches[3], !$matches[1]) || (int)cmp($matches[4], $matches[2]) || (int)strcmp($b, $a) ); } ); echo '<br><br>Output<br>'; print_r($txt);echo'<br>'; $txt = join("\n", $txt); echo 'После implode:<br>'; echo $txt.'<br><br>'; // Сравнение echo 'Сравнение:<br>'; echo $txt.'<br>'; echo $old_txt.'<br>';запуск в браузере: Input: 0: 0 0 0 9; 0: 1 8 0 0; 0: 9 63 0 0; 0: 1 63 1 0; После explode: Array ( [0] => 0: 0 0 0 9; [1] => 0: 1 8 0 0; [2] => 0: 9 63 0 0; [3] => 0: 1 63 1 0; ) a = 0: 1 8 0 0; b = 0: 0 0 0 9; sorting returns: 1 a = 0: 1 8 0 0; b = 0: 9 63 0 0; sorting returns: 1 a = 0: 1 63 1 0; b = 0: 1 8 0 0; sorting returns: 1 a = 0: 0 0 0 9; b = 0: 9 63 0 0; sorting returns: 1 Output Array ( [0] => 0: 9 63 0 0; [1] => 0: 0 0 0 9; [2] => 0: 1 8 0 0; [3] => 0: 1 63 1 0; ) После implode: 0: 9 63 0 0; 0: 0 0 0 9; 0: 1 8 0 0; 0: 1 63 1 0; Сравнение: 0: 9 63 0 0; 0: 0 0 0 9; 0: 1 8 0 0; 0: 1 63 1 0; 0: 0 0 0 9; 0: 1 8 0 0; 0: 9 63 0 0; 0: 1 63 1 0; не думаю, что usort путается темболее echo gettype(cmp(!$matches[3], !$matches[1])); отдает integer если делать вручную usort($txt, function($a, $ { preg_match("/: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/", "$a\n$b", $matches) or die('died'); return 0; // или 1 } );конечный результат все равно искажается (сортируется), скорее потому что в перле return зависит от результата сравнений если вывести все $matches: usort($txt, function($b, $a) { preg_match("/: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/", "$a\n$b", $matches) or die('died'); echo "<br> a = $a<br>b = $b<br>"; $return = (int) ( (int)cmp(!$matches[3], !$matches[1]) || (int)cmp($matches[4], $matches[2]) || (int)strcmp($b, $a) ); echo '<br>0 - <b>'.$matches[0].'</b>'; echo '<br>1 - <b>'.$matches[1].'</b>'; echo '<br>2 - <b>'.$matches[2].'</b>'; echo '<br>3 - <b>'.$matches[3].'</b>'; echo '<br>4 - <b>'.$matches[4].'</b>'; echo "<br>sorting returns: $return<br>"; return $return; } ); то будет такой вывод: a = 0: 0 0 0 9; b = 0: 1 8 0 0; 0 - : 0 0 0 9; 0: 1 8 0 0; 1 - 0 2 - 9 3 - 1 4 - 0 sorting returns: 1 a = 0: 1 8 0 0; b = 0: 1 63 1 0; 0 - : 1 8 0 0; 0: 1 63 1 0; 1 - 1 2 - 0 3 - 1 4 - 0 sorting returns: 1 a = 0: 1 8 0 0; b = 0: 9 63 0 0; 0 - : 1 8 0 0; 0: 9 63 0 0; 1 - 1 2 - 0 3 - 9 4 - 0 sorting returns: 1 a = 0: 9 63 0 0; b = 0: 1 63 1 0; 0 - : 9 63 0 0; 0: 1 63 1 0; 1 - 9 2 - 0 3 - 1 4 - 0 sorting returns: 1 напоминаю результаты регулярки по перлу: returns -1 1 - 0 2 - 9 3 - 1 4 - 0 returns -1 1 - 0 2 - 9 3 - 9 4 - 0 returns 0 1 - 9 2 - 0 3 - 1 4 - 0 результаты регулярки сходятся только на первой итерации и на последней, да и всего у php получается 4 итерации, а не 3
  18. ссылка не открывается почитайте про jQuery Ajax
  19. честное слово, форум сам заменяет http://savepic.su/2166257.png
  20. я увидел с самого начала и перепроверил, все верно $txt = explode("\n", trim($txt)); usort($txt, function($a, $ { preg_match("/: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/", "$a\n$b", $matches) or die(); return self::cmp(!$matches[3], !$matches[1]) || self::cmp($matches[4], $matches[2]) || strcmp($b, $a); } );
  21. хотя на самом деле легко нужно просто разобраться с регуляркой "/: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/"
  22. похоже, скрипт не работает из-за алгоритма сортировки. Perl: print "BEFORE:\n$txt<<<\n\n"; my @txt = sort { "$a\n$b" =~ /: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/ or die; print "a = $a and b = $b\n"; $test = !$3 <=> !$1; print "returns $test\n"; print "0 - $0\n"; print "1 - $1\n"; print "2 - $2\n"; print "3 - $3\n"; print "4 - $4\n"; !$3 <=> !$1 or $4 <=> $2 or $a cmp $b; } split /\n/, $txt; $txt = join "\n", @txt; print "||||||||\n\n\n\n\n";PHP: function cmp($a, $ { if ($a == $ return 0; return ($a < $ ? -1 : 1; } print "BEFORE:\n$txt<<<\n\n"; $txt = explode("\n", trim($txt)); usort($txt, function($a, $ { $str = $a."\n".$b; preg_match("/: *(\d+) .* (\d);\n.*: *(\d+) .* (\d);/", $str, $matches) or die(); print "a = $a and b = $b\n"; $test = cmp(!$matches[3], !$matches[1]); print "returns $test\n"; print "0 - $matches[0]\n"; print "1 - $matches[1]\n"; print "2 - $matches[2]\n"; print "3 - $matches[3]\n"; print "4 - $matches[4]4\n"; return cmp(!$matches[3], !$matches[1]) || ($matches[4], $matches[2]) || ($a, $; } ); $txt = join("\n", $txt); print "||||||||\n\n\n\n\n"; вывод скриптов таков: Perl: BEFORE: 0: 0 0 0 9; 0: 1 8 0 0; 0: 9 63 0 0; <<< a = 0: 0 0 0 9; and b = 0: 1 8 0 0; returns -1 0 - jpegrescan.pl 1 - 0 2 - 9 3 - 1 4 - 0 a = 0: 0 0 0 9; and b = 0: 9 63 0 0; returns -1 0 - jpegrescan.pl 1 - 0 2 - 9 3 - 9 4 - 0 a = 0: 9 63 0 0; and b = 0: 1 8 0 0; returns 0 0 - jpegrescan.pl 1 - 9 2 - 0 3 - 1 4 - 0 ||||||||PHP: BEFORE: 0: 0 0 0 9; 0: 1 8 0 0; 0: 9 63 0 0; <<< a = 0: 1 8 0 0; and b = 0: 0 0 0 9; returns 1 0 >>: 1 8 0 0; 0: 0 0 0 9;<< 1 - 1 2 - 0 3 - 0 4 - 94 a = 0: 9 63 0 0; and b = 0: 1 8 0 0; returns 0 0 >>: 9 63 0 0; 0: 1 8 0 0;<< 1 - 9 2 - 0 3 - 1 4 - 04 |||||||| Краткое заключение: 1. Input одинаков (регулярки работают). 2. $a и $b не соотвествуют друг-другу (они поменялись между собой местами в PHP по сравнению с Perl'ом) 3. Алгоритм сортировки у Perl совершает большей итераций, чем PHP (особенно видно при других входных значениях) 4. Совпадения у preg_match сильно отличаются от тех, что выходят в Perl, поэтому в return идут не те значения. 5. Данный Input после сортировки каким-то образом остается таким же, каким был в оригинале, а в Perl'е с ним тоже ничего не происходит, поэтому изначально я не замечал ошибку, тестировав на одном входящем значении. Но когда я начал тестировать дальше, подав на input другую строку, то вышло следующее, в PHP строка 0: 0 0 0 9; 0: 1 8 0 1; 0: 9 63 0 1; 0: 1 63 1 0;превращается в 0: 9 63 0 1; 0: 0 0 0 9; 0: 1 8 0 1; 0: 1 63 1 0;а в Perlе: 0: 0 0 0 9; 0: 1 8 0 1; 0: 9 63 0 1; 0: 1 63 1 0; проще для сравнения: 0: 0 0 0 9; 0: 1 8 0 1; 0: 9 63 0 1; 0: 1 63 1 0; // оригинал 0: 9 63 0 1; 0: 0 0 0 9; 0: 1 8 0 1; 0: 1 63 1 0; // PHP 0: 0 0 0 9; 0: 1 8 0 1; 0: 9 63 0 1; 0: 1 63 1 0; //Perl дело в том, что сортировка применяется в 3 случаях из 12, либо в 12 случаях из 23 (в зависимости от типа изображения, которое я подаю на съедение программе) а из-за того, что в PHP сортировка не работает, не работает весь скрипт.. Какие-нибудь идеи? вот пример работы сортировки через перл: ||OLD|| 0: 0 0 0 9; 0: 1 8 0 2; 0: 9 63 0 2; 0: 1 63 1 0; 0: 1 63 2 1; ||OLD|| ||NEW|| 0: 0 0 0 9; 0: 1 8 0 2; 0: 9 63 0 2; 0: 1 63 2 1; 0: 1 63 1 0; ||NEW|| ||OLD|| 0: 0 0 0 9; 0: 1 8 0 3; 0: 9 63 0 3; 0: 1 63 1 0; 0: 1 63 2 1; 0: 1 63 3 2; ||OLD|| ||NEW|| 0: 0 0 0 9; 0: 1 8 0 3; 0: 9 63 0 3; 0: 1 63 3 2; 0: 1 63 2 1; 0: 1 63 1 0; ||NEW|| ||OLD|| 0: 0 0 0 0; 0: 1 63 1 0; 0: 1 63 2 1; 0: 1 63 3 2; 0: 1 8 0 3; 0: 9 63 0 3; ||OLD|| ||NEW|| 0: 0 0 0 0; 0: 1 8 0 3; 0: 9 63 0 3; 0: 1 63 3 2; 0: 1 63 2 1; 0: 1 63 1 0; ||NEW|| хотя сомневаюсь, что кто-то здесь поможет, всем будет лень читать весь этот код, а уж темболее думать над сортировкой
  23. дурная регулярка, то работает, то нет... добавьте кнопку "удалить сообщение" >__<
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy