PHP decupează spațiile albe din jurul marginilor. Cum să eliminați spații din șiruri în PHP? Exemplu de găsire și înlocuire a spațiilor

Când lucrați cu text, de multe ori trebuie să îl formatați. Acest lucru este necesar pentru afișarea corectă și o lizibilitate ușoară. Acest lucru este necesar dacă utilizatorul introduce unele informații și face greșeli: în loc de un spațiu, el indică două spații și pune o filă la început. Există mai multe moduri de a elimina spații în PHP.

Tunde()

Funcția Trim caută caractere suplimentare la începutul sau la sfârșitul unui șir. Acest:

  • spațiu obișnuit;
  • intabulare;
  • caracter de întrerupere de linie.

Este scris sub aceasta forma:

Trim șir (șir $str [, șir $mască_caracter = "\t\n\r\0\x0B" ])

$str este șirul în curs de procesare, iar $character_mask reprezintă caracterele suplimentare. $character_mask este un atribut opțional.

Preg_replace

O funcție pentru căutarea și înlocuirea caracterelor folosind o expresie regulată.

Mixed preg_replace (mixt $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]])

  1. $pattern - modelul pe care îl căutați.
  2. $replacement - caractere de înlocuit.
  3. $subject - obiectul în curs de procesare.
  4. $limit - numărul de înlocuiri efectuate.

$pattern și $replacement pot fi matrice. În acest caz, înlocuirea se face în conformitate cu indici.

Str_replace()

Puteți elimina spații dintr-un șir în PHP folosind metoda str_replace(). Înlocuiește toate aparițiile șirului de căutare cu șirul de înlocuire.

Mixed str_replace (mixt $căutare, mixt $replace, mixt $subject [, int &$count ])

Folosită ca metodă simplificată preg_replace().

  1. $search - valoarea care trebuie găsită.
  2. $replace - șirul care trebuie înlocuit.
  3. $subiect - obiectul în care se efectuează căutarea și înlocuirea.
  4. $count stabilește numărul de înlocuiri.
$bodytag = str_replace ("%body%", "negru", " "); // atribuie: Hll Wrld f PHP $vowels = array ("a", "e", "i", "o", "u", "A", "E", "I", "O ", "U"); $onlyconsonants = str_replace($vocale, "", "Hello World of PHP"); // atribuie: Ar trebui să mănânci pizza, bere și înghețată în fiecare zi $phrase = "Ar trebui să mănânci fructe , legume și fibre în fiecare zi."; $sănătos = matrice(„fructe”, „legume”, „fibre”); $yummy = matrice(„pizza”, „bere”, „înghețată”); ​​$ noua frază = str_replace($sănătos, $yummy, $frază); // atribuie: 2 $str = str_replace("ll", "", "bună, doamnă, dor Molly!", $număr); echo $număr; ?>

Exemplu de găsire și înlocuire a spațiilor

Aceste funcții se aplică în majoritatea situațiilor, chiar și în cele mai complexe.

De exemplu, utilizatorul a introdus unele date care vor fi ulterior tipărite pe ecran. Pentru a îmbunătăți lizibilitatea și percepția textului în ansamblu, aceste informații trebuie procesate - eliminați spațiile repetate, înlocuiți-le cu unele singure.

$text1 = "Text lung cu spații suplimentare";

În acest caz, puteți vedea că există două și trei spații între cuvinte. Procedura pentru eliminarea spațiilor în PHP este următoarea.

1. Mai întâi trebuie să transformați un șir într-o matrice de șiruri folosind o funcție.

Explode(“ ”, $text1)​

Un singur spațiu este folosit ca delimitator. În acest fel, părțile corpului care nu sunt elemente separate ale matricei vor conține un spațiu mai puțin.

2. Rezultatul este o matrice de șiruri ca acesta:

$array = ["Lung", "volum", "text", "cu", "spații suplimentare"]​

3. Fiecare element este procesat de o funcție:

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

Pentru a căuta unul sau mai multe spații, utilizați expresia regulată /\s+/. Toate potrivirile găsite sunt înlocuite cu șirul „ „. Căutarea se efectuează în variabila $text1.

