2easy Posted January 28, 2010 Report Share Posted January 28, 2010 (edited) cerams Java atkal nedomās, ka es esmu baigi iedomīgs, ja es pateikšu, ka šādai tabulai varētu pielikt ENGINE=MEMORY, lai visas darbības notiktu daudz ātrāk ^^ P.S. par koda optimizēšanu nebija neviena vārda, tāpēc pārāk stipri nesitiet :D EDIT: oo ir progress! :)) ja jau katrā requestā taisi delete, tad pēc PRIMARY KEY ieliekot arī INDEX (last_seen), būtu pavisam ideāli ;) EDIT2: ejam tālāk ;) šis ir baigi viegli un attiecas vairāk uz function usage $data = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) FROM lietotaji_online")); return (int)$data['COUNT(*)']; -> return (int)mysql_result(mysql_query("SELECT COUNT(*) FROM lietotaji_online"), 0); tātad kad ar while iet cauri daudzām rindām (arī kad paņem vienu rindu ar daudzām kolonnām), tad lieto kādu no mysql_fetch_object() mysql_fetch_assoc() mysql_fetch_row() mysql_fetch_array(), bet ja vajag paņemt tikai vienu vērtību, kā tas ir šajā gadījumā, tad mysql_result() ftw EDIT3: un tad pie reizes no manas puses arī final piezīme ja tiešām gribi pacelt šo funkciju uz next level, tad sql DELETE taisa tikai 1x pa minūti (for performance), jo heavy noslogotām lapām ir ļoti daudz hitu katru minūti, taču info par to, kad kāds aiziet off nav tik svarīga. tb ja vecie dati tiks patīrīti tikai reizi minūtē, nekāda skāde no tā neradīsies ;) taču serverim gan paliks mazliet vieglāk :)) tas tā paliek aktuāli, ja vnlaicīgi pa lapu klikšķinās šākot no pāris simtiem apmeklētāju ^^ vsp pie šāda noslogojuma ir diezgan aktuāli arī kešot kontentu (lai samazinātu sql SELECT skaitu). priekš tam izmanto līdzīgu tabulu Cache (Id, Data, ExpiryDate), kas arī ir ENGINE=MEMORY. bet tā jau ir tēma citai pasaciņai... Edited January 29, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
Pentiums Posted January 29, 2010 Author Report Share Posted January 29, 2010 br2nl - nl2br reverss function br2nl($string) { return preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string); } Quote Link to comment Share on other sites More sharing options...
briedis Posted January 29, 2010 Report Share Posted January 29, 2010 Ja gribas kaut ko nokodēt, lai pēc tam var arī atkodēt :) <?php define('SALT', 'KAUTkaadsR4ndomS4aal5'); function encrypt($text){ return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, SALT, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)))); } function decrypt($text){ return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, SALT, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))); } echo "Nokodēts: " . encrypt("Maikls Dzheksons IR MIRIS!!!") . "<br/>"; echo "Atkodēts: " . decrypt(encrypt("Maikls dzheksons IR MIRIS!!!")); ?> Radās te pašam vajadzība glabāt paroles db ar iespēju atkodēt abos virzienos >) (ne ļaunos nolūkos :D) Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted January 29, 2010 Report Share Posted January 29, 2010 :) es nezinu cik jums tas ļoti interesē, bet lūk shell kodiņš linux ūbiem kuriem ir nepieciešams zināt "draugiem.lv" online cilveku skaitu :) un glabat to skaitu faila ik pec 30 sek until [ 1 -eq 2 ] do wget www.draugiem.lv -O /tmp/dr.txt sed -n '/<div id=\"usrcnt\">/,/<\/div>/p' /tmp/dr.txt | sed -e 's/.*<div id=\"usrcnt\">//' -e 's/<\/div>.*//' -e 's/.*<br \/>.*//g' -e 's/Šobrīd portālā://g' -e 's/\t//g' -e 's/ //g' | sed -e :a -e '$!N; s/\n//g; ta' >>/tmp/drgraph.txt sleep 30 done ja ir vēlme pēc tam var uztaisīt funkciju kura salasa visus rezultātus un padod googlem, http://chart.apis.google.com/chart?cht=lc&chd=t: ... seit visi dati ar komatu atdaliti &chs=660x450&chl=S%C4%81kums|Beigas&chds=0,10000 piemers: http://chart.apis.google.com/chart?cht=lc&chd=t:8540,5839,1245,6345,623,6324,47,632,53,632,5,532,3263,6436,6325&chs=660x450&chl=S%C4%81kums|Beigas&chds=0,10000 Quote Link to comment Share on other sites More sharing options...
waplet Posted February 14, 2010 Report Share Posted February 14, 2010 (empty($sLapa)) ? $sLapa = "sakums" : $sLapa = $sLapa; $pages = array( "sakums" => "citati.php", "kontakti" => "kontakti.php", "info" => "info.php", "ziedotlaiku" => "ziedotlaiku.php", "zinas" => "zinas.php", "unapproved" => "unapproved.php" ); $file_path = "./mape/".$pages[$sLapa]; array_key_exists($sLapa, $pages) ? include $file_path : include ("./mape/citati.php"); Quote Link to comment Share on other sites More sharing options...
2easy Posted February 14, 2010 Report Share Posted February 14, 2010 (edited) ar to ternary operatora lietošanu ir tā, ka lai arī php atļauj iekšpusē veikt piešķiršanu, no lietojamibas viedokļa labāk lai piešķiršana ir 1x, un tas ternary operators tikai izdod vērtību piemēram, šādi būtu "labāk" (imho) $sLapa = empty($sLapa) ? "sakums" : $sLapa; // vsp šādā gadījuma ternary op ir overkill. vnkāršāk ir if (empty($sLapa)) $sLapa = "sakums"; include array_key_exists($sLapa, $pages) ? "./mape/".$pages[$sLapa] : "./mape/citati.php"; anyway, forši, ka pats izdomāji savu web logic kontrolieri. un ka centies lietot tādu novorotu kā ternary op ;) good job ^^ Edited February 14, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
Kavacky Posted February 15, 2010 Report Share Posted February 15, 2010 Kavacky, ja tā, tad lūdzu pielietojuma piemērus studijā! :) Kādreiz rakstīju kaut ko šādu un bija tīri pārskatāmi: !isset($objectType) ? $objectType = 0 : doNothing(); Tagad esmu kko mainījis piegājienā un neatceros, kad šitā būtu darījis iepriekšējo reizi. Quote Link to comment Share on other sites More sharing options...
2easy Posted March 29, 2010 Report Share Posted March 29, 2010 Kādreiz rakstīju kaut ko šādu un bija tīri pārskatāmi: !isset($objectType) ? $objectType = 0 : doNothing(); lol sry par "piesiešanos", bet ternary operators tam nav domāts :D kr4 tas ir good example of ternary operator misuse šādos gadījumos normāli lieto parastu if if (!isset($objectType)) $objectType = 0; ja tomēr par katru cenu gribās ternary operatoru, tad var darīt arī tā $objectType = isset($objectType) ? $objectType : 0; Tagad esmu kko mainījis piegājienā un neatceros, kad šitā būtu darījis iepriekšējo reizi. vo pareizi ^^ Quote Link to comment Share on other sites More sharing options...
Kavacky Posted March 29, 2010 Report Share Posted March 29, 2010 (edited) Tādu "parasto if" man būtu kauns rakstīt. Neredzu nevienu iemeslu, kāpēc daudz sakārtotāks ( šādām īsām darbībām ) ternary operators būtu jāsauc "ja par katru cenu gribas". Edited March 29, 2010 by Kavacky Quote Link to comment Share on other sites More sharing options...
2easy Posted March 29, 2010 Report Share Posted March 29, 2010 (edited) Tādu "parasto if" man būtu kauns rakstīt. lol, man gan ir vnkārši izvēlēties: jo mazāk jāraksta, jo labāk. tipa saskaitu baitus vai pielieku lineālu pie monitora un bez nekāda kauna izvēlos īsāko :D:D:D Edited March 29, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
Pentiums Posted April 3, 2010 Author Report Share Posted April 3, 2010 Standarta teksta apstrāde function tekstaApstrade($s, $length = 0) { return stripslashes(htmlspecialchars(($length > 0 ? (mb_strlen($s) > $length ? mb_substr($s, 0, $length).'...' : $s) : $s), ENT_QUOTES)); } Quote Link to comment Share on other sites More sharing options...
waplet Posted April 3, 2010 Report Share Posted April 3, 2010 function draw_pages($count, $perpage, $atlapa, $offset = 5){ $pages = ceil($count/$perpage); if($pages<2){ return ''; } $r = '<div id="pagination">'; $page = (empty($_GET['lapa']) || $_GET['lapa']<2) ? 1 : $_GET['lapa']; $first = $page >= $offset+1 ? $page-$offset : 1; $last = $page <= $pages-$offset ? $page+$offset : $pages; if($page>1){ $r.= sprintf(' <div class="paginationbutton"> <div class="paginationleft"></div> <div class="paginationmiddle"><a href="/%s/1/#quotewrap">«</a></div> <div class="paginationright"></div> </div> <div class="paginationbutton"> <div class="paginationleft"></div> <div class="paginationmiddle"><a href="/%s/%d/#quotewrap"><</a></div> <div class="paginationright"></div> </div>',$atlapa, $atlapa, $page-1); } for($i=$first;$i<=$last;$i++){ $r.= sprintf(' <div class="paginationbutton%s"> <div class="paginationleft"></div> <div class="paginationmiddle"><a href="/%s/%d/#quotewrap">%d</a></div> <div class="paginationright"></div> </div>', $page==$i ? 'active' : '', $atlapa, $i, $i); } if($page<$pages){ $r.= sprintf(' <div class="paginationbutton"> <div class="paginationleft"></div> <div class="paginationmiddle"><a href="/%s/%d/#quotewrap">></a></div> <div class="paginationright"></div> </div> <div class="paginationbutton"> <div class="paginationleft"></div> <div class="paginationmiddle"><a href="/%s/%d/#quotewrap">»</a></div> <div class="paginationright"></div> </div>', $atlapa, $page+1, $atlapa, $pages); } $r.= '</div>'; return $r; defektologa pagination nedaudz pielabots un taisīts priekš mana mod rewrite.. izsaucas funkcija šadi echo draw_pages($count->c, $perpage,"sakums"); Quote Link to comment Share on other sites More sharing options...
AigarZs Posted April 5, 2010 Report Share Posted April 5, 2010 Samazina attēlu, lai iekļautos norādītajos izmēros. Pārraksta samazināto pa virsu orģinālajam. function imageResize($path,$max_width=300,$max_height=400){ if(!file_exists($path)){ return false; } $max_height = (int)$max_height; $max_width = (int)$max_width; $src_img = imagecreatefromjpeg($path); $x = imagesx($src_img); $y = imagesy($src_img); if(($x >= $y) && ($x > $max_width)){ $picsize = $max_width; $new_w = imagesx($src_img); $new_h = imagesy($src_img); $aspect_ratio = $new_h / $new_w; $new_w = $picsize; $new_h = abs($new_w * $aspect_ratio); } if(($y > $x) && ($y > $max_height)){ $picsize = $max_height; $new_w = imagesx($src_img); $new_h = imagesy($src_img); $aspect_ratio = $new_w / $new_h; $new_h = $picsize; $new_w = abs($new_h * $aspect_ratio); } $dst_img = imagecreatetruecolor($new_w,$new_h); imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); return imagejpeg($dst_img, $path, 80); } Eu kur shis scripts iisti ir jakopē, lai vinsh stradatu? Quote Link to comment Share on other sites More sharing options...
Pentiums Posted April 6, 2010 Author Report Share Posted April 6, 2010 (edited) //te iemetam funkciju.... //te to izsaucam... imageResize('img/bildeKoSamazinam.jpg',100,200); iesaku izglītoties PHP: Functions Edited April 6, 2010 by Pentiums Quote Link to comment Share on other sites More sharing options...
marrtins Posted May 8, 2010 Report Share Posted May 8, 2010 Dabounam atbrīvojušos domēnus no nic.lv Piekonfigurējam: $nic_login, $nic_passw, $mail_to Demonstrē: *) cURL izmantošanu vairākiem pieprasījumiem ar ielogošanos kādā sistēmā *) DOM un DOMXPath izmantošanu HTML parsēšanai http://paste.php.lv/bc0b11730ea8c2987cce426903c5a00a?lang=php Crontabā iekšā, lai izpildās biki pēc 00:00 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.