Php ořízne mezery kolem okrajů. Jak odstranit mezery z řetězců v PHP? Příklad hledání a nahrazení mezer

Při práci s textem jej často musíte formátovat. To je nezbytné pro správné zobrazení a snadnou čitelnost. To je nutné, pokud uživatel zadá nějaké informace a udělá chyby: místo jedné mezery označí dvě mezery a na začátek umístí tabulátor. Existuje několik způsobů, jak odstranit mezery v PHP.

Oříznout()

Funkce Trim hledá další znaky na začátku nebo na konci řetězce. Tento:

  • pravidelný prostor;
  • tabelování;
  • znak konce řádku.

Píše se v tomto tvaru:

Oříznutí řetězce (řetězec $str [, řetězec $character_mask = "\t\n\r\0\x0B" ])

$str je zpracovávaný řetězec a $character_mask jsou další znaky. $character_mask je volitelný atribut.

Preg_replace

Funkce pro vyhledávání a nahrazování znaků pomocí regulárního výrazu.

Smíšené preg_replace (smíšené $pattern , smíšené $replacement , smíšené $předmět [, int $limit = -1 [, int &$count ]])

  1. $pattern - vzor, ​​který hledáte.
  2. $replacement - znaky k nahrazení.
  3. $předmět - zpracovávaný objekt.
  4. $limit - počet provedených výměn.

$pattern a $replacement mohou být pole. V tomto případě se výměna provádí v souladu s indexy.

Str_replace()

Mezery z řetězce v PHP můžete odstranit pomocí metody str_replace(). Nahradí všechny výskyty hledaného řetězce náhradním řetězcem.

Smíšené str_replace (smíšené $search , smíšené $nahradit , smíšené $předmět [, int &$count ])

Používá se jako zjednodušená metoda preg_replace().

  1. $search – hodnota, která má být nalezena.
  2. $nahradit – řetězec, který má být nahrazen.
  3. $předmět - objekt, ve kterém se provádí hledání a nahrazování.
  4. $count nastavuje počet výměn.
$bodytag = str_replace("%body%", "black", " "); // přiřadí: Hll Wrld f PHP $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O" ", "U"); $onlyconsonants = str_replace($vowels, "", "Hello World of PHP"); // assigns: Měli byste jíst pizzu, pivo a zmrzlinu každý den $phrase = "Měli byste jíst ovoce , zeleninu a vlákninu každý den."; $healthy = array("ovoce", "zelenina", "vláknina"); $yummy = array("pizza", "pivo", "zmrzlina"); ​​$ newphrase = str_replace($healthy, $yummy, $phrase); // přiřadí: 2 $str = str_replace("ll", "", "dobrá slečno molly!", $count); echo $count; ?>

Příklad hledání a nahrazení mezer

Tyto funkce se uplatní ve většině situací, i těch složitějších.

Uživatel například zadal některá data, která se později vytisknou na obrazovku. Pro zlepšení čitelnosti a vnímání textu jako celku je potřeba tyto informace zpracovat – odstranit opakované mezery, nahradit je jednotlivými.

$text1 = "Dlouhý text s mezerami navíc";

V tomto případě můžete vidět, že mezi slovy jsou dvě a tři mezery. Postup pro odstranění mezer v PHP je následující.

1. Nejprve musíte pomocí funkce proměnit řetězec na pole řetězců.

Explode(“ ”, $text1)​

Jako oddělovač se používá jedna mezera. Tímto způsobem budou části těla, které nejsou samostatnými prvky pole, obsahovat o jeden prostor méně.

2. Výsledkem je pole řetězců, jako je toto:

$array = ["Dlouhý", "objemný", "text", "s", "mezery navíc"]​

3. Každý prvek je zpracován funkcí:

Preg_replace("/\s+/", " ", $text1)​

Chcete-li vyhledat jednu nebo více mezer, použijte regulární výraz /\s+/. Všechny nalezené shody jsou nahrazeny řetězcem „ “. Vyhledávání se provádí v proměnné $text1.

