Jump to content
php.lv forumi

marcis

Reģistrētie lietotāji
  • Posts

    1,765
  • Joined

  • Last visited

Everything posted by marcis

  1. Īsti neiebraucu loģikā, bet iesaku iepazīties ar if konstrukciju. Ar pēdiņām viss bumbās. Ja netiktu lietotas pēdiņas, tad php meklēju konstanti, nevis padotu stringu. Bezpēdiņu variants vairumā gadījumu strādā, jo php atgriež pieprasītās konstantes nosaukumu, ja tā netiek atrasta.
  2. Man sistēma strādā apmēram šādi. Defaultā valoda ir en. Sākumā nočekojam vai gadījumā lietotājs valodu jau nav izvēlējies - cepums. Tālāk skatamies vai iekš $_SERVER['HTTP_ACCEPT_LANGUAGE'] nav kāda no iespējamām valodām (izņemot en). Ja nekas no iepriekšējā nav izpildījies, tad čekojam pēc IP ( http://api.hostip.info/country.php?ip=xxx ), ja arī IP nesakrīt ar nevienu no valodām, tad metam uz defaulto.
  3. Es nezkāpēc biju iedomājies, bet darbības ar masīviem ir lēnākas, bet reku šeku function rand1(){ $chars = implode(array_merge(range(0, 9), range('a', 'z'), range('A', 'Z'))); $l = strlen($chars)-1; $r = ''; for($i = 0; $i < 5; $i++) $r.= $chars[mt_rand(0, $l)]; return $r; } function rand2(){ /* WINNER */ $chars = array_merge(range(0, 9), range('a', 'z'), range('A', 'Z')); shuffle($chars); return implode(array_slice($chars, 0, 5)); } $t1 = microtime(true); for($i = 0; $i <= 100000; $i++) rand1(); $t2 = microtime(true); for($i = 0; $i <= 100000; $i++) rand2(); $t3 = microtime(true); printf("rand1: %.5f\nrand2: %.5f", $t2-$t1, $t3-$t2); /* 1st try -> rand1: 0.44617 rand2: 0.29068 2nd try -> rand1: 0.46181 rand2: 0.29596 3rd try -> rand1: 0.46633 rand2: 0.30778 */
  4. Tad jau arī nulli varētu padot kā min, ne? $string .= subStr( $characters, mt_rand( 0, strLen( $characters ) )-1, 1 );
  5. Ir. Manuālī arī ir visi jēdzīgākie piemēri :) http://lv.php.net/soap
  6. Palasi substr() manuāli. Tu funkcijai padod tikai 2 argumentus - string un start. Attiecīgi, ja mt_rand() atgriezīs 2, substr() atgriezīs visu tavu simbolu rindu, nogriežot pirmos 2 simbolus. Tev tur substr() vispār nav vajadzīgs: $string.= $characters[rand(0, strlen($characters)-1)];
  7. marcis

    opacity

    Opacity inheritojas no parent elementa un to nevar mainīt child elementiem. Liec fonā puscaurspīdīgu png, tas ir vienkāršākais risinājums.
  8. Ierakstu skaitīšanai ir paredzēta MySQL COUNT() funkcija. Tu šobrīd vienkārši lieki tērē resursus. SELECT COUNT(IF(`type` = 'payment', 1, NULL)) AS `payment`, COUNT(IF(`type` = 'bug', 1, NULL)) AS `bug`, COUNT(IF(`type` = 'advice', 1, NULL)) AS `advice` FROM `report` Šis strādā apmēram tik pat ātri kā skaitīt katru type atsevišķi ar UNION ALL
  9. http://jqueryui.com/demos/accordion/
  10. http://php.lv/f/topic/17496-forums-attiecigo-forumu-izvadisana-sava-kategorija/page__gopid__136903#entry136903 tavā gadījumā viena tabula, bet ideja tā pati
  11. Ar "pēc load()" tika domāta load() callback funkcija: $("#l").load("<?php echo $page;?>", function(){ $("#login, #comment").fancybox(); });
  12. marcis

    Cookies

    Pats sev uzrakstīju šādu risinājumu. OOP FTW. var cookie: { /** * Atgriež cepumu ar norādīto nosaukumu. * * @param string name cookie name * @param mixed def optional default value, false by default */ get: function(name, def){ var r = new RegExp(name+"=([^;]+)", "i"); var m = document.cookie.match(r); return m ? m[1] : (typeof def == "undefined" ? false : def); }, /** * Uzseto cepumu. * * @param string name cookie name * @param string value cookie value * @param int expire optional expiration time (seconds from now), 0 by default (end of session) * @param string path optional cookie path, current by default */ set: function(name, value, expire, path){ var c = name+"="+value; if(typeof expire != "undefined"){ var exd = new Date(); exd.setDate(exd.getDate()+expire); c+= ";expires="+exd.toUTCString(); } if(typeof path != "undefined") c+= ";path="+path; document.cookie = c; } }; cookie.set('aaa', '123'); cookie.get('aaa'); // string 123 cookie.get('bbb'); // bool false cookie.get('ccc', '321'); // string 321 cookie.set('aaa', '', -1); cookie.get('aaa'); // bool false
  13. Paprasim vēlreiz tam no kā dzirdēji un pastāsti mums arī.
  14. e-remit: PHP un unsigned integer neiet kopā. Iekš PHP integeri ir signed. MySQL pusē to protams var lietot, izmantojot INET_ATON() un INET_NTOA().
  15. http://lv.php.net/manual/en/language.operators.increment.php http://lv.php.net/manual/en/language.operators.arithmetic.php http://lv.php.net/manual/en/language.operators.logical.php ++ -> pieskaita +1 un atgriež jauno vērtību %2 -> atgriež dalījuma atlikumu ! -> atgriež pretējo boolean vērtību (ja dalījuma atlikums bija nulle (false), tad šis atgriež true)
  16. array_filter() ftw function odd($var){ static $c = 0; return !(++$c%2); } function even($var){ static $c = 0; return ++$c%2; } $str = 'balts;2;melns;3;sarkans;5'; $tmp = explode(';', $str); $arr = array_combine(array_filter($tmp, 'odd'), array_filter($tmp, 'even')); print_r($arr); /* Array ( [2] => balts [3] => melns [5] => sarkans ) */
  17. Ja nu ļoti gribas regexp :) http://www.iamcal.com/publish/articles/php/parsing_email/ http://www.w3.org/Protocols/rfc822/ $qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]'; $dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]'; $atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+'; $pair = '\\x5c[\\x00-\\x7f]'; $domain_literal = "\\x5b($dtext|$pair)*\\x5d"; $quoted_string = "\\x22($qtext|$pair)*\\x22"; $sub_domain = "($atom|$domain_literal)"; $word = "($atom|$quoted_string)"; $domain = "$sub_domain(\\x2e$sub_domain)*"; $local_part = "$word(\\x2e$word)*"; $expression = "/^$local_part\\x40$domain$/D"; return (bool)preg_match($expression, $var);
  18. Man domāt, ka te runa ir par bildēm, kas dzīvo uz remote servera. Šajā gadījumā īsti labi nav pavisam noteikti nav labi pie skripta izpildes taisīt neskaitāmus pieprasījumus uz remote serveri.
  19. Da nu ņefig tur vēl php bakstīt. Es to risināju ļoti vienkārši klienta pusē (bez šaubām jQuery man palīdzēja): $(function(){ $("#forum .comment_text img").load(function(){ if($(this).width() > 690){ $(this).height(Math.round((690*$(this).height())/$(this).width())).width(690).wrap($('<a />').attr("href", $(this).attr("src")).fancybox()); } }); });
  20. marcis

    cs monitors

    http://developer.valvesoftware.com/wiki/Server_queries
  21. Būtu pieticis ar šo: function setStatus(test){ $("#StatusID"+test).toggleClass("True False"); } P.S. Palasi šito kruto linku http://api.jquery.com/removeClass/ un pievērs uzmanību parametriem
  22. Izvēloties pareizo risinājumu http://www.w3schools.com/css/css_display_visibility.asp
  23. marcis

    Kļuda

    Palasi echo dokumentāciju un varbūt sapratīsi ko tas komats tur īsti dara. Stringu viņš kopā nelīmē, bet atdala parametrus, tāpat kā jebkurai funkcijai.
  24. marcis

    Kļuda

    waplet, komats nav php konkatenācijas simbols. Tikai punkts. Topika autoram links uz dokumentāciju: http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html
  25. Ja domaini ir dažādi, tad bez otras lapas īpašnieku/izstrādātāju piekrišanas tas nebūs iespējams. Jebkurā gadījumā informācija par šo tēmu ir. Google: cross-domain iframs js Ja domaini ir vienādi, tad strādājam kā parasti ar js, izmantojot parent un iframe.contentDocument objektus. Ja ifreima lapa izmanto parent lapas sudomainu, tad var vienkārši uzsetot document.domain un tālāk darboties kā iepriekšējā punktā aprakstīts. Ja nu tev ir vajadzīga tikai daļa informācijas, tad iesaku apsvērt domu par lapas sources ielasīšanu, izpārsēšanu citiem līdzekļiem un kešošanu savā pusē.
×
×
  • Create New...