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)
Foreach fore each in javascript loop cycle example source code
Example code foreach for JavaScript.
var arr = new Array(1,2,3,4,5,6);// numbers or string put into array
for (var key in arr) {
window.alert("My array"
+ key
+ " = "
+ arr[key]);
}
// next example
arr.forEach(function(elem){
console.log(elem);
});
// next example
for (var i = 0; i < arr.length; i++) {
alert (arr[i]);
}
// next example for GECKO MOZILLA FIREFOX
var soucet = 0;
var obj = {var1: 5, var2: 13, var3: 8};
for each (var item in obj) {
soucet += item;
}
alert(soucet); // vysledek "26", coz je soucet 5+13+8
Each in jQuery get all document inputs type text and set value 0 if checkbox checked
function fc(th){
if( th.checked ){
$("input:text").each(
function() {
this.value = 0;
this.disabled = true;
}
);
}else{
$("input:text").each(
function() {
this.disabled = false;
}
);
}
<input type="checkbox" id="idCheck" onchange="fc(this);"> Checkbox
<input type="text" size="1" id="id1" value="0" />
<input type="text" size="1" id="id2" value="0" />
Letní čas tak připočítat hodinu.
Ověření zda je letní čas.
$dst = date("I"); //I (capital i); 0 or 1 if daylight saving time
// example:
$hour = 14;
if(date("I")===1){
$hour = $hour + 1;
}
// OR
$hour = 14 + date("I");
Sqlite3 příkazy - rady zkušenosti
Tyto příkazy, začínající tečkou .neco viz https://sqlite.org/cli.html dávám buď do konzolové aplikace (Start - cmd), nebo příkazového řádku, nebo nejlépe do sql souboru, který otvírám přes bat soubor - viz níže.V samotném bat souboru se musí zápis upravovat a je to matoucí.
Výpis databáze do sql souboru lze snadno provést přes soubor s koncovkou bat. Je dobré si nakopírovat do adresáře soubor sqlite3.exe , nebo dle verze, ve které se pracuje.
Do _databaseToSql.bat zadám název (popř.cestu, pokud je databáze v jiné složce) databáze a soubor, do kterého bude vypsán sql.
_databaseToSql.bat
sqlite3 my_database.db .dump > output.sql
pause
Pro vykonání stačí na uložený _databaseToSql.bat dvojkliknout a provede se kod.
Plnění databáze ze souboru.sql
Opětovně output.sql můžeme použít pro vytvoření nové databáze a naplnit jí obsahem output.sql_sqlToDatabase.bat
sqlite3 new_database.sqlite < output.sql
pause
Plnění databáze ze souboru TXT, kde jednotlivé sloupce jsou odděleny středníkem
_txtFileToDatabase.bat
sqlite3 dictionary_database.db < load.sql
Do load.sql zadáme vytvoření tabulky a soubor.txt, ze kterého budeme plnit sloupce tabulky a čím jsou výrazy v txt souboru odděleny - v našem případě ; STŘEDNÍKEM.load.sql
CREATE TABLE [es_cz] (
[spanish] VARCHAR(255) NULL,
[czech] VARCHAR(255) NULL
);
.separator ";"
.import spanish-czech.txt es_cz
spanish-czech.txt pak bude obsahovat řádky oddělené ; středníkem.
spanish word;czech word
spanish word;czech word
spanish word;czech word
Výpis databáze do CSV souboru
Pokud chci zpět soubor CSV načíst do databáze, tak může nastat problém s oddělovačem sloupců - např. tam bude více ; středníků, či jiných oddělovačů na řádku, než kolik je sloupců a bude malér.Následující kód otevře myDatabase.db , vybere obsah tabulky myTable a vypíše jí do souboru test.csv
_databaseToCsvFile.bat
sqlite3.exe -header -csv myDatabase.db "select * from myTable;" > test.csv
Date: 19.04.2020 - 22:31
(function () {
String.prototype.isString = true;
String.prototype.trim = function () { return this.replace(/(^\s*)|(\s*$)/g, "") };
String.prototype.endsWith = function (a) { return this.substr(this.length - a.length) == a };
String.prototype.startsWith = function (a) { return this.substr(0, a.length) == a };
})();
var 1_radian_to_degree = 180 / Math.PI; // 57,295779513082320876798154814105 degree
var 1_degree_to_radian = Math.PI / 180; // 0,01745329251994329576923690768489 radian
var 360_degree = 2 * Math.PI * 1_radian_to_degree;
var degree = 36.86;
var opposite = 600;
var hypotenuse = 1000;
var adjacent = 800;
// degree
// sin 45° == 0.7071067811865475;
var sin = Math.sin(45 * Math.PI / 180.0)
//sin == 0.7071067811865475;
// vypocet prepony (hypotenuse), kdyz zname
// protilehlou (opposite) a uhel (degree)
hypotenuse2 = opposite/ Math.sin(degree * Math.PI / 180.0);
// vypocet protilehle (opposite)
opposite2 = hypotenuse * Math.sin(degree * Math.PI / 180);
// vypocitat uhel alfa z velikosti protilehle a prepony ve stupnich (degree)
degree2 = Math.asin(opposite / hypotenuse)* (180/Math.PI); // 1rad
// velikost prepony pomoci prilehle (adjacent) strany a cos a uhlu v stupnich (degree)
hypotenuse3 = adjacent / Math.cos(degree * Math.PI / 180);
// velikost prilehle (adjacent) strany pomoci prepony a cos a uhlu v stupnich (degree)
adjacent2 = hypotenuse * Math.cos(degree * Math.PI / 180);
tan = Math.tan(degree * Math.PI/180); // 45° == 0.9999999999999
degree3 = Math.atan(opposite / adjacent)* (180/Math.PI); // 1rad
adjacent3 = opposite / Math.tan(degree * Math.PI / 180);
opposite3 = adjacent * Math.tan(degree * Math.PI / 180);
Editace: 24.5.2020 - 12:55
Počet článků v kategorii: 77
Url:htaccess-rady-a-zkusenosti