Při práci s textovými daty v PHP je často nutné zkontrolovat, zda řetězec obsahuje určité znaky. To může být nutné například pro validaci uživatelského vstupu nebo pro identifikaci určitých znaků na řádku.
V PHP existuje několik způsobů, jak provést takovou kontrolu. Jedním z nejjednodušších způsobů je použití funkce strpos (). Tato funkce vám umožní najít první výskyt zadaného podstavce v řádku. Pokud funkce vrátí jinou hodnotu než false, pak jsou v řádku přítomny znaky.
Kromě toho je možné použít funkci preg_match() pro složitější kontrolu znaků na řádku. Tato funkce umožňuje vyhledávání pomocí regulárních výrazů. Regulární výrazy jsou mocným nástrojem, který vám umožňuje vyhledávat šablony znaků v řádku.
V tomto článku se podíváme na oba způsoby, jak ověřit přítomnost znaků v řádku, a uvedeme příklady jejich použití. Naučíte se používat funkce strpos() a preg_match() k dosažení požadovaného výsledku.
Co jsou symboly v řádku?
Každý znak v řádku má svůj jedinečný kód. V PHP jsou symboly obvykle kódovány ve formátu UTF-8, který podporuje širokou škálu znaků z různých jazyků, včetně cyrilice, latiny, asijských a dalších znaků.
Znaky v řádku lze zobrazit a upravit pomocí různých funkcí a operací v PHP. K ověření znaků na řádku lze například použít funkci strlen(), která vrací počet znaků v řádku. Lze použít i funkci strpos() pro vyhledání konkrétního symbolu nebo podstavce v řádku.
Základní metody ověřování znaků v řádku v PHP
PHP nabízí několik metod ke kontrole znaků na řádku, což z nich dělá hlavní nástroje pro práci s textovými daty. Zvažte několik těchto metod:
1. Funkce strlen (): tato funkce vrací délku řádku počítáním počtu znaků v něm. Například následující kód Zobrazí "11", protože v řádku " Hello World! obsahuje 11 znaků:
$string = "Hello World!";echo strlen($string);
2. Funkce strpos (): tato funkce hledá první vstup zadaného symbolu nebo podstavce do řádku a vrací pozici nalezené hodnoty. Například následující kód vyvede "3", protože symbol" l "je na pozici 3 v řádku" Hello World!":
$string = "Hello World!";echo strpos($string, "l");
3. Funkce str_contains(): tato funkce, která je prezentována v PHP 8, zkontroluje, zda je na řádku zadaná podřada a vrátí true, pokud je přítomna, a false v opačném případě. Například následující kód Zobrazí "true", protože řádek " Hello World!"obsahuje podklad"World":
$string = "Hello World!";echo str_contains($string, "World");
To jsou jen některé z nejoblíbenějších metod ověřování znaků v řádku v PHP. Jejich použitím v kombinaci nebo samostatně můžete snadno provádět různé akce s textem a spravovat jeho obsah.
Metoda 1: Použití funkce str_contains()
PHP poskytuje vestavěnou funkci str_contains (), která vám umožní zkontrolovat, zda je na řádku zadaná podřada.
- str_contains($string, $substring)
- $string - zdrojový řádek, ve kterém musíte hledat podřazení
- $substring-podstavec, který musíte zkontrolovat
Funkce str_contains () vrací true , pokud je podřiště nalezeno, a false , pokud chybí podřazení v řádku.
$string = "Привет, мир!";$subtring1 = "мир";$subtring2 = "пока";if (str_contains($string, $substring1)) else if (str_contains($string, $substring2)) else
V tomto příkladu funkce str_contains() vrátí následující výsledek:
- Podklad "svět" se nachází v řádku.
- Podklad "zatím" nebyl nalezen v řádku.
Funkce str_contains () je také citlivá na registr znaků. To znamená, že pokud je podřetězec v řádku uveden v horním registru a v původním řádku je zapsán v malém písmu (a naopak), funkce vrátí false .
Metoda 2: Použití funkce strpos()
Druhý způsob kontroly znaků na řádku v PHP je založen na použití funkce strpos (). Tato funkce vyhledá první vstup zadaného symbolu nebo podstavce do zadaného řádku a vrátí jeho pozici nebo false , pokud není nalezen znak nebo podstavec.
K ověření znaků na řádku lze použít operátory podmínek a funkci strpos() . Níže je uveden příklad kódu:
$str = "Пример строки";$char = "и";if (strpos($str, $char) !== false) else
Můžete také zkontrolovat, zda je na řádku podřazena, a to tak, že předáte funkci strpos () druhý argument-podřazku, kterou je třeba najít:
$str = "Пример строки";$substring = "имер";if (strpos($str, $substring) !== false) else
Pomocí funkce strpos () a příkazů podmínek můžete zkontrolovat, zda jsou v řádku v PHP jakékoli znaky nebo podřazení.
Metoda 3: použití regulárních výrazů
K tomu lze použít funkci preg_match (). Přijímá dva argumenty: šablonu pravidelného výrazu a řádek, ve kterém je třeba hledat. Pokud je nalezena shoda, funkce vrátí 1 a pokud ne – 0.
Chcete-li například zkontrolovat jednu nebo více číslic na řádku, můžete použít následující kód:
$string = "Эта строка содержит 123 цифры";if (preg_match("/\d+/", $string)) else
V tomto příkladu šablona regulárního výrazu/ \d+ / znamená "jedna nebo více číslic". Pokud je na řádku alespoň jedna číslice, funkce preg_match () vrátí 1 a zobrazí zprávu "na řádku jsou čísla!".
Regulární výrazy mohou být velmi výkonnými a flexibilními nástroji pro vyhledávání a ověřování řádků na konkrétní znaky. Vyžadují však určité studium a praxi, aby s nimi mohli efektivně pracovat.