Při práci s transakcemi v MySQL se občas můžeme zamotat do jejich volání. START TRANSACTION považujme za párový příkaz, po kterém by mělo být vždy zavoláno COMMIT nebo ROLLBACK. Jinak máte zaděláno na velký problém.
Při práci s transakcemi v MySQL se občas můžeme zamotat do jejich volání. START TRANSACTION považujme za párový příkaz, po kterém by mělo být vždy zavoláno COMMIT nebo ROLLBACK. Jinak máte zaděláno na velký problém.
Možná jste také u Windows 7/8/10 zpozorovali problém dlouho trvajícího načítání stránek z localhostu, někdy třeba 5-30 sekund. Takže pořádný slow loading localhost! Doba načítání se může lišit, např. Opera 12 je u mě znatelně rychlejší než Opera 23 a Chrome, které oba běží na stejném základě.
Pokud navíc využíváte virtuální hosty (přichází více požadavků na localhost), tak při bílé stránce zdlouhavě čekáte a čas si tak můžete akorát zkrátit pohledem na static.xxcdn.cz…, které se nehybně zobrazuje v rohu prohlížeče.
Zpomalení se může projevit jen při některých načtení stránky, obvykle u prvního přístupu na stránku, ale u dalších to může být nahodilé. A když se najednou zdá načítání rychlé, tak se z ničeho nic zase zpomalí. Někdy pomůže restart Apache, jindy ale nikoli.
Naštěstí existuje několik tipů, jak tento problém fixnout.
Zajímavá přednáška Jakuba Vrány, tehdy ještě zaměstnance Facebooku, jak se pracuje ve Facebooku s preparables, mcproxy a XHP. Rozpovídal se také o deployi a způsobu nasazování jednotlivých funkcí mezi uživatele.
Zapnout CURLOPT_VERBOSE a případně nastavit výstupní log soubor CURLOPT_STDERR (jinak budou chyby vypsány na STDERR).
https://developers.google.com/pagespeed/
http://nontroppo.org/tools/gziptest/
Někdy můžete chtít ze své stránky odkázat na jiný web tak, aby cílová stránka nezjistila, odkud uživatel přišel (URL). Běžně se to lze dozvědět z hlavičky Referer, pokud ji uživatel neblokuje (například firewallem).
Pro tento případ je proto vhodné připravit mezistránku (například soubor /r.php), které předáte cílovou URL. Stránka odstraní Referer a přesměruje na cílovou, která se tak nedozví původní URL.
Odkaz vygenerujte třeba takto:
echo '<a href="/r.php?u=' . htmlspecialchars(urlencode('http://blog.zdenekvecera.cz/item/category/php'), ENT_QUOTES, 'UTF-8') . '">odkaz</a>';
Spokojeně používáte NetBeans, až jednou za jeho běhu přímo ve Windows přejmenujete/přesunete adresář, který doposud sloužil jako cesta k jednomu z projektů.
Daný projekt z NetBeans zmizí a vy se jej pokoušíte přes File -> New Project -> PHP Application with Existing Sources znovu přidat. Marně, protože pokaždé se vypíše chybová hláška:
Jaký je stavový kód pro trvalé přesměrování nebo chybu serveru? Seznam http kódů…
PHP programátoři mají občas nejasnosti s tím, co vrací PHP funkce empty(). Máte prázdnou proměnnou, neexistující proměnnou, prázdné pole nebo proměnnou s hodnotou 0 (nula) či NULL. Víte, co vám empty() v jednotlivých případech vrátí? A aby toho nebylo málo, mrkneme i na isset().
Instalace binárních balíčků PHP 5.3 pro Windows je oproti 5.2 trochu složitější. Musíte totiž podstoupit rozhodování při výběru vhodné verze. Jaká je tedy pro vás ta správná?
Pokud používáte Apache 1 nebo 2, měli byste použít verzi VC6. Zkompilována je pomocí vývojového prostředí Vistual Studio 6.
Jestli instalaci PHP 5.3 chcete provést na IIS, což je Internet Information Services od Microsoftu, měli byste zvolit verzi VC9. Ta byla zkompilována Visual Studiem 2008 a přináší vylepšení v oblasti výkonu a stability.