php

Použití funkce preg_match () v PHP

Použití funkce preg_match () v PHP

Regulární výraz je konkrétní vzor, ​​který lze použít k vyhledání a nahrazení konkrétního řetězce v textových datech. Jedná se o výkonnou funkci jakéhokoli programovacího jazyka. Používá se hlavně k provádění různých typů ověřování formulářů, jako je ověřování e-mailů, kontrola formátu telefonu, ověřování polí uživatelského jména a hesla přihlašovacího formuláře atd. Libovolný konkrétní obsah textu lze vyhledat a nahradit pomocí vzoru regulárního výrazu. Nazývá se také regex nebo RegExp. K definování vzoru regulárního výrazu se používají různé typy symbolů.

V PHP existuje pro regulární výraz mnoho integrovaných funkcí. funkce preg_match () je jedním z nich. Tato funkce se používá pro shodu konkrétního vzoru v datech řetězce. V tomto tutoriálu je vysvětleno, jak lze funkci preg_match () použít v PHP k provádění různých úkolů.

Syntax:

Int nebo false preg_match (řetězec $ vzor, ​​řetězec $ předmět [, pole & $ zápasy = null [, int $ vlajky = 0 [, int $ offset = 0]]])

Tato funkce může trvat pět argumentů. První argument, $ vzor, je povinné, což definuje vzor pro shodu. Druhý argument, $ předmět, je povinné a obsahuje data řetězce, ve kterých bude vzor použit. Třetí argument, $ zápasy, je volitelné a vrací pole na základě shody. Ke čtvrtému argumentu, $ vlajky, je volitelná, která obsahuje různé typy hodnot příznaků na základě shody. K pátému argumentu, $ offset, je volitelný a lze jej použít k definování počáteční polohy hledání.

Příklad 1: Porovnejte vzor rozlišováním malých a velkých písmen

Následující příklad ukazuje použití funkce preg_match () pro shodu řetězce s rozlišováním malých a velkých písmen. Vytvořte soubor PHP s následujícím skriptem.

Zde se používají tři vzory pro aplikaci ve třech funkcích preg_match (). První vzor, '/Jako/', se používá pro párování řetězce způsobem rozlišujícím velká a malá písmena. Druhý vzor, '/jako/', se používá pro párování řetězce způsobem rozlišujícím velká a malá písmena. Třetí vzor, 'Jako já', se používá pro shodu řetězce s malými a velkými písmeny. search_pattern () funkce je definována ve skriptu pro použití funkce preg_match () pro shodu a vytiskne zprávu na základě vrácené hodnoty této funkce.

// Definujte text
$ text = "Mám rád PHP. Také mám rád JavaScript.";
// Definujte tři typy vzoru
$ pattern1 = '/ Like /';
$ pattern2 = '/ like /';
$ pattern3 = '/ Like / i';
// Definujte funkci pro vyhledávání vzoru v textu
funkce search_pattern ($ pattern, $ string)

if (preg_match ($ pattern, $ string))
echo "Výsledek hledání: Nalezne se shoda pro vzor - $ pattern
";
jiný
echo "Výsledek hledání: Shoda nebyla nalezena pro vzor - $ pattern
";

// Tisk původního textu
echo "Původní text je: $ text
";
// Volání funkce třikrát pro tři vzory
search_pattern ($ pattern1, $ text);
search_pattern ($ pattern2, $ text);
search_pattern ($ pattern3, $ text);
?>

Výstup:

Po spuštění skriptu ze serveru se zobrazí následující výstup. První řádek zobrazuje text, kde byly prohledány vzory. Druhý řádek ukazuje výstup prvního vzoru. Třetí řádek ukazuje výstup druhého vzoru. Čtvrtý řádek ukazuje výstup třetího vzoru.

Příklad 2: Ověření adresy URL

Následující příklad ukazuje způsob, jak ověřit adresu URL pomocí funkce preg_match (). Vytvořte soubor PHP s následujícím skriptem.

V proměnné $ url je pro testování přiřazena hodnota URL. '@ ^ (?: https: //)?([^ /] +) řetězec @ i 'se používá jako vzor ve funkci preg_match () ke kontrole, zda je adresa URL platná nebo ne. Pokud je platný, bude vytištěn název hostitele a název domény, jinak se vytiskne chybová zpráva.

