Re: Regulérní výrazy regex nápady a šablony
AD MOB
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 | |
77LW NO topic_id
AD
Další témata ....(Topics)
Php funkce, která vrátí string, jehož první písmeno bude změněno na velké a pracuje s diakritikou.
Pokud Vám PHP oznámí, že voláte neznámou funkci s prefixem mb_ tak je nutné přidat (odkomentovat) extension v php.ini
extension=php_mbstring.dll
Nutné je, aby jste upravili správný php.ini soubor, můžete jich míti více na disku a dále je nutné, aby jste měli příslušnou dll knihovnu v adresáři extension_dir
extension_dir = "C:\PHP\ext"
tedy php_mbstring.dll
Pokud Vám PHP oznámí, že voláte neznámou funkci s prefixem mb_ tak je nutné přidat (odkomentovat) extension v php.ini
extension=php_mbstring.dll
Nutné je, aby jste upravili správný php.ini soubor, můžete jich míti více na disku a dále je nutné, aby jste měli příslušnou dll knihovnu v adresáři extension_dir
extension_dir = "C:\PHP\ext"
tedy php_mbstring.dll
//////////////////////////////
function setFirstLetterToUpper($vstup)
{ // BEGIN function
if(mb_strlen($vstup)==1){
return mb_strtoupper($vstup);
}else if(mb_strlen($vstup)>1){
$upper = mb_strtoupper($vstup);
$vstup = mb_substr($upper, 0, 1).mb_substr($vstup,1,mb_strlen($vstup) - 1);
return $vstup;
}else
return $vstup;
} // END function
CORS-Cross-Origin-Resource-Sharing Header set Access-Control-Allow-Origin Source Code Example
Usefull Links here
https://www.w3.org/wiki/CORS_EnabledApache .htaccess Allow File Types
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
<FilesMatch ".(bmp|cur|gif|ico|jpe?g|png|svgz?|webp)$">
SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "*" env=IS_CORS
</FilesMatch>
</IfModule>
</IfModule>
.htaccess which is closest to the file!!!!!
Date: 17.06.2020 - 08:09Kontrola zda database existuje, zmena opravneni, vytvoreni nove, nebo jeji otevreni kdyz existuj
$path_to_database = "CESTA_K_SOUBOURU/database.sqlite";
// zmena opravneni / chmod permission
if(file_exists($path_to_database))
chmod($path_to_database,01777);
// otevreni , vytvoreni databaze
$db = new SQLiteDatabase($path_to_database);
vlozeni tabulky s nazvem test, mozno bezpecne vkladat text v UNICODE
$db->query("
CREATE TABLE test
(url VARCHAR(55),
title VARCHAR(55),
keywords VARCHAR(500),
content_of_page VARCHAR(2500),
date DATE(50),
revision DATE(50),
visit INTEGER(8),
PRIMARY KEY (url),
UNIQUE (url))");
// vlozeni dat do tabulky test
$query = $db->query("INSERT INTO test (url,title,keywords,date,c,visit) VALUES (""
.$url."",""
.$title."",""
.$"keywords."",""
.$datum."",""
.$text_of_page."",""
."1"."")", $error);
// update tabulky / radku, prepis jiz existujicich dat
$query = $db->query("UPDATE test SET $query = $dbb->query("UPDATE test SET obsah="".$text_novy
."", title="".$title_new
."", keywords="".$keywords_new
."", revision="".date("j.n.Y - H:i")
."" WHERE url="".$url.""", $error);
}
if (!$query) {
exit("Error in query: "$error"");
} else {
echo "Number of rows modified: ", $dbb->changes();
}
// vyber vsech dat z tabulky test
$resss = $db->unbufferedQuery("SELECT * FROM test");
// prochazeni vysledku vyberu z tabulky
foreach ($resss as $row) { // iterate through result object
print $row["url"];
print $row["title"];
// atd. .... etc. ....
} // end foreach
// presne hledani v tabulce nebo substring / pokud hledame jen substring tak dame % pred pokude ma byt cokoliv vpredu, nebo za pokud vzadu
// pokud jsou procenta vpredu i vzadu, tak najde napriklad predblablavzadu
$resss = $db->unbufferedQuery("SELECT * FROM test WHERE title LIKE %blabla%");
// ziskat setrideny vyber a max pocet vybranych poloze / na konec dotazu pridame:
ORDER BY title DESC LIMIT 50
// setridi podle tituku a vybere 50 radku
// smazani urciteho radku dle obsahu nektereho ze sloupcu
$ur = "www.domena.com/blahblah.php"
$query = $dbb->query("delete from test where url like "$ur"");
Pokud chceme při kompilaci kódu zobrazit chybová hlášení,
odkomentujeme příslušné řádky v souboru php.ini, jehož adresu
získáme pomocí funkce phpinfo() a přepneme Off na On u
display_errors.
Podrobnosti se dočtete v komentářích k jednotlivým nastavením v php.ini
Podrobnosti se dočtete v komentářích k jednotlivým nastavením v php.ini
error_reporting = E_ALL & ~E_NOTICE // vypise i parse errors
display_errors = On
IPV6 má jiný formát znaků a pokud se hlásíme na stránku pomocí IP tak navíc může být pokaždé jiná
i když dříve jsme měli pokaždé stejnou. Takže jak na to v php.
Získám IP adresu pomocí funkce:
Získanou adresu definuji jako konstantu, ALE jen tu část začátku, které se shoduje z IP například s předešlého dne
a ta bude vždy stejná:
Tu část pak porovnávám při kontrole zda se jedná o mou adresu:
i když dříve jsme měli pokaždé stejnou. Takže jak na to v php.
Získám IP adresu pomocí funkce:
function getip(){
if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
else $ip = UNKNOWN;
return $ip;
}
Získanou adresu definuji jako konstantu, ALE jen tu část začátku, které se shoduje z IP například s předešlého dne
a ta bude vždy stejná:
define("MY_IPV6","2b00:1027:904d:9e6z");
Tu část pak porovnávám při kontrole zda se jedná o mou adresu:
$ip = getip();
if( strpos($ip, MY_IPV6) !== false ){
// kdyz je moje IP provedu prihlaseni
}
Editace: 1554973924
Počet článků v kategorii: 77
Url:re-regulerni-vyrazy-regex-napady-a-sablony-id-2314
AD