Archive for the “Coding” Category

Narazil jsem na zajimavy problem tykajici se funkce v php fgtecsv() kdy mi to prvni ceske pismeno nebralo a do db se pak importovalo spatne.

Napr. část obce se vlozila do db jako st obce. Nebo ŽĎár nad sázavou se do db vlozil jak r nad sazavou. Vrtalo mi to hlavou, zkousel jsem predelavat csv soubor do ruzneho kodovani a nepomohlo to.

Nahradil jsem kod s fgetscv za explore
$data = fgetcsv ($fp, 1000, ";   ")
za
$fileLine=fgets($fp, 4096);
$lineData = explode(";", $fileLine);

a vse ok. Ted import probiha v poradku a cestina je take OK.

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags:

Comments No Comments »

Potreboval jsem vygenerovat pdf s cestinou a hledal jsem po internetu nejakou solidni php class ktera by umela generovat pdf. nasel jsem php knihovnu TCPDF.

Priklady pouziti zde

Vyzkousel jsem zatim na par prikladech a otestoval cestinu. Ne se vsemi fonty funguje cestina, ja vyzkousel a nejvice mi vyhovuje “dejavusans” font. je jich tam vice, chce si to vykouset ktery font vyhovuje nejvice. je zde moznost si vytvorit i dalsi svoje. v adresari utils je utilitka na vyrobu fontu. zatim jsem nezkousel.

PHP trida by mela take umet html tagy. Poradke jsem se ktomu nedostal ale vyzkousel jsem cestinu. viz. obrazek nize. cestina v pohode a html tabulka taky .. :)

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags:

Comments 1 Comment »

Vyborna php trida GeoCalc (Geographic Distance and Azimuth Calculations), ktera umoznuje podle gps souracnic vypocitat vzdalenost nebo azimut. (Výpocet geografické vzdálenosti od daneho bodu).
Vyborna vec napriklad pokud chcete ziskat napr. vsechna mesta vzdalena 10km od zadaneho bodu, nebo chcete zjistit vdalenosti od jednotlivych bodu. K urceni vzdalenosti jsou pouzivane souradnice ve WGS84 formatu

Na uvedene strance http://www.imaginerc.com/software/GeoCalc/ najdete jednoduchy priklad pouziti a take moznost stahnuti php tridy.

Moc pekne povidani o tom jak se pocitaji souradnice atd. je na http://www.codeguru.com/Cpp/Cpp/algorithms/article.php/c5115/ – je to sice v cpp ale to nevadi, algoritmy sou stejne :) .

Vysledky ktere mi pak vratila db jsem jeste pouzil do Google Maps api a za par minut je vyborny vysledek, kde zobrazuji v okruhu nekolika kilometru mesta vzdalena od daneho mesta.

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags: ,

Comments No Comments »

Jiz drive jsem zkousel javascriptovy validator http://www.pudil.net/alf/2008/06/19/really-easy-field-validation-opravdu-lehka-validace/.

Nyni jsem nasel takovy hezci . vypada dost dobre. http://zendold.lojcomm.com.br/fvalidator/

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print

Comments No Comments »

Potřeboval jsem rychle zjistit o jaký datum jde a prevest ho do db (mysql) formy.

na http://php.vrana.cz/prevod-data-z-ceskeho-formatu.php jsem nasel zpusob co se mi libi a je jednoduchy.

trosku jsem si upravil a vznikla naledujici funkce


function convertDateToDb($datum)
{ // BEGIN function convertDateToDb

    $datum = str_replace(" ", "", $datum);

    if (substr_count($datum, ".") > 0 ){
      $datum_iso = vsprintf('%3$d-%2$02d-%1$02d', explode('.', $datum));
    }else{
      $datum_iso = $datum;
    }

    return $datum_iso;
} // END function convertDateToDb
Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print

Comments No Comments »

IEtester je vyborna aplikace která dokáže mít na jedněch windowsech několik internet explorerů.