// Definujte URL
$ url = "https: // www.linuxhint.com ";
// Definujte vzor pro ověření adresy URL
$ pattern = '@ ^ (?: https: //)?([^ /] +) @ i ';
// Zkontrolujte, zda je adresa URL platná nebo ne
if (preg_match ($ pattern, $ url, $ match1))

// Vytiskněte zprávu o úspěchu
echo "URL je platná.
";
// Vytiskne pole, které obsahuje hodnoty shody
echo "Hodnoty pole jsou:";
print_r ($ odpovídá1);
// Načíst a vytisknout hodnotu hostitele
$ host = $ zápasy1 [1];
ozvěna "
Název hostitele je: $ host ";
// Vyhledejte název domény z hodnoty hostitele
preg_match ('/ [^.] + \.[^.] + $ / ', $ host, $ zápasy2);
ozvěna "
Název domény je: $ match2 [0] ";

jiný

// Vytiskněte chybovou zprávu
echo "Neplatná adresa URL.";

?>

Výstup:

Po spuštění skriptu ze serveru se zobrazí následující výstup. Zadaná adresa URL ve skriptu je platná. Výstup tedy zobrazuje hodnoty $ odpovídá, název hostitele URL a název domény URL.

Příklad 3: Vyhledávací vzor s hodnotami vlajky a offsetu

Následující příklad ukazuje použití hodnot příznaku a offsetu ve funkci preg_match (). Vytvořte soubor PHP s následujícím skriptem.

Ve skriptu se používají tři vzory pro tři typy shody. V první funkci preg_match () se jako vzor a hodnota příznaku používá '/ (bangla) (desh) /', použije se PREG_OFFSET_CAPTURE. Hodnoty $ zápasy proměnná se vytiskne na základě výstupu první funkce preg_match (). Ve druhé funkci preg_match () se jako vzor a hodnota příznaku používá '/ (bangla) (glad) * (desh) / i', použije se PREG_UNMATCHED_AS_NULL. Pokud se některá část vzoru neshoduje, bude do pole uložena hodnota NULL. Hodnoty $ zápasy proměnná se vytiskne na základě výstupu druhé funkce preg_match (). Ve třetí funkci preg_match () se jako vzor použije '/ glad /', hodnota příznaku, PREG_OFFSET_CAPTURE a jako hodnota offsetu se použije 3. Hodnoty $ zápasy proměnná se vytiskne na základě výstupu třetí funkce preg_match ().

// Definujte textovou hodnotu
$ text = "Bangladéš";
// Definujte tři typy vzorů
$ pattern1 = '/ (bengálština) (desh) / i';
$ pattern2 = '/ (bengálština) (rád) * (desh) / i';
$ pattern3 = '/ glad /';
// Použití příznaku PREG_OFFSET_CAPTURE
preg_match ($ pattern1, $ text, $ zápasy, PREG_OFFSET_CAPTURE);
ozvěna "
";
print_r ($ odpovídá);
ozvěna "

";
// Použití příznaku PREG_UNMATCHED_AS_NULL
preg_match ($ pattern2, $ text, $ zápasy, PREG_UNMATCHED_AS_NULL);
ozvěna "
";
print_r ($ odpovídá);
ozvěna "

";
// Použití příznaku PREG_OFFSET_CAPTURE a hodnoty offsetu
preg_match ($ pattern3, $ text, $ zápasy, PREG_OFFSET_CAPTURE, 3);
ozvěna "
";
print_r ($ odpovídá);
ozvěna "
";
?>

Výstup:

Po spuštění skriptu ze serveru se zobrazí následující výstup.

Závěr

Použití funkce preg_match () bylo v tomto kurzu vysvětleno na několika příkladech. Zde byla také ukázána použití různých argumentů této funkce. Čtenáři budou moci tuto funkci správně používat ve svém skriptu po přečtení tohoto tutoriálu.

Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...
Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...
Hry Nejlepší hry Oculus App Lab
Nejlepší hry Oculus App Lab
Pokud jste vlastníkem náhlavní soupravy Oculus, musíte mít informace o bočním nakládání. Sideloading je proces instalace neukládaného obsahu do náhlav...