Programování - Tipy a triky » PHP http://blog.programovani.net Užitečné tipy, triky a návody v programování Sat, 28 Jul 2012 18:04:38 +0000 cz hourly 1 http://wordpress.org/?v=3.2.1 Export do CSV a diakritka – PHP a UTF-8 http://blog.programovani.net/php/diakritika-v-csv-php-a-utf-8/?utm_source=rss&utm_medium=rss&utm_campaign=export-do-csv-a-diakritka-php-a-utf-8 http://blog.programovani.net/php/diakritika-v-csv-php-a-utf-8/#comments Sat, 28 Jul 2012 17:56:39 +0000 admin http://blog.programovani.net/?p=97 Celý příspěvek ]]> Při tvorbě CSV s českým textem, se určitě setkáte s problémem kódování jednotlivých znaků. Ač je výstup v UTF-8 v pořádku, Microsoft Excel špatně zobrazuje jednotlivé znaky. Řešení je
jednoduché a jmenuje se BOM. Na začátek souboru stačí přidat BOM znaky, které signalizují, že je soubor ve znakové sadě UTF-8.

Řešení:

$document = chr(0xEF) . chr(0xBB) . chr(0xBF) . $csvContent;

Proměnná csvContent obsahuje obsah CSV dokumentu. V proměnné document je připraven obsah CSV souboru, který stačí vypsat do souboru.

]]>
http://blog.programovani.net/php/diakritika-v-csv-php-a-utf-8/feed/ 0
Podmínka, zda řetězec obsahuje druhý řetězec http://blog.programovani.net/php/retezec-obsahuje-jiny-retezec/?utm_source=rss&utm_medium=rss&utm_campaign=podminka-zda-retezec-obsahuje-druhy-retezec http://blog.programovani.net/php/retezec-obsahuje-jiny-retezec/#comments Sun, 25 Sep 2011 16:32:12 +0000 admin http://blog.programovani.net/?p=89 Celý příspěvek ]]> V tomto příspěvku uvedu jednoduchý příkaz (podmínku) jak v PHP ověřit, zda jeden řetězec (string) obsahuje jiný řetězec. Bohužel v PHP není funkce contains a musíme si jí vytvořit sami.

1. Testování, zda řetězec obsahuje podřetězec.

if (strpos($retezec,$hledany_vyraz) !== false) {
    echo 'Retezec nalezen';
}

2. Podmínka, zda řetězec neobsahuje daný podřetězec.

if (strpos($retezec,$hledany_vyraz) === false) {
    echo 'Retezec nenalezen';
}

3. Komplexní test na obsah podřetězce v řetězci

if (strpos($retezec,$hledany_vyraz) === false) {
    echo 'Retezec nenalezen';
}  else {
    echo 'Retezec nalezen';
}

Jak to funguje?

StrPos vrací pozici hledaného textu v řetězci. Pokud řetězec text neobsahuje, vrací false. Jelikož může být podřetězec hned na prvním místě, je nutné použít místo == operátor === (respektive !==).

Důležité upozornění! Nepoužívejte pro testování příkazy strstr ani ereg! Oba příkazy jsou zbytečně výpočetně i paměťově náročné.

]]>
http://blog.programovani.net/php/retezec-obsahuje-jiny-retezec/feed/ 0
URL Aktuální stránky http://blog.programovani.net/php/url-aktualni-stranky/?utm_source=rss&utm_medium=rss&utm_campaign=url-aktualni-stranky http://blog.programovani.net/php/url-aktualni-stranky/#comments Sun, 25 Sep 2011 09:32:13 +0000 admin http://blog.programovani.net/?p=81 Celý příspěvek ]]> Často je potřeba v PHP zjistit, jaká je URL adresa aktuálně zobrazené stránky. V případě, že používáte pouze protokol HTTP a nepoužíváte jiné číslo portu než 80, stačí použít následující kód:

$pageURL = "http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];

V případě, že používáte HTTPS nebo čísla portů, uvedu zde složitější skript:

$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {
     $pageURL .= "s";
}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
     $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
     $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
]]>
http://blog.programovani.net/php/url-aktualni-stranky/feed/ 0