V současné době ietester (v0.2.3) zvláda internet explorer 5.5, 6, 7, 8 beta 2.

(oficiálně píšou IETester is a free WebBrowser that allows you to have the rendering and javascript engines of IE8 beta 2, IE7 IE 6 and IE5.5 on Vista and XP, as well as the installed IE in the same process.)

Stáhnout se dá na http://www.my-debugbar.com/wiki/IETester/HomePage

pár věcí neumi ješte:

  • java aplety
  • flash v IE6 nefunguje
  • a par drobností jako je resize okna není v pořádku mezi verzemi apod… ale více na oficialních stránkách IE testeru
Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print

Comments No Comments »

pokud se vytváří rss je nutne nezapomenout na preklad nepovolenych znaku v rss (“<", ">“, ‘”‘, “‘”)
(
Ampersand (&)

LessThanSign (<)

GreaterThanSign (>)

Double Quote (“)

Apostrophe (‘)
)

php kod na nahrazeni .. je to primitnivni .. ale dostacujici na jednoduche reseni


$name = str_replace(array ("&", "<", ">", '"', "'"), array ("&", "<", ">", """, "'"), $name);

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print

Comments No Comments »

Pár dní dozadu jsme řešili problém kde nám javascript v internet exploreru byl neskutecne pomaly. V tabulce o xy zaznamech jsme aktualizovali nekolik polozek pomoci ajaxu. Ve firefoxu v pohode ale v Ie to delalo dost problemy v radek nekolik stovek milisekund..

Na adrese http://bytes.com/forum/thread624774.html je post Search DOM elements with XPath (getElementById too slow) v blogu kde je řešení problému s pomalým javascriptem. Hold Internet explorer není schopen zpracovat pořádně javascript a je velice pomalý.

Nejdůležitější je v komentářích, doporučuji pečlivě přečíst.
Skoro na konci blogu je tento kód který je nadevše, kde je vidět že použitím childNodes je rychlejší nez getElementById

var rows = 200;
var cols = 200;

// init table
var s = [];
for (var r=0; r < rows; ++r) {
s.push(‘
‘);
for (var c= 0; c < cols; ++c) {
s.push(‘ ‘ + ‘c_’ + r + ‘_’ + c);
}
}
document.write( s.join(”) + ‘<\/table>’)

var table = document.getElementById(‘table’);
var clicked = 0;
table.onclick = function() {
var start_r = 10; var end_r = 40;
var start_c = 10; var end_c = 40;
var t1 = new Date();
var method = ”;
++clicked;
if ((clicked%2) == 1) {
for (var r = start_r; r < end_r; ++r){
for (var c = start_c; c < end_c; ++c){
document.getElementById(‘c_’ + r + ‘_’ + c).innerHTML = “Slow!”;
}
}
method = “Using getDocumentById”;
}
else{
var elems = table.getElementsByTagName(‘TBODY’);
var tbody = elems[0];
for (var r = start_r; r < end_r; ++r) {
var row = tbody.childNodes[r];
for (var c = start_c; c < end_c; ++c) {
row.childNodes[start_c].innerHTML = “Fast!”;
}
}
method = “Using childNodes”;
}
var t2 = new Date();
alert((t2.getTime() – t1.getTime())/1000 + “s”);
}

v komentáři je napsáno:

A demo is attached. using getElementById on IE takes 23 seconds,
compared to 0.3 seconds using childNodes. in FF the difference is
closer : 3s vs 0.3 seconds.

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags:

Comments No Comments »

na adrese http://browsershots.org/ je mozne otestovat si stranky ve vice jak 60 prohlizecich naraz.

zadate adresu do inputu a pak pockate zhruba 5minut (mozna vice) nez se vygeneruji nahledy stranek, pak si je muzete stahnout k sobe do pocitace v jednom baliku a zjistovat a ladit nedostatky, take je dobre to treba prilozit jako prilohu do smlouvy o dokonceni dila aby bylo jasne ze stranky opravdu vypada vsude stejne pekne :)

docela dobra utilitka pro otestovani stranek nez se daji do ostreho provozu.sam bych asi tezko testoval v tolika prohlizecich na jednom pocitaci :)

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags:

Comments No Comments »

pokud je potreba ucinne validovat formular je Really easy field validation to prave pro pouziti

staci kliknout na odkaz tetlaw.id.au/view/javascript/really-easy-field-validation a dostane te se na stranku i s demem jak vse krasne funguje, je to opravdu jednoduche demo zde.

velice a jednoduse popsane a vyborne aplikovatelne. je to zalozene na prototype.js

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags: ,

Comments No Comments »

pokud nemuzete z nejakeho duvodu pouzit

RedirectMatch permanent http://www.alias.cz(.*)$ http://www.domena.cz$1

nebo

Redirect 301 /index.php http://domena-domena.cz/index.php

pak snad pomuze nasledujici kod ktery zpusobi presmerovani z jedne domeny na druhou bez zasahu do .htaccess

if ($_SERVER['HTTP_HOST'] == 'www.domena.cz'){
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.domena-domena.cz".$_SERVER['REQUEST_URI']);
exit();
}
Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags:

Comments No Comments »

na nekterych webhost sitach se stava ze maji vyple vypisovani php chyb, zobrazi se pouze bila obrazovka a nic.

pro tento pripad je nutne si zapnout vypis php chyb v htaccess

php_value display_errors true
php_value display_errors off

nebo i tak to funguje

php_value display_errors on
php_value display_errors 1

[ratings]

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags: ,

Comments No Comments »

na conBlogu jsem si precetl clanek MS Expression Web 2 Beta (http://blog.converter.cz/index.php?p=1379&c=1) o moznosti stahnuti MS expression web 2 a neodolal kliknout na download link http://www.microsoft.com/expression/products/download.aspx?key=web2betajsem zvedav jak se MS popral s PHP :) zatim si vystacim uplne s Pspad editorem (http://www.pspad.com/)
ms expression web 2 beta instalace:

  • stahnout soubor MS Expression Web 2 Beta ( skoro 200mega)
  • stahnout .net framenetwork 3.5 (http://go.microsoft.com/fwlink/?LinkID=105481 instalak do 1 mega.. ale asi to bude tahat spoustu veci, presneji to pise 67MB:) pri instalaci mne dostala hlaska – stahovani dokonceno, muzete se odpojit od internetu :) v dobe adsl, wifi afseho moznyho snad nekdo pouziva vytacene spojeni na stahovani 70megovych souboru ? :) ,obalte si nervy .. protoze instalace .Net FrameWrk 3.5 trvaaaaa a trvaa a ted
  • vyzaduje restart.. kua..
  • chvilku to trvalo ale jiz se instaluje Expressweb2, jeste si to neco stahovalo
  • opet restart :)
  • a spusteniii
  1. no tak po prvni spusteni jsem zkusil nahrat skript.. je v UTF-8 (tak jako fsechno) a neumi cestinu :(
  2. chybi mi tu prehled funkci .. aka pspad. tak uvidime.. jeste do toho budu xvilku hledet jak bude cas ale zatim nic moc.. podpora ASP velika PHP mizerna

no uvidime, treba jsou tam nekde ty fuknce ktere pozaduji ale zatim jsem je nenasel

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags: , ,

Comments No Comments »

dnes pri rannim cteni smashing magazinu ve clanku o nakupnich kosicich v eshopechhttp://www.smashingmagazine.com/2008/02/07/shopping-carts-gallery-examples-and-good-practices/

jsem narazil na zajimavy odkaz kde jse spousta ikonek nakupnich kosiku a i jine docela pouzitelne ikonky pro web

http://www.intersmash.com/300images/

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags: , ,

Comments No Comments »

posbirano ruzne z netu a poupraveno aby to mohlo fakta pro UTF-8

/*******************************************************************************
*	// UTF-8 to ASCII for diacritic chars
*******************************************************************************/
function cs_utf2ascii($s)
{
    static $tbl = array("\xc3\xa1"=>"a","\xc3\xa4"=>"a","\xc4\x8d"=>"c",
"\xc4\x8f"=>"d","\xc3\xa9"=>"e","\xc4\x9b"=>"e","\xc3\xad"=>"i","\xc4\xbe"=>"l",
"\xc4\xba"=>"l","\xc5\x88"=>"n","\xc3\xb3"=>"o","\xc3\xb6"=>"o","\xc5\x91"=>"o",
"\xc3\xb4"=>"o","\xc5\x99"=>"r","\xc5\x95"=>"r","\xc5\xa1"=>"s","\xc5\xa5"=>"t",
"\xc3\xba"=>"u","\xc5\xaf"=>"u","\xc3\xbc"=>"u","\xc5\xb1"=>"u","\xc3\xbd"=>"y",
"\xc5\xbe"=>"z","\xc3\x81"=>"A","\xc3\x84"=>"A","\xc4\x8c"=>"C","\xc4\x8e"=>"D",
"\xc3\x89"=>"E","\xc4\x9a"=>"E","\xc3\x8d"=>"I","\xc4\xbd"=>"L","\xc4\xb9"=>"L",
"\xc5\x87"=>"N","\xc3\x93"=>"O","\xc3\x96"=>"O","\xc5\x90"=>"O","\xc3\x94"=>"O",
"\xc5\x98"=>"R","\xc5\x94"=>"R","\xc5\xa0"=>"S","\xc5\xa4"=>"T","\xc3\x9a"=>"U",
"\xc5\xae"=>"U","\xc3\x9c"=>"U","\xc5\xb0"=>"U","\xc3\x9d"=>"Y","\xc5\xbd"=>"Z");
    return strtr($s, $tbl);
}
/*******************************************************************************
*	Uprava retezce pro mod_rewrite
*******************************************************************************/
function mod_rewrite ($name) {

  $s = cs_utf2ascii($name); //
  $s = eregi_replace("[ !@#$%^&*()+|\\=`~\";:\'/?,><{}\[…]+", "-", $s);
	// pomlcky jako rozdelovnik a nahrada nebezpecnych znaku
  $s = eregi_replace("]+", "-", $s); // a nakonc jeste ]
  $s = eregi_replace("^-+", "", $s); // zrusit pomlcky na zacatku
  $s = eregi_replace("-+$", "", $s); // zrusit pomlcky na na konci
  $s = eregi_replace("-+", "-", $s); // zrusit vice pomlcek
  $s = str_replace(".-", "-", $s); // zrusit nesmysl .-
  $s = str_replace("-.", "-", $s); // zrusit nesmysl -.
  $s = str_replace("_-", "-", $s); // zrusit nesmysl _-
  $s = str_replace("-_", "-", $s); // zrusit nesmysl -_
  $s = str_replace("_.", "_", $s); // zrusit nesmysl _.
  $s = str_replace("._", "_", $s); // zrusit nesmysl ._
  $s = str_replace(".", "_", $s); // zrusit nesmysl ._
  $s = urlencode($s);
  return urlencode(mb_strtolower($s));

}

[ratings]

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags:

Comments No Comments »

Some links with user agent string, good for developing  and testing web aplications

http://www.user-agents.org/index.shtml

http://www.useragentstring.com/pages/All/

http://www.pgts.com.au/pgtsj/pgtsj0208c.html

some user agent strings if links will be down

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags:

Comments No Comments »

where and how to test mobile aplication for mobile browsers

just type http://ready.mobi/launch.jsp and enter your page to Page Check for test

The ready.mobi testing tool evaluates mobile-readiness using industry best practices & standards.
This report provides a score (from 1 to 5) and in-depth analysis to determine how well your site displays on a mobile device.

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print

Comments No Comments »

How to detect mobile browser in php

/*******************************************************************************
*	check mobile browser
*******************************************************************************/
function checkmobile(){
global $_SERVER;
if(isset($_SERVER["HTTP_X_WAP_PROFILE"])) return true;
if(preg_match("/wap\.|\.wap/i",$_SERVER["HTTP_ACCEPT"])) return true;
if(isset($_SERVER["HTTP_USER_AGENT"]))
{$uamatches = array("midp", "j2me", "avant", "docomo", "novarra", "palmos", "palmsource",
 "240x320", "opwv", "chtml", "pda", "windows\ ce", "mmp\/", "blackberry",
"mib\/", "symbian", "wireless", "nokia", "hand", "mobi", "phone", "cdm",
"up\.b", "audio", "SIE\-", "SEC\-", "samsung", "HTC", "mot\-", "mitsu",
 "sagem", "sony", "alcatel", "lg", "eric", "vx", "NEC", "philips",
 "mmm", "xx", "panasonic", "sharp", "wap", "sch", "rover",
 "pocket", "benq", "java", "pt", "pg", "vox", "amoi", "bird",
"compal", "kg", "voda", "sany", "kdd", "dbt", "sendo", "sgh",
 "gradi", "jb", "\d\d\di", "moto");      

foreach($uamatches as $uastring){
if(preg_match("/".$uastring."/i",$_SERVER["HTTP_USER_AGENT"])) return true;
}
}      

return false;
}

code from http://www.brainhandles.com/2007/10/15/detecting-mobile-browsers/
another way/function i found at http://www.andymoore.info/php-to-detect-mobile-phones/

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print

Comments No Comments »

How to detect php language in PHP


jedna cesta jak zjistit jazyk je pouzit $_SERVER["HTTP_ACCEPT_LANGUAGE"]
vrati string napr. en-us,en;q=0.5pak staci jednoduchou funkci
//en-us,en;q=0.5$x = parse_accept_language ($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
kde x je pole

Array
(
[0] => en-us
[1] => en
[2] => q=0.5
)

function parse_accept_language($agent){
$arr = split(“[,;]“, $agent);

return $arr;
}

pokud ovsem je potreba vice informaci jako nazev jazyku pak je dobre pouzit knihovnu php_language_detection.php
najdete na http://techpatterns.com/downloads/php_language_detection.php
php_language_detection.zip
staci pak zavolat funkci get_languages(‘data’);

include_once(‘lib/php_language_detection.php’);
$lang_detect = get_languages(‘data’);

print_r($lang_detect);

Array
(
    [0] => Array
        (
            [0] => cs
            [1] => cs
            [2] => Czech
            [3] => Czech
        )

)

[ratings]

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags:

Comments No Comments »

how to use browsercap.ini in PHP
how to detect browser (http user agent) in php


download first brosercap.ini from http://browsers.garykeith.com/downloads.asp
and
from http://alexandre.alapetite.net/doc-alex/php-local-browscap/index.en.html download
the php-local-browscap module

download source code a save it for example to dir ./lib/php_browscap.ini
and to index.php paste following code


echo $_SERVER[HTTP_USER_AGENT];
if (get_cfg_var('browscap'))
 $browser=get_browser(); //If available, use PHP native function
else
{
 include_once('lib/php_local_browscap.php');
 $browser=get_browser_local($user_agent=null,$return_array=false,$db='lib/php_browscap.ini',$cache=false);
}
echo('
');
print_r($browser);
echo('

');
?>

that’s all

more about this http://www.php.net/manual/en/function.get-browser.php

Sdílejte:
  • Facebook
  • Add to favorites
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Google Bookmarks
  • email
  • Print
Tags: ,

Comments No Comments »