4. Výsledkem je řetězec se správným počtem mezer, který uživatel snadno vnímá.

Dobrý večer, nedávno jsme se trochu dotkli tématu hesel a jejich bezpečného uložení, konkrétně jsme studovali funkci hašování. Dnes budeme v tématu hesel a jejich ukládání trochu pokračovat a prostudujeme si funkce, se kterými můžete odstranit mezery ze začátku a konce řetězce. A zde jsou hesla a odstranění mezer z řetězce, to mi řekni ty? Za prvé, tato funkce se samozřejmě netýká konkrétně hesel, ale pracuje pouze s řetězci a o heslech jsem hovořil pouze jako o její aplikaci. Proto jej můžete použít kdekoli a kdykoli budete chtít, podle vaší situace.

K čemu to je? oříznout mezery na začátku a na konci řádku? Pokud na webu při registraci zadáte heslo a nějakým způsobem omylem stisknete mezerník a nevšimnete si toho, pak se vaše heslo nebude skládat například ze čtyř znaků, ale z pěti, včetně vaší mezery. A nebudete chápat, proč heslo není vhodné, protože hash tohoto řetězce bude jiný. Proto vždy doporučuji ořezat mezery v řádku, aby se předešlo takovým nuancím. Nyní přejdeme k příkladu z praxe.

$string_pass = " 1234 " ;
$password = md5(trim($string_pass ));
$password2 = md5($string_pass );
echo $heslo;
echo "
"
;
echo $heslo2;
?>

Vytvoříme proměnnou, která bude naším heslem a konkrétně označíme mezeru na začátku a na konci řádku. Dále vytvoříme proměnnou, ve které již bude hashované heslo uloženo, a projdeme jím řádek funkce trimování, který nejprve odstraní všechny nepotřebné mezery a teprve poté získáme hashované heslo. A v druhé proměnné nepoužijeme funkci k odstranění mezer a hned zahašujeme řetězec. Poté zobrazíme dva výsledky na obrazovce prohlížeče a vidíme, že jsou zcela odlišné, i když jsme v obou případech použili stejný řetězec. Vzhledem k mezerám je ale výsledek úplně jiný, takže je potřeba být s touto záležitostí maximálně obezřetný. A poslední věc, kterou bych vám měl říct. Existují dvě další funkce, které odstraňují mezery na začátku řádku nebo na konci řádku, a nazývají se ltrim A rtrim respektive. Pokud tedy potřebujete odstranit mezery z některé ze stran, použijte je. A tímto uzavírám tento článek a přeji vám mnoho úspěchů ve vaší práci.

V jakémkoli jazyce je při práci s řetězci typickým úkolem odstranění mezer na začátku i na konci řádku. V PHP jsou pro tyto účely tři funkce: ltrim(), rtrim(), trim(). Funkce ltrim() odstraňuje mezery na začátku řádku, rtrim() - na konci řádku, trim() - na začátku i na konci. Zajímavé je, že tyto funkce kromě mezer odstraňují také sekvence nového řádku, návratu vozíku, tabulátoru a nulového znaku escape.

$example = "\tAhoj všichni\n"; var_dump(trim($příklad)); var_dump(rtrim($příklad)); var_dump(ltrim($příklad));

V důsledku toho dostaneme:

Řetězec "Ahoj všichni" (délka=12) řetězec "Ahoj všichni" (délka=14) řetězec "Ahoj všichni" (délka=13)

Nejzajímavější je, že výše uvedené funkce mohou také odstranit uživatelem zadané znaky. K tomu musí výše uvedené funkce předat jako druhý argument řetězec obsahující znaky, které mají být odstraněny. Například:

$example = "Ahoj všichni\n"; var_dump(trim($příklad, " y")); var_dump(rtrim($příklad, " y\n")); var_dump(ltrim($příklad, " yH"));

Jako výsledek:

Řetězec "Ahoj všichni" (délka=13) řetězec "ahoj všichni" (délka=13) řetězec "já všichni" (délka=12)