Použití funkce preg_match () v PHP

Use Preg_match Function Php



Regulární výraz je konkrétní vzor, ​​který lze použít ke shodě, vyhledávání a nahrazení libovolného konkrétního řetězce v textových datech. Je to výkonná funkce 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. Jakýkoli konkrétní obsah textu lze vyhledat a nahradit pomocí regulárního výrazu vzor. Říká se mu také regex nebo RegExp. K definici vzoru regexu se používají různé typy symbolů.

V PHP existuje pro regulární výraz mnoho vestavěných funkcí. funkce preg_match () je jednou z nich. Tato funkce se používá pro přizpůsobení konkrétního vzoru v řetězcových datech. 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 neboNepravdivé preg_match (tětiva$ vzor,tětiva$ předmět [, pole &$ zápasy = nula [,int$ vlajky = 0 [,int$ offset = 0]]])

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



Příklad 1: Porovnejte vzor způsobem rozlišujícím malá a velká písmena

Následující příklad ukazuje použití funkce preg_match () pro přizpůsobení řetězce způsobem rozlišujícím malá a velká písmena. Vytvořte soubor PHP pomocí následujícího skriptu.



Zde se používají tři vzory pro použití 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 malá a velká písmena. Druhý vzorec, '/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 přizpůsobení řetězce způsobem, který nerozlišuje velká a malá písmena. search_pattern () funkce je definována ve skriptu pro použití funkce preg_match () pro párování a vytiskne zprávu na základě vrácené hodnoty této funkce.







// Definujte text

$ text = „Mám rád PHP. Mám také rád JavaScript. ';

// Definujte tři typy vzoru

$ vzor1 = '/Jako/';

$ vzor2 = '/jako/';

$ vzor3 = '/Jako já';

// Definujte funkci pro hledání vzoru v textu

funkcesearch_pattern($ vzor, $ řetězec)

{

-li( preg_match ($ vzor, $ řetězec))

vyhodil 'Výsledek hledání: Byla nalezena shoda pro vzor -$ vzor
'
;

jiný

vyhodil 'Výsledek hledání: U vzoru nebyl nalezen shodu -$ vzor
'
;

}

// Vytiskněte původní text

vyhodil „Původní text je: $ text
'
;

// Zavolejte funkci třikrát pro tři vzory

search_pattern($ vzor1, $ text);

search_pattern($ vzor2, $ text);

search_pattern($ vzor3, $ text);

?>

Výstup :

Po spuštění skriptu ze serveru se zobrazí následující výstup. První řádek zobrazuje text, kde byly hledány vzory. Druhý řádek zobrazuje 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 ověření adresy URL pomocí funkce preg_match (). Vytvořte soubor PHP pomocí následujícího skriptu.

V proměnné $ url pro testování je přiřazena hodnota URL. Řetězec „@^(?: Https: //)? ([^/]+) @I“ se používá jako vzor ve funkci preg_match () ke kontrole, zda je adresa URL platná nebo ne. Pokud je platný, vytiskne se název hostitele a název domény, v opačném případě se vytiskne chybová zpráva.



// Definujte URL

$ URL = 'https://www.linuxhint.com';

// Definujte vzor pro ověření adresy URL

$ vzor ='@^(?: https: //)? ([^/]+) @i';

// Zkontrolujte, zda je adresa URL platná nebo ne

-li( preg_match ($ vzor, $ URL, $ zápasy 1))

{

// Vytiskněte zprávu o úspěchu

vyhodil „Adresa URL je platná.
'
;

// Vytiskne pole, které obsahuje shodné hodnoty

vyhodil 'Hodnoty pole jsou:';

print_r ($ zápasy 1);

// Načíst a vytisknout hodnotu hostitele

$ hostitel = $ zápasy 1[1];

vyhodil '
Název hostitele je:$ hostitel'
;

// Vyhledejte název domény podle hodnoty hostitele

preg_match ('/[^.-lex.europa.eu+.[^.íritu+$/', $ hostitel, $ match2);

vyhodil '
Název domény je:{$ match2 [0]}'
;

}

jiný

{

// Vytiskněte chybovou zprávu

vyhodil 'Neplatná URL adresa.';

}

?>

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 ukazuje hodnoty shod $, název hostitele adresy URL a název domény adresy URL.

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

Následující příklad ukazuje použití hodnot příznaku a posunu ve funkci preg_match (). Vytvořte soubor PHP pomocí následujícího skriptu.

Ve skriptu jsou pro tři typy párování použity tři vzory. V první funkci preg_match () je jako vzor použito ‘/(bangla) (desh)/‘ a hodnota příznaku, je použit PREG_OFFSET_CAPTURE. Hodnoty $ zápasy proměnná se vytiskne na základě výstupu první funkce preg_match (). Ve druhé funkci preg_match () je jako vzor použito ‘/(bangla) (rád)*(desh)/i’ a je použita hodnota 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 () je jako vzor použit ‘/glad/’, hodnota příznaku, PREG_OFFSET_CAPTURE a 3 jako offsetová hodnota. 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ů

$ vzor1 = ' / (bangla) (desh) / i';

$ vzor2 = ' / (bangla) (rád) * (desh) / i';

$ vzor3 = '/rád/';


// Použití příznaku PREG_OFFSET_CAPTURE

preg_match ($ vzor1, $ text, $ zápasy,PREG_OFFSET_CAPTURE);

vyhodil '
';  

print_r ($matches);

echo '

'
;

// Použití příznaku PREG_UNMATCHED_AS_NULL

preg_match ($ vzor2, $ text, $ zápasy,PREG_UNMATCHED_AS_NULL);

vyhodil '
';  

print_r ($matches);

echo '

'
;

// Použití příznaku PREG_OFFSET_CAPTURE a hodnoty posunu

preg_match ($ vzor3, $ text, $ zápasy,PREG_OFFSET_CAPTURE, 3);

vyhodil '
';  

print_r ($matches);

echo '
'
;

?>

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 pomocí několika příkladů. Bylo zde také ukázáno použití různých argumentů této funkce. Po přečtení tohoto tutoriálu budou moci čtenáři tuto funkci ve svém skriptu správně používat.