2014 m. lapkričio 21 d., penktadienis
2014 m. lapkričio 3 d., pirmadienis
PHP: XLS(X) to array
Naudojantis phpExcel
<?php function convertXLStoArray($infile, $outfile){ if(!file_exists($infile) || !is_readable($infile) || !file_exists($outfile) || !is_readable($outfile)) return FALSE; $fileType = PHPExcel_IOFactory::identify($infile); $objReader = PHPExcel_IOFactory::createReader($fileType); $objReader->setReadDataOnly(true); $objPHPExcel = $objReader->load($infile); echo $objPHPExcel->getSheetCount(),' worksheet',(($objPHPExcel->getSheetCount() == 1) ? '' : 's'),' loaded<br /><br />'; foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { $arrayData[$worksheet->getTitle()] = $worksheet->toArray(); } var_dump($arrayData); }
2014 m. spalio 14 d., antradienis
Nemokami vektoriai
nemokami vektoriai: http://www.freepik.com/ (1,4 Million Free Graphic Files)
ikonos http://www.flaticon.com/
dalis nemokamų ikonų https://www.iconfinder.com/
ikonos http://www.flaticon.com/
dalis nemokamų ikonų https://www.iconfinder.com/
2014 m. rugpjūčio 19 d., antradienis
QR kodų generavimas su Google Analytics statistika
1. Sugeneruojame URL adresą su google analytics: https://support.google.com/analytics/answer/1033867?rd=2
2. Sutrumpiname URL: http://goo.gl/
3. Generuojame QR kodą: http://www.qrcode-monkey.com/
2. Sutrumpiname URL: http://goo.gl/
3. Generuojame QR kodą: http://www.qrcode-monkey.com/
2014 m. liepos 24 d., ketvirtadienis
Paspaudžiamas fono paveikslėlis
CSS:
body { background-image: url(/images/some_image.jpg); background-attachment: fixed; background-repeat: no-repeat; background-position: center top; cursor: pointer; } #page { cursor: auto; }
JS:
function recordOutboundLink(link, category, action) { _gat._getTrackerByName()._trackEvent(category, action); setTimeout('window.open("' + link + '")', 100); } jQuery(document).ready(function() { jQuery("body").click(function(e) { var target = jQuery(e.target); if (target.attr('id') == 'body_id') { recordOutboundLink('http://www.karlmonaghan.com','outbound', 'karlmonaghan') } }); });
HTML:
<body id="body_id">
Nemokamų iliustracijų šaltiniai
- flickr.com
Vienas didžiausių ir žinomiausių nemokamas nuotraukas talpinančių portalų. Norėdami iš šio portalo atsisiųsti nemokamą nuotrauką, turime pasitikrinti, ar nuotraukos naudojimo teisės nėra apribotos. Portalo paieškos galimybė leidžia nuotraukas filtruoti pagal licenziją. - pixmac.co.uk
Portalas siūlo 42 612 nemokamų nuotraukų. Leidžiama pasirinkti patikusio paveikslėlio dydį. - photl.com
Svetainė siūlo 467 215 nuotraukų. Paveikslėlių paieškos filtras leidžia surasti nuotrauką pagal anglišką raktinį žodį bei spalvą. - imagebase.davidniblack.com
Aukštos kokybės nemokamos nuotraukos portale suskirstytos į kategorijas. - photorack.net
Svetainėje gausu nemokamų nuotraukų bei kitų grafinių elementų. - hooverstock.com
Portale rasime nemokamas nuotraukas bei keletą su šia tema susijusių apmokymų. - free-stockphotos.com
Tai dar viena nemokamų nuotraukų talpykla. Paveikslėliai suskirstyti į kategorijas, arba nuotraukų galime ieškoti pagal raktinius žodžius. - stockvault.net
Šiame puslapyje rasime nemokamų nuotraukų, paveikslėlių, kitų grafikos elementų. - freerangestock.com
Portale susibūrusi fotografų bendruomenė dalinasi nemokamomis nuotraukomis. - photogen.com
Puslapyje siūlomos nemokamos nuotraukos su tam tikrais minimaliais apribojimais. - freedigitalphotos.net
Nemokamos nuotraukos šiame portale surūšiuotos pagal kategorijas. Veikia paieškos sistema. - public-domain-photos.comPortale patalpinta 5 000 nemokamų nuotraukų.
- shutterstock.comPuslapis sudėtos 15 277 169 nemokamomos nuotraukos, iliustracijos bei grafiniai elementai.
- turbophoto.com
Nemokamų nuotraukų talpykla siūlo 2 000 nuotraukų, suskirstytų į 10 kategorijų. - morguefile.com
Svetainė išsiskiria unikaliu pavadinimu bei nemokamų aukštos kokybės nuotraukų gausa. - freepixels.com
Svetainė didžiuojasi, nes joje siūlomos 4 290 nemokamos nuotraukos. - dreamstime.com
Šioje interneto svetainėje rasime 11 milijonų nemokamų paveikslėlių. - creatingonline.com
Interneto portale yra daugiau nei 1 000 nemokamų nuotraukų. - kavewall.com
Nuotraukos, suskirstytos į 18 kategorijų, tam, kad būtų lengviau randamos dominančios, nemokamos iliustracijos. - morguefile.com
Nuotraukas šiame portale rasime paieškos laukelyje įvedę dominantį raktažodį. - adigitaldreamer.com
Portale rasime daugiau nei 1 000 nemokamų nuotraukų, suskirstytų į kategorijas. - openphoto.net
Svetainėje yra 15 221 nemokamų paveikslėlių. - photoeverywhere.co.uk
Daugiau nei 3 000 nemokamų paveikslėlių kelionių tematika. - woophy.com
Nuotraukos iš įvairių šalių. Rasime dominančią vietovės nuotrauką paspaudę ant žemėlapio. - studio7designs.com
Nemokamos nuotraukos gamtos tematika. - cepolina.com
Portale rasime daugiau nei 8 000 kokybiškų, nemokamų nuotraukų. - everystockphoto.com
Šis portalas yra nuotraukų paieškos sistema. - freephotosbank.com
Šiose svetainėje nemokamas nuotraukas talpina įvairūs fotografai. - pdphoto.org
Nemokamų nuotraukų talpykla, kur paveikslėlius gali talpinti visi norintys. - historicalstockphotos.com
Nemokamos nuotraukos iš praeities.
2014 m. liepos 22 d., antradienis
Nustatymas labiausiai apkraunamų puslapių
Tam tikslinga naudoti apachetop komandą. Jos instaliavimas:
yum install apachetop
programa beveik realiame laike analizuoja access logus, todėl jai reikia pateikti kelią iki norimo access logo, pvz: apachetop -f /var/log/virtualmin/manosaitas_access_log
norint stebėti visus savo hostinge esančius access logus, vedame:
apachetop $(find /var/log/virtualmin/ -type f -size +10k -name *access_log -print | sed 's/^/-f '/)
2014 m. liepos 21 d., pirmadienis
Atakų nustatymas ir IP blokavimas
CMD komanda, parodanti, kiek sujungimų pateikia kiekvienas IP:
netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -n
Blokuojami IP adresai saugomi ugniasienės faile /etc/hosts.deny tačiau geriausia įvesti blokuoamus IP per CMD:
# iptables -A INPUT -s 65.55.44.100 -j DROP
# service iptables save
Blokavimui atšaukti:
# iptables -D INPUT -s 65.55.44.100 -j DROP
# service iptables save
Pažiūrėjimui kas blokuojama:
iptables -L -n
Pastaba: kai kurie VDS limituoja iptables irasu limita iki 4000 ir to negalima padidinti ant openVZ platformos, taip pat siojeplatformoje nebeikia ipset listai.
iptables -A INPUT -p tcp -m tcp --dport 22 -m comment --comment "allow SSH to this host from anywhere" -j ACCEPT
Ne visi VDS palaiko rules comment: Depending on your distribution, you may need to load the ipt_comment or xt_comment modules into your running kernel first.
Norint uzblokuoti mysql is isopres:
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP
If you want to remove the filtering, use this:
iptables -D INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -D INPUT -p tcp --dport 3306 -j DROP
ARBA, be iptables galima pasieiti: Add to my.cnf:
skip-networking
Please note you will need to use localhost, not 127.0.0.1, after the change.
netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -n
Blokuojami IP adresai saugomi ugniasienės faile /etc/hosts.deny tačiau geriausia įvesti blokuoamus IP per CMD:
# iptables -A INPUT -s 65.55.44.100 -j DROP
# service iptables save
Blokavimui atšaukti:
# iptables -D INPUT -s 65.55.44.100 -j DROP
# service iptables save
Pažiūrėjimui kas blokuojama:
iptables -L -n
Pastaba: kai kurie VDS limituoja iptables irasu limita iki 4000 ir to negalima padidinti ant openVZ platformos, taip pat siojeplatformoje nebeikia ipset listai.
iptables-save
to dump the current rule set into a file.iptables-save > /etc/sysconfig/iptables
To load the file you don't need to restart the machine, you can use
iptables-restore
iptables-restore < /etc/sysconfig/iptables
Per terminala leidziant komandą, glaima pateikti ir komentara, kaip pvz:iptables -A INPUT -p tcp -m tcp --dport 22 -m comment --comment "allow SSH to this host from anywhere" -j ACCEPT
Ne visi VDS palaiko rules comment: Depending on your distribution, you may need to load the ipt_comment or xt_comment modules into your running kernel first.
Norint uzblokuoti mysql is isopres:
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP
If you want to remove the filtering, use this:
iptables -D INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -D INPUT -p tcp --dport 3306 -j DROP
ARBA, be iptables galima pasieiti: Add to my.cnf:
skip-networking
Please note you will need to use localhost, not 127.0.0.1, after the change.
2014 m. liepos 12 d., šeštadienis
HTML Image MAP online įrankiai
http://www.image-maps.com/
http://imagemap-generator.dariodomi.de/
http://www.outsharked.com/imagemapster/default.aspx?what.html
Išryškinimui naudoti jQuery pluginą: http://davidlynch.org/projects/maphilight/docs/
http://imagemap-generator.dariodomi.de/
http://www.outsharked.com/imagemapster/default.aspx?what.html
Išryškinimui naudoti jQuery pluginą: http://davidlynch.org/projects/maphilight/docs/
2014 m. liepos 3 d., ketvirtadienis
Turinio įkėlimas, jei objektas patenka į viewport
naudoti pluginą: http://remysharp.com/2009/01/26/element-in-view-event-plugin/
2014 m. birželio 30 d., pirmadienis
SSL diegimas Virtualmin aplinkoje
Pirmiausias veiksmas - įgalinti SSL palaikymą: pasirenkame domeną, spaudžiame: Edit Virtual Server -> Enabled feature -> pažymime 'SSL website enabled?' -> Save Virtual Server
Išduodant sertifikatą, reikia sugeneruoti sertifikato užklausą. Einame Server Configuration -> Manage SSL Certificate -> Signing Request , supildome informaciją.
Tuomet, gavę iš tiekėjo raktus, juos instaliuojame: spausti Server Configuration -> Manage SSL Certificate -> New Certificate.
Signed SSL certificate reiškia - Sertifikato raktas
Matching private key reiškia - Privatus raktas
Dar instaliuojame CA šakninį raktą, einame: Server Configuration -> Manage SSL Certificate -> CA Certificate
CA certificate file reiškia - Leidėjo šakninis raktas.
Pasitikrinti, kaip veikia SSL galima čia: https://www.ssllabs.com/ssltest/analyze.html
Išduodant sertifikatą, reikia sugeneruoti sertifikato užklausą. Einame Server Configuration -> Manage SSL Certificate -> Signing Request , supildome informaciją.
Tuomet, gavę iš tiekėjo raktus, juos instaliuojame: spausti Server Configuration -> Manage SSL Certificate -> New Certificate.
Signed SSL certificate reiškia - Sertifikato raktas
Matching private key reiškia - Privatus raktas
Dar instaliuojame CA šakninį raktą, einame: Server Configuration -> Manage SSL Certificate -> CA Certificate
CA certificate file reiškia - Leidėjo šakninis raktas.
Pasitikrinti, kaip veikia SSL galima čia: https://www.ssllabs.com/ssltest/analyze.html
2014 m. birželio 27 d., penktadienis
Dizaino frameworkai HTML/CSS
Bootstrap: http://getbootstrap.com/
Geras lengvas švarus skinas: http://www.creative-tim.com/product/get-shit-done-kit
Geras lengvas švarus skinas: http://www.creative-tim.com/product/get-shit-done-kit
2014 m. birželio 26 d., ketvirtadienis
Įrankis Regexp kodui rašyti ir testuoti
https://regex101.com/
http://txt2re.com/ - tekstą skaido į regexp kodą
http://refiddle.com/ - regexp pavyzdžių užsaugojimui ir testavimui
http://www.rexv.org/ - regexp redaktorius ir testuotojas, turintis daug parinkčių
http://sugartin.info/wp-content/uploads/2011/08/Screen-shot-2011-08-15-at-11.02.39-AM.png - paruoštukė
http://txt2re.com/ - tekstą skaido į regexp kodą
http://refiddle.com/ - regexp pavyzdžių užsaugojimui ir testavimui
http://www.rexv.org/ - regexp redaktorius ir testuotojas, turintis daug parinkčių
http://sugartin.info/wp-content/uploads/2011/08/Screen-shot-2011-08-15-at-11.02.39-AM.png - paruoštukė
PDF to text
Reikia paversti iš PDF (netgi apsaugoto) į tekstą? Teks panaudoti į serverį instaliuojamą programą: http://foolabs.com/xpdf/download.html
Instaliavimas į CentOS: per CMD langą paleidžiame: yum install xpdf antiword
Tuomet paleisti php kodą:
Instaliavimas į CentOS: per CMD langą paleidžiame: yum install xpdf antiword
Tuomet paleisti php kodą:
$tmpfname = tempnam(sys_get_temp_dir(), 'pdftotext');
exec( 'pdftotext pathtopdf.pdf '.$tmpfname );
echo file_get_contents($tmpfname);
2014 m. birželio 17 d., antradienis
2014 m. gegužės 30 d., penktadienis
2014 m. gegužės 23 d., penktadienis
PHP - kaip padaryti aktyvias nuorodas tekste?
function makeClickableLinks($s, $blank = false) {
return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1"'.(($blank===true) ? ' target="_blank"' : '').'>$1</a>', $s); }
2014 m. gegužės 22 d., ketvirtadienis
jQuery - kaip paleisti funkciją, įvykus dinamiškai sukurto objekto įvykiui?
$(document).on( eventName, selector, function(){} );
jQuery - kaip pašaukti norimus veiksmus, kai HTML elementas paslepiamas ar parodomas
sekimo paleidimas:
Pritaikymas konkrečiam elementui:
(function ($) { $.each(['show', 'hide'], function (i, ev) { var el = $.fn[ev]; $.fn[ev] = function () { this.trigger(ev); el.apply(this, arguments); }; }); })(jQuery);
Pritaikymas konkrečiam elementui:
$(function () { $('div').on('hide', function () { alert('div hidden'); }); });
2014 m. gegužės 15 d., ketvirtadienis
PHP - kaip užkoduoti duomenis su raktu, kad jie būtų atkoduojami tik su tuo raktu
$key = 'password to (en/de)crypt'; $string = ' string to be encrypted '; // note the spaces
To Encrypt:$iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM ); $encrypted = base64_encode( $iv . mcrypt_encrypt( MCRYPT_RIJNDAEL_256, hash('sha256', $key, true), $string, MCRYPT_MODE_CBC, $iv ) );
To Decrypt:$data = base64_decode($encrypted); $iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC)); $decrypted = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_256, hash('sha256', $key, true), substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC)), MCRYPT_MODE_CBC, $iv ), "\0" );
2014 m. gegužės 12 d., pirmadienis
PHP klasė išgauti SEO duomenims
Puiki SEO PHP klasė: https://github.com/eyecatchup/SEOstats
SEOstats yra galinga atviro kodo PHP biblioteka išgauti SEO rodiklius: atgalinėms nuorodoms, raktažodžių ir srauto statistika, Google PageRank, Alexa Trafficrank ir daug daugiau. SEOstats siūlo daugiau nei 50 skirtingų metodų ir renka duomenis iš Alexa, Google, Mozscape, SEMRush, Open-Site-Explorer Sistrix, Facebook, Twitter ir daug daugiau.
SEOstats yra galinga atviro kodo PHP biblioteka išgauti SEO rodiklius: atgalinėms nuorodoms, raktažodžių ir srauto statistika, Google PageRank, Alexa Trafficrank ir daug daugiau. SEOstats siūlo daugiau nei 50 skirtingų metodų ir renka duomenis iš Alexa, Google, Mozscape, SEMRush, Open-Site-Explorer Sistrix, Facebook, Twitter ir daug daugiau.
MySQL Backup užsakymas ir siuntimas email
Pasikurkite backup.sh failą su sokiu turiniu:
ir užsakykite CronJob. Šis skriptas autyomatiškai trina 7 dienų senumo backupus. Nustatykite, kad backup aplankas turėtų rašymo teises (644)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #!/bin/sh #this is the prefix before the filename and can be anything you want fileprefix='mysql_backup_'; #this is your mysql user - best to create a new mysql user called backup that has access to all databases myuser='backup'; #your mysql password mypass='s0mething$ecure123'; #the backup directory that you should put at the root, not public_html #chmod 644 the backup folder and leave the trailing slash backupdir='/home/{typically your main cpanel account here without brackets}/backup/'; #more emails can be added by using a , to separate emailto='test@test.com'; #subject of the email emailsubject='mysql backup'; #body of the email emailbody='mysql db backup attached'; #shouldn't need to change below this date=`date '+%Y-%m-%d'`; file=$fileprefix$date.gz; mysqldump -u$myuser -p$mypass --all-databases | gzip > $backupdir$file; find $backupdir -name "$fileprefix*" -mtime +7 -type f -exec rm -rf {} ; echo $emailbody | mutt -s "$emailsubject" -a $backupdir$file "$emailto"; |
2014 m. balandžio 1 d., antradienis
PHP: simple_html_dom : Fatal error
PHP Fatal error: Call to a member function find() on a non-objectJei dirbdami su simple_html_dom susiduriate su tokia klaida, naudokite tikrinimą:
$html = file_get_html( $url ); |
if ( $html && is_object ( $html ) && isset( $html ->nodes)){ |
foreach ( $html ->find( 'img' ) as $img ){ |
//kodas... |
} |
} |
2014 m. kovo 30 d., sekmadienis
Iš Flash (SWF) į HTML5
Įrankis - konverteris: https://www.google.com/doubleclick/studio/swiffy/
paveikslėlių kompresinimui
Dažnai kuriant banerius ar web dizaino elementus, norima suspausti paveikslėlius. Ne visada būtina paleidinėti Photoshop - kartais užtenka tokio online įrankio paveiksėlių optimizavimui: http://tools.dynamicdrive.com/imageoptimizer/index.php#.Uzg439x_vE4
Papildyta (2014-10-07) - https://kraken.io/web-interface - įrankis, apdorojantis daug paveikslų iškart.
Papildyta 2016-01 - https://tinypng.com/
Serverio tool - http://www.saerasoft.com/caesium/
web free api http://jpgoptimiser.com/ ir http://pngcrush.com/
Animated gif? Some pixels do not change, make them transparent: http://www.lcdf.org/gifsicle/
Papildyta (2014-10-07) - https://kraken.io/web-interface - įrankis, apdorojantis daug paveikslų iškart.
Papildyta 2016-01 - https://tinypng.com/
Serverio tool - http://www.saerasoft.com/caesium/
web free api http://jpgoptimiser.com/ ir http://pngcrush.com/
Animated gif? Some pixels do not change, make them transparent: http://www.lcdf.org/gifsicle/
Adobe Flash - ClickTag diegimas
Kuriant Flash reklaminius skydelius, reklamos tinklai tam, kad galėtų skaičiuoti paspaudimus, paprastai reikalauja skydeliuose įdiegti ClickTag palaikymą.
Flash 4, 5, 6 or 7 su ActionScript 2:
on (release) {
if (clickTAG.substr(0,5) == "http:") {
getURL(clickTAG, clickTARGET);
}
}
Flash 8 or 9 su ActionScript 2
on (release) {
if (_root.clickTAG.substr(0,5) == "http:") {
getURL(_root.clickTAG, _root.clickTARGET);
}
}
HTML kodas:
Su embed tag:
<embed src="path_to_swf.swf?clickTAG=http://website-to-open.com&clickTARGET=_blank" width="300" height="250">
Su object tag (rekomenduotina):
<object type="application/x-schockwave-flash" data="path_to_swf.swf" width="300" height="250">
<param name="flashvars" value="clickTAG=http://website-to-open.com&clickTARGET=_blank">
<embed src="path_to_swf.swf" FlashVars="clickTAG=http://website-to-open.com" quality="high" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
Google įrankis SWF to HTML5
https://developers.google.com/swiffy/convert/upload
ClickTAG sluoksnio uždėjmas ant swf banerio:
http://getclicktag.com/get-clicktag/
Užsisakykite:
Pranešimai (Atom)