htaccess code
AD MOB
HTTP to HTTPS
# only one RewriteEngine On can be used in htaccess!!!!!!!!!!!!!!
RewriteEngine On
# all redirection HTTP -> HTTPS
# HTTPS off / if start with http.....
# off equality !=on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
example.com to www.example.com
# redirection no www -> https://www.
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Change sitemap.txt to sitemap.php if url //domain.com/sitemap.txt
# //domain.com/sitemap.txt open sitemap.php
# in sitemap.php is function what return list of address
RewriteRule ^sitemap\.txt$ sitemap.php [L]
RewriteRule ^sitemap$ sitemap.php [L]
Remove www. before subdomain name
www.subdomain.example.comto
subdomain.example.com
RewriteCond %{HTTP_HOST} (^|\.)(www\.)([^\.]*)\.example\.com$ [NC]
RewriteRule (.*) https://%3.example.com/$1 [R=301,QSA,L]
Remove dust before subdomain.example.com
# www.bla.www.m.bla.subdomain.example.com to subdomain.example.com
RewriteCond %{HTTP_HOST} (.*)(subdomain.example.com$) [NC]
RewriteRule (.*) https://subdomain.example.com/$1 [R=301,QSA,L]
Remove only one www. before domain name
# redirection www. -> https://
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
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 $mbLenUkázky zaokrouhlení čísla v JavaScript.
var num = 123.45678;
var rounded = Math.round(num); // out: 123
var num = 123.5269;
var rounded = Math.round(num); // out: 124
var num = -3.5269;
var rounded = Math.round(num); // out: -4
var num = 3.5269;
var rounded = Math.round(num * 100)/100; // out: 3.52
var num = 3.5269;
var rounded = Math.round(num * 1000)/1000; // out: 3.526
var num = 3.5269;
var rounded = num.toFixed(3); // out: 3.527
c:xampphtdocs
Jak můžeme získat chyby na htm html stránce, které se projeví u uživatele v prohlížeči.
Ukážeme si příklad, který odešle zprávu o tom, že stránka je o 100px šiřší, jak uživatelova CLIENTAREA ( to, co vidí uživatel ze stránky) prohlížeče a také, že stránka nemá nastaven charset na UTF-8
Kód sestává ze javascriptu a php scriptu, který bude na serveru ukládat chybová hlášení.
Ukážeme si příklad, který odešle zprávu o tom, že stránka je o 100px šiřší, jak uživatelova CLIENTAREA ( to, co vidí uživatel ze stránky) prohlížeče a také, že stránka nemá nastaven charset na UTF-8
Kód sestává ze javascriptu a php scriptu, který bude na serveru ukládat chybová hlášení.
Nejdříve javascript
Tento script vložíme až na konec htm html (nebo inc php šablony kde je ukončení ) stránky mezi tagy /body a /html
</body>
<script type="text/javascript">
var s = new String();
var bUtf8 = false;
var m = document.getElementsByTagName("META");
for(var i = 0; i < m.length; i++){
s = m[i].content;
s = s.toLowerCase();
var nP = s.indexOf('charset');
var nPutf = s.indexOf('utf-8');
if(nP != (-1) && nPutf != (-1))
bUtf8 = true;
}
var httpRequestMy;
var sIE = "", sFF = "";
var nClientW = (parseInt(document.body.clientWidth));
var nScrollW = (parseInt(document.body.scrollWidth));
var nRozdil = nScrollW - nClientW;
if(nRozdil > 100 || bUtf8 == false){
// IE/zbytek sveta
if (window.ActiveXObject) {
httpRequestMy = new ActiveXObject("Microsoft.XMLHTTP");
sIE = "-IExplorer-";
} else {
httpRequestMy = new XMLHttpRequest();
sFF = "-Firefox-and-others-";
}
var d = new Date();
var url = "//myweb.com/stat/error.php?mess=<?php echo $_SERVER [SCRIPT_NAME];?>-pageWidth-"
+ nScrollW.toString() + "---clientWidth-" + nClientW.toString()
+ "-date-" + d.toDateString()+ "-" + d.toTimeString() + sFF + sIE;
if(bUtf8 == false)
url = "//myweb.com/stat/error.php?mess=<?php echo $_SERVER [SCRIPT_NAME];?>-UTF-8-false";
httpRequestMy.open("GET", url, true);
httpRequestMy.onreadystatechange= function () {processRequest(); } ;
httpRequestMy.send(null);
}
else {
//alert(nRozdil);
}
/****************/
function processRequest() {
if (httpRequestMy.readyState == 4) {
if(httpRequestMy.status == 200) {
var response = httpRequestMy.responseText;
if (response == 'EMPTY') {
alert('empty');
}
else {
//alert('OK');
}
}
}
else {
// alert("Error page loading "
// + httpRequestMy.status +":"+ httpRequestMy.statusText);
}
}
</script>
</html>
error.php může obsahovat takový kód
<?php
function vytvorNovyAzapisDoSouboru($fname, $poleVstup)
{ // BEGIN function vytvorNovyAzapisDoSouboru
if(file_exists($fname))unlink($fname);
$fp = fopen($fname, "a");
if (flock($fp, LOCK_EX)) { // do an exclusive lock
foreach ($poleVstup as $key=>$value) {
if(strlen($value)>5)
fwrite($fp, $value."
"); // D, d M Y
}
flock($fp, LOCK_UN); // release the lock
} else {
echo "Couldn't lock the file !";
}
fclose($fp);
chmod($fname, 0777);
} // END function vytvorNovyAzapisDoSouboru
$mess = $_GET['mess'];
$poleVstup = array();
if(file_exists('err_mess.txt')){
$poleVstup = file('err_mess.txt');
}
array_push($poleVstup, $mess);
//print_r($poleVstup);
vytvorNovyAzapisDoSouboru('err_mess.txt', $poleVstup);
?>
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:31PHP function get first and latest character from string
// for earlier version PHP can use mb_strlen, mb_substr if use
// diacritical accent $str = 'ěščřžýáíé';
function startsWith($haystack, $needle)
{
$length = strlen($needle);
return (substr($haystack, 0, $length) === $needle);
}
function endsWith($haystack, $needle)
{
$length = strlen($needle);
if ($length == 0) {
return true;
}
return (substr($haystack, -$length) === $needle);
}
Date: 11.06.2020 - 20:10Editace: 23.5.2020 - 12:05
Počet článků v kategorii: 77
Url:htaccess-code
AD