PHP: Porovnání rychlosti str_replace() a preg_replace()

by Zdeněk Večeřa 1 Comment

Podívejme se na porovnání rychlosti funkcí str_replace() a preg_replace(), které lze použít pro nahrazení řetězce řetězcem.

$url = 'http://google.com/1/../2/././';

for ($i = 0; $i < 1000000 ; $i++){
str_replace('/./', '/', $url);
}
// Doba běhu: 1.6402 s

for ($i = 0; $i < 1000000 ; $i++){
preg_replace('/(\/\.\/)/', '/', $url);
}
// Doba běhu: 5.0405 s

Pokud chcete jen nahradit řetězec a nepotřebujete využít síly regulárních výrazů, využijte funkci str_replace(). Dle měření zpracování bude až 3× rychlejší než v případě preg_replace().

UTF-8, MySQL, kódování a PHP funkce pro práci s řetězci: strlen, substr aj.

Možná jste při práci s PHP narazili na problém s UTF-8 kódováním. Doposud jste využívali kódování cp1250 nebo iso-8859-2 a nebyl problém. Okolnosti vás přinutily požívat UTF-8 a najednou bum. Na stránkách se vám chybně vypisují znaky s českou diakritikou a nevíte co s tím.

Jak správně použít UTF-8 a MySQL?

Je třeba dodržet následující pravidla:

  1. Po připojení nastavit kódování, ve kterém bude probíhat komunikace s databázovým serverem:
    mysql_query("SET NAMES 'utf8'");
    nebo 
    mysql_query('SET CHARACTER SET utf8');
    
    Od PHP 5.2.3 a MySQL 5.0.7 raději použijte:
    mysql_set_charset('utf8');
    
    Je to správná a bezpečná varianta
    pro použití mysql_real_escape_string(). Více: 1, 2, 3.
  2. Kódování PHP souborů nastavit na UTF-8 (pozor na počáteční UTF-8 boom znak)
  3. Odesílat hlavičky s UTF-8 kódováním:
    header('Content-Type: text/html; charset=utf-8');
  4. Nastavit UTF-8 kódování v HTML (meta tagy, xml hlavička aj.)
  5. Používat PHP řetězcové funkce, které zvládají UTF-8 (viz dále)

Otevření okna pomocí JavaScriptu a úprava obsahu rodičovského okna

by Zdeněk Večeřa 0 Comments

Někdy můžete chtít otevřit nové okno (potomka) a na jeho základě upravit obsah v rodičovském okně – to, které vyvolalo otevření potomka. Docílíte toho kouskem kódu v JavaScriptu, který můžete zavolat například v události onclick (provede se po klepnutí).

Otevření nového okna pomocí JavaScriptu

Okno JavaScriptem můžete otevřít následovně:

<a href="#" onClick=
"window.open('nejaky_soubor.php', 'mywindow',
'width=970, height=700')">
Otevřít nové okno</a>

Snadno můžete nastavovat i parametry otevřeného okna. Nemá smysl zde všechny možnosti vypisovat; rovnou vás odkážu na pageresource.com.

Odstranění ikony Opery z lišty u hodin

by Zdeněk Večeřa 0 Comments

Webový prohlížeč Opera 10 standardně zobrazuje svoji malou ikonu u hodin (v trayi). Pokud se vám zdá zbytečná, můžete její zobrazování zakázat. Stačí Operu spustit s parametrem /notrayicon.

Opera: Jak vypnout ikonu u hodin?

Například na zástupce Opery klepněte pravým tlačítkem myši, vyberte vlastnosti a na záložce Zástupce do políčka Cíl uveďte na konec zmíněný parametr. Výsledek bude vypadat nějak takto:

"C:\Program Files\Opera 10 Preview\opera.exe" /notrayicon

A víte, že Opera 10 má novou ikonu?

Google: Jak vypnout personalizaci výsledků hledání?

by Zdeněk Večeřa 0 Comments

GoogleGoogle před časem přišel s relativně užitečnou funkcí, která se nazývá personalizace výsledků vyhledávání. Veškeré vaše hledání si Google zapamatuje (to dělá i tak), a podle vaší aktivity při příštím hledání určí, které stránky zobrazí ve výsledcích hledání výše.

Zkrátka snaží se odhadnout, co vás může zajímat.

Pokud vás ale zajímá reálná pozice webů, ať už z důvodu SEO optimalizace či jen orientační přehled, jak si vedete oproti konkurenci, může být chování personalizace výsledků nepraktické. Proto je vhodné personalizaci vypnout.

PHPMailer: Snadné posílání (HTML) e-mailů z PHP

by Zdeněk Večeřa 2 Comments

E-mail, obálka, dopis

Pokud potřebujete z webu, kde běží PHP, posílat e-maily, můžete sáhnout po funkci PHP mail(). Jsou s ní trochu starosti, protože musíte myslet na kódování a nesmíte zapomenout na správné uvedení hlaviček (headers).

PHPMailer: Pomocná ruka při posílání e-mailů

Na pomoc přichází PHP knihovna PHPMailer, která zastřešuje vše okolo posílání e-mailů. Můžete ji využít pro posílání nejen přes funkci mail(), ale můžete e-maily zasílat i skrz existující SMTP server (tedy reálnou e-mailovou adresu).

Kódování a HTML e-maily bez problému

S knihovnou PHPMailer jednoduše vytvoříte HTML e-maily s obrázky a přílohou. Nemusíte se ani obávat, že bude problém s kódováním, jako se stává, když bez znalostí pracujete přímo s funkcí mail(). PHPMailer se o vše postará za vás.

Autorské honoráře, jejich danění a vše okolo

by Zdeněk Večeřa 0 Comments

Peníze

Pokud píšete do novin či jiných médií a máte z toho zisk (platí vás za to), určitě jste narazili na otázky ohledně danění příjmů. Příjem z autorské činnosti se totiž musí zdanit jako každý jiný příjem.

Myslet byste také měli na zdravotní a sociální pojištění. Možná se ani nevyhnete registraci u své zdravotní pojišťovny a MSSZ (správa sociálního zabezpečení). Vše se také odvíjí od toho, zda-li podnikáte, či jste v pozici zaměstnance.

Autorské honoráře a jak na ně

Pokud nemáte účetní, určitě vám pomůže článek Autorské honoráře jako přivýdělek při zaměstnání, který vyšel na Podnikateli.cz. Doporučuji!

Vydán CKEditor 3.0: Nová generace wysiwyg editoru FCKeditor je tu

CKEditor, FCKEditor

Oblíbil jsem si kvalitní FCKeditor, se kterým je psaní a úprava textů v administraci hračka. Přestože bych mu několik drobností vytknul, tak největší problém vidím v jeho rychlosti. Ano, je rychlý, ale jeho načtení a zobrazení by mohlo být rychlejší.

FCKeditor a jeho 6 let úspěchu

Ani se to nezdá, ale FCKeditor je vyvíjen už šest let a za tu dobu si získal velkou oblibu nejen mezi uživateli, ale i vývojáři. Troufám si tvrdit, že spolu s TinyMCE patří mezi nejoblíbenější a nejznámější open-source editory.

CKEditor 3.0: Nová generace přichází

Šest let stáří FCKeditoru je mírně znát, proto vývojáři poslední téměř dva roky pilně pracovali na další verzi, která získala nové jméno: CKeditor.

Prakticky vzato, CKeditor je pokračování FCKeditoru, takže se nenechte zmást, že by zde byl další produkt.

Proč došlo k přejmenování?

Vývojáři se pro změnu názvu rozhodli kvůli jeho problémové výslovnosti v anglicky mluvících zemích.