Php orezať biele miesta okolo okrajov. Ako odstrániť medzery z reťazcov v PHP? Príklad hľadania a nahrádzania medzier

Pri práci s textom ho často musíte formátovať. Je to potrebné pre správne zobrazenie a ľahkú čitateľnosť. Je to potrebné, ak používateľ zadá nejaké informácie a urobí chyby: namiesto jednej medzery uvedie dve medzery a na začiatok umiestni tabulátor. Existuje niekoľko spôsobov, ako odstrániť medzery v PHP.

Trim()

Funkcia Trim hľadá ďalšie znaky na začiatku alebo konci reťazca. toto:

  • pravidelný priestor;
  • tabelácia;
  • znak zalomenia riadku.

Píše sa v tejto forme:

Orezanie reťazca (reťazec $str [, reťazec $character_mask = "\t\n\r\0\x0B" ])

$str je spracovávaný reťazec a $character_mask sú znaky navyše. $character_mask je voliteľný atribút.

Preg_replace

Funkcia na vyhľadávanie a nahradzovanie znakov pomocou regulárneho výrazu.

Zmiešané preg_replace (zmiešaný $vzor , zmiešaný $replacement , zmiešaný $predmet [, int $limit = -1 [, int &$count ]])

  1. $pattern - vzor, ​​ktorý hľadáte.
  2. $replacement - znaky na nahradenie.
  3. $predmet - objekt, ktorý sa spracováva.
  4. $limit - počet vykonaných výmen.

$pattern a $replacement môžu byť polia. V tomto prípade sa výmena vykoná v súlade s indexmi.

Str_replace()

Medzery môžete z reťazca v PHP odstrániť pomocou metódy str_replace(). Nahradí všetky výskyty hľadaného reťazca náhradným reťazcom.

Zmiešané str_replace (zmiešané $search , zmiešané $nahradiť , zmiešané $predmet [, int &$count ])

Používa sa ako zjednodušená metóda preg_replace().

  1. $search – hodnota, ktorá sa má nájsť.
  2. $nahradiť – reťazec, ktorý sa má nahradiť.
  3. $predmet - objekt, v ktorom sa vykonáva vyhľadávanie a nahrádzanie.
  4. $count nastavuje počet výmen.
$bodytag = str_replace("%body%", "black", " "); // priradí: Hll Wrld f PHP $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O" ", "U"); $onlyconsonants = str_replace($vowels, "", "Ahoj svet PHP"); // priradí: Každý deň by si mal jesť pizzu, pivo a zmrzlinu $phrase = "Mali by ste jesť ovocie , zelenina a vláknina každý deň."; $healthy = array("ovocie", "zelenina", "vláknina"); $yummy = array("pizza", "pivo", "zmrzlina"); ​​$ newphrase = str_replace($healthy, $yummy, $phrase); // priradí: 2 $str = str_replace("ll", "", "dobrá slečna molly!", $count); echo $count; ?>

Príklad hľadania a nahrádzania medzier

Tieto funkcie platia vo väčšine situácií, dokonca aj v zložitejších.

Používateľ napríklad zadal niektoré údaje, ktoré sa neskôr vytlačia na obrazovku. Na zlepšenie čitateľnosti a vnímania textu ako celku je potrebné tieto informácie spracovať - ​​odstrániť opakované medzery, nahradiť ich jednotlivými.

$text1 = "Dlhý text s medzerami navyše";

V tomto prípade môžete vidieť, že medzi slovami sú dve a tri medzery. Postup na odstránenie medzier v PHP je nasledujúci.

1. Najprv musíte pomocou funkcie premeniť reťazec na pole reťazcov.

Explode(“ ”, $text1)​

Ako oddeľovač sa používa jedna medzera. Týmto spôsobom budú časti tela, ktoré nie sú samostatnými prvkami poľa, obsahovať o jeden priestor menej.

2. Výsledkom je pole reťazcov, ako je toto:

$array = ["Dlhé", "objemné", "text", "s", "medzery navyše"]​

3. Každý prvok je spracovaný funkciou:

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

Ak chcete vyhľadať jednu alebo viac medzier, použite regulárny výraz /\s+/. Všetky nájdené zhody sú nahradené reťazcom „ “. Vyhľadávanie sa vykonáva v premennej $text1.

4. V dôsledku toho dostaneme reťazec so správnym počtom medzier, ktorý používateľ ľahko vníma.

Dobrý večer, nedávno sme sa trochu dotkli témy hesiel a ich bezpečného ukladania, konkrétne sme študovali funkciu hashovania. Dnes budeme v téme hesiel a ich ukladania trochu pokračovať a preštudujeme si funkcie, s ktorými môžete odstráňte medzery zo začiatku a konca reťazca. A tu sú heslá a odstránenie medzier z reťazca, Povedz mi? Po prvé, táto funkcia sa, samozrejme, netýka konkrétne hesiel, ale pracuje iba s reťazcami a o heslách som hovoril len ako o jej aplikácii. Preto ho môžete použiť kdekoľvek a kedykoľvek budete chcieť, podľa vašej situácie.

Načo to je? orezať medzery na začiatku a na konci riadku? Ak na stránke pri registrácii zadáte heslo a nejakým spôsobom omylom stlačíte medzerník a nevšimnete si ho, tak vaše heslo nebude pozostávať napríklad zo štyroch znakov, ale z piatich, vrátane vašej medzery. A nebudete chápať, prečo heslo nie je vhodné, pretože hash tohto reťazca bude iný. Preto vždy odporúčam orezávať medzery v riadku, aby ste sa vyhli takýmto nuansám. Teraz prejdeme na príklad z praxe.

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

Vytvoríme premennú, ktorá bude naším heslom a konkrétne uvedieme medzeru na začiatku a na konci riadku. Ďalej vytvoríme premennú, v ktorej už bude uložené hashované heslo, a prejdeme cez ňu funkcia trimovania, ktorý najskôr odstráni všetky nepotrebné medzery a až potom získame zahašované heslo. A v druhej premennej nepoužívame funkciu na odstraňovanie medzier a okamžite hashujeme reťazec. Potom zobrazíme dva výsledky na obrazovke prehliadača a vidíme, že sú úplne odlišné, aj keď sme v oboch prípadoch použili rovnaký reťazec. Vzhľadom na priestory je však výsledok úplne iný, preto si treba na túto záležitosť dávať veľký pozor. A posledná vec, ktorú by som vám mal povedať. Existujú dve ďalšie funkcie, ktoré odstraňujú medzery na začiatku riadku alebo na konci riadku a nazývajú sa ltrim A rtrim resp. Preto, ak potrebujete odstrániť medzery z niektorej zo strán, použite ich. A týmto uzatváram tento článok a prajem vám veľa úspechov vo vašej práci.

V akomkoľvek jazyku je pri práci s reťazcami typickou úlohou odstraňovať medzery na začiatku aj na konci riadku. V PHP sú na tieto účely tri funkcie: ltrim(), rtrim(), trim(). Funkcia ltrim() odstraňuje medzery na začiatku riadku, rtrim() - na konci riadku, trim() - na začiatku aj na konci. Zaujímavé je, že tieto funkcie okrem medzier odstraňujú aj nový riadok, návrat vozíka, tabulátor a sekvencie escape znaku null.

$example = "\tAhojte všetci\n"; var_dump(trim($príklad)); var_dump(rtrim($príklad)); var_dump(ltrim($príklad));

V dôsledku toho dostaneme:

Reťazec „Ahoj všetci“ (dĺžka=12) reťazec „Ahoj všetci“ (dĺžka=14) reťazec „Ahoj všetci“ (dĺžka=13)

Najzaujímavejšie je, že vyššie uvedené funkcie dokážu odstrániť aj používateľom zadané znaky. Na to je potrebné, aby vyššie uvedené funkcie odovzdali ako druhý argument reťazec obsahujúci znaky, ktoré sa majú vymazať. Napríklad:

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

Ako výsledok:

Reťazec "Ahoj všetci" (dĺžka=13) reťazec "ahoj všetci" (dĺžka=13) reťazec "aj všetci" (dĺžka=12)