htaccess rady a zkušenosti
htaccess rady a zkušenosti
Testování kódu htaccess ZDEPříklady na jakpsatweb
Dokumentace na apache.org
Testování regexů
Komentar nesmi byt na stejnem radku, jako kod. Zde jsou komentare, na konci radku (vedle) prikazu, jen kvuli snadnejsimu pochopeni kodu.
RewriteCond string (regex1) # tento radek nebude fungovat, koment musi byt na samostatnem radku, nejlepe nad provadenym kodem.
# tak je to spravne, komentar na samostatnem radku a nejlepe nad ukolem
RewriteCond string (regex1)
RewriteRule dosáhne jen na regex předchozího RewriteCond!
RewriteCond string (regex1) # nedosahne
RewriteCond string (regex2)
RewriteRule (regex) %1 # v %1 bude regex2
Číslo za % udává, kolikátá skupina předchozího regexu v RewriteCond bude použita. %0 vezme vše ze všech skupin.
Pokud skupina neexistuje, tak se vypíše jako %N , kde N je číslo skupiny, která nebyla nalezena.
$1 číslo za $ udává kolikátá skupina regexu bude použita, ale platí jen pro RewriteRule z jeho vlastního regexu. $0 vezme všchny skupiny (group) regexu z RewriteRule.
RewriteCond může být několikrát za sebou, ale jakmile se jedna z těchto podmínek nesplní, tak se nesplní ani následující RewriteRule!
RewriteCond # podmínka nesplněna
RewriteCond # splněna
RewriteRule # se nevykoná, protože jedna z podmínek nebyla splněna
RewriteRule přísluší vždy k předchozímu - předchozí skupině RewriteCond. Následující RewriteRule už je samostatné viz příklad:
RewriteCond
RewriteRule # tohle reaguje na předchozí podmínku a vykoná se, když je podmínka splněna
RewriteRule # tohle už je samostatné a nebude brát ohled na podmínku - podmínky v předchozích řádcích.
Využití regexu, který bude vytvořen až v následujícím RewriteRule. Regex Back-Reference Availability
Date: 27.02.2020 - 11:11
77LW NO topic_id
AD
Další témata ....(Topics)
Multi-byte UNICODE PHP.
Pokud pracujete s diakritikou budou se Vám hodit funkce, které začínají mb_ tedy multi-byte funkce.Abyste nemuseli do každé funkce udávat kódování viz příklad
$mbLen = mb_strlen('žluťoučký','utf-8');
přidávejte na začátek kódu internal encoding
mb_internal_encoding('utf-8');
$mbLen = mb_strlen('žluťoučký');
Příklad si vyzkoušejte a ověřte hodnoty $mbLen
Nejdůležitější informace, které získáme z cesty souboru.
// soubor, který je volán jako první
print $_SERVER ['SCRIPT_FILENAME']; // /www/domain/subdomain/cesky-jazyk/gramatika/index.php
$path_parts = pathinfo($_SERVER ['SCRIPT_FILENAME']);
echo $path_parts['dirname']. " dir"; // /www/domain/subdomain/cesky-jazyk/gramatika
echo $path_parts['basename']. " base"; // index.php
echo $path_parts['extension']. " ext"; // php
echo $path_parts['filename']. " file"; // index az od PHP 5.2.0
// cesta k souboru, ve kterém je aktualni print a byl inkludován - include v index.php
print __FILE__; // /www/subdomains/cesk-jazyk/templates/header.php
Jak vytvořit slovník podstatných jmen.
Velmi snadno. Stačí si stáhnout slovník pro kontrolu pravopisudo Open Office org a tam již druhy slov májí za lomítkem určující znaky.
//wiki.services.openoffice.org/wiki/Dictionaries#Czech_.28Czech_Republic.29
Ukázka obsahu slovníku:
alokuce/Zalokující/YN
alokátor/H
alolex/H
alomorf/H
aloový/YKRN
aloparentální/YKR
alopatický/YCRN
alopatie/Z
Dodržujte licence slovníků
Jak získat obsah určité složky příklad v php.
/*************************
* vyhleda soubory s prislusnou koncovkou
* a vrátí nejmladsi soubor
* $extension
*/
function getFileFromDir($path, $extension)
{ // BEGIN function getFileFromDir
$fileReturn; $z = 0;
if (is_dir ($path)) {
$dh = opendir($path); // or die (" Directory Open failed !");
while ($file = readdir($dh)){
//print $file.'<br />';
if (is_file($path.$file)) {
//print $file.'<br />';
$ar = explode(".", $file);
if (count($ar) > 1) {
if (strtolower($ar[count($ar) - 1]) == $extension) { // "zip", "exe" or other extension
$fileReturn[$z][0] = date ("Ymd", filemtime($path.$file));
$fileReturn[$z][1] = $file;
$z++;
//break;
}
}
}
}
closedir ($dh);
}
if ($fileReturn) {
sort($fileReturn);
return $fileReturn[count($fileReturn) - 1][1];
}
} // END function getFileFromDir
/***************************
Jeden znak: a, b nebo c | [abc] | [abc] | a bb ccc |
Znak kromě: a, b nebo c | [^abc] | [^abc] | d, ff, mmm ale ne a, bb, ccc |
Znak od až po: a-z | [a-z] | [a-z] | jez, mez, bez ale ne keřík - neumí diakritiku |
Znak není v rozsahu: a-z | [^a-z] | vybere prázdné mezery i pismena s diakritikou | |
Znak v rozsahu: a-z nebo A-Z | [a-zA-Z] | neumí diakritiku | |
Jakýkoliv jednotlivý znak | . | bere vše i diakritiku, kromě znaku konce řádku | |
Znak mezery | \s | ^\r
\t\f\v a mezery | |
Znak není mezera | \S | vše kromě mezer viz výš | |
Číslice | \d | pouze číslice | |
Libovolné jiné než číslice | \D | vše výjma číslic | |
Jakýkoliv znak písmena | \w | \w+ | celá slova pokud neobsahují diakritku či nepísmena |
Jakýkoli znak jiný než písmeno | \W | \W+ | *-+#@ ale ne _ podtržítko |
Vše co bude v závorce (group) | (...) | (he) | všechna he ze slov |
Buď a nebo b | (a|b) | (a|b) | vybere vešechna a i b ze slov |
Nula nebo jeden znak a | a? | bao? | bao , ba, ale ne samotne b |
Nula nebo více | a* | bao* | ba, bao ale ne b, bax, bac |
Jeden nebo více | a+ | a až nekonečno aaaa i a uprostřed slova | |
Přesně 3 znaky a | a{3} | aaa aaaa jen první 3 znaky, ale ne aa | |
3 nebo více znaků a | a{3,} | aaa až nekonečno aaaaaaaa | |
Mezi 3 a 6 znaky a | a{3,6} | aaa aaaaaa ale ne aa | |
Začátek řetězce | ^ | ^\w+ | např. slovo je začátek nového řádku |
Konec řetězce | $ | \w+$ | (veme konci) poslední slovo na konci |
Hranice slova | \b | d\b | (veme d na konci slov) hrad led |
Není hranice slova | \B | a\B | a v ab, ale ne v ba |
Nový řádek |
| \r
?| | cross platform newline / nalezne nový řádek napříč platformami |
Tab - tabulátor | \t | ||
Carriage return CR | \r | návrat vozíku https://cs.wikipedia.org/wiki/Carriage_return | |
Editace: 24.5.2020 - 12:55
Počet článků v kategorii: 77
Url:htaccess-rady-a-zkusenosti