4. Ca rezultat, obținem un șir cu numărul corect de spații, care este ușor de perceput de către utilizator.

Buna seara, recent am atins putin pe tema parolelor si stocarea lor securizata si anume, am studiat functia de hashing. Astăzi vom continua puțin subiectul parolelor și stocarea acestora și vom studia funcțiile cu care puteți eliminați spații de la începutul și sfârșitul unui șir. Și aici sunt parolele și eliminarea spațiilor dintr-un șir, să-mi spuneți? În primul rând, această funcție, desigur, nu se referă în mod specific la parole, ci funcționează doar cu șiruri de caractere și am spus despre parole doar ca aplicație. Prin urmare, îl puteți folosi oriunde și oricând doriți, în funcție de situația dvs.

Pentru ce este? tăiați spațiile la începutul și la sfârșitul liniei? Dacă specificați o parolă pe site la înregistrare și apăsați cumva din greșeală bara de spațiu și nu o observați, atunci parola dvs. va consta, de exemplu, nu din patru caractere, ci din cinci, inclusiv spațiul dvs. Și nu veți înțelege de ce parola nu este potrivită, deoarece hash-ul acestui șir va fi diferit. Prin urmare, recomand întotdeauna tăierea spațiilor într-o linie pentru a evita astfel de nuanțe. Acum vom continua să luăm în considerare un exemplu în practică.

$string_pass = " 1234 " ;
$parolă = md5(trim($string_pass ));
$parola2 = md5($string_pass);
ecou $parola;
ecou "
"
;
ecou $parola2;
?>

Creăm o variabilă care va fi parola noastră și indicăm în mod specific un spațiu la începutul și la sfârșitul rândului. Apoi, creăm o variabilă în care parola hashed va fi deja stocată și trecem linia funcția de tăiere, care va elimina mai întâi toate spațiile inutile și abia apoi vom obține parola codificată. Și în a doua variabilă nu folosim funcția pentru a elimina spații și imediat hash șirul. Afișăm apoi cele două rezultate pe ecranul browserului și vedem că sunt complet diferite, chiar dacă am folosit același șir de ambele ori. Cu toate acestea, din cauza spațiilor, rezultatul este complet diferit, așa că trebuie să fii extrem de atent cu această chestiune. Și un ultim lucru pe care ar trebui să-ți spun. Mai există două funcții care elimină spații la începutul unei linii sau la sfârșitul unei linii și sunt numite ltrimȘi rtrim respectiv. Prin urmare, dacă trebuie să eliminați spații din oricare dintre laturi, folosiți-le. Și cu asta închei acest articol și îți doresc succes în toată munca ta.

În orice limbă, atunci când lucrați cu șiruri, o sarcină tipică este eliminarea spațiilor atât la începutul cât și la sfârșitul liniei. În PHP există trei funcții pentru aceste scopuri: ltrim(), rtrim(), trim(). Funcția ltrim() elimină spații la începutul unei linii, rtrim() - la sfârșitul unei linii, trim() - atât la început, cât și la sfârșit. Ceea ce este interesant este că aceste funcții, pe lângă spații, îndepărtează și secvențele de evadare a caracterelor nule, returnarea căruciorului, tabularea și nul.

$example = "\Salut tuturor\n"; var_dump(trim($exemplu)); var_dump(rtrim($exemplu)); var_dump(ltrim($exemplu));

Ca rezultat obținem:

String „Hi everybody” (lungime=12) șir „Hi everybody” (lungime=14) șir „Hi everybody” (lungime=13)

Cel mai interesant este că funcțiile de mai sus pot elimina și caracterele specificate de utilizator. Pentru a face acest lucru, funcțiile de mai sus trebuie să treacă ca al doilea argument un șir care conține caracterele de șterse. De exemplu:

$example = "Salut tuturor\n"; var_dump(trim($exemplu, " y")); var_dump(rtrim($exemplu, " y\n")); var_dump(ltrim($exemplu, " yH"));

Ca urmare:

String „Hi everybody” (lungime=13) șir „yHi everybod” (lungime=13) șir „eu everybody” (lungime=12)