PHP smanji razmak oko ivica. Kako ukloniti razmake iz stringova u PHP-u? Primjer pronalaženja i zamjene prostora

Kada radite s tekstom, često ga morate formatirati. Ovo je neophodno za ispravan prikaz i laku čitljivost. Ovo je neophodno ako korisnik unese neke podatke i pogriješi: umjesto jednog razmaka, on označava dva razmaka, a na početak stavlja tabulator. Postoji nekoliko načina za uklanjanje razmaka u PHP-u.

Podrezati()

Funkcija Trim traži dodatne znakove na početku ili kraju niza. Ovo:

  • regularni prostor;
  • tabela;
  • znak prijeloma reda.

Napisano je u ovom obliku:

Smanjivanje niza (string $str [, string $character_mask = "\t\n\r\0\x0B" ])

$str je niz koji se obrađuje, a $character_mask su dodatni znakovi. $character_mask je opcioni atribut.

Preg_replace

Funkcija za traženje i zamjenu znakova pomoću regularnog izraza.

Mješoviti preg_replace (mješoviti $pattern, mješoviti $zamjena, mješoviti $subject [, int $limit = -1 [, int &$count ]])

  1. $pattern - obrazac koji tražite.
  2. $replacement - znakovi za zamjenu.
  3. $subject - objekt koji se obrađuje.
  4. $limit - broj izvršenih zamjena.

$pattern i $replacement mogu biti nizovi. U ovom slučaju, zamjena se vrši u skladu s indeksima.

Str_replace()

Možete ukloniti razmake iz stringa u PHP-u koristeći metodu str_replace(). Zamjenjuje sva pojavljivanja niza za pretraživanje zamjenskim nizom.

Mješoviti str_replace (mješovito $pretraga, miješano $replace, miješano $subject [, int &$count ])

Koristi se kao pojednostavljena metoda preg_replace().

  1. $search - vrijednost koju treba pronaći.
  2. $replace - niz koji treba zamijeniti.
  3. $subject - objekat u kojem se vrši pretraga i zamjena.
  4. $count postavlja broj zamjena.
$bodytag = str_replace("%body%", "crno", " "); // dodeljuje: Hll Wrld f PHP $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O ", "U"); $onlyconsonants = str_replace($vowels, "", "Hello World of PHP"); // dodjeljuje: Trebali biste jesti picu, pivo i sladoled svaki dan $phrase = "Trebali biste jesti voće , povrće i vlakna svaki dan."; $healthy = array("voće", "povrće", "vlakna"); $yummy = array("pica", "pivo", "sladoled"); $ newphrase = str_replace($healthy, $yummy, $phrase); // dodjeljuje: 2 $str = str_replace("ll", "", "dobro, bože, gospođice Moli!", $count); echo $count; ?>

Primjer pronalaženja i zamjene prostora

Ove funkcije se primjenjuju u većini situacija, čak i složenijih.

Na primjer, korisnik je unio neke podatke koji će kasnije biti ispisani na ekranu. Da bi se poboljšala čitljivost i percepcija teksta u cjelini, ove informacije treba obraditi - ukloniti ponovljene razmake, zamijeniti ih pojedinačnim.

$text1 = "Dugački tekst sa dodatnim razmacima";

U ovom slučaju možete vidjeti da postoje dva i tri razmaka između riječi. Procedura za uklanjanje razmaka u PHP-u je sljedeća.

1. Prvo trebate pretvoriti string u niz stringova koristeći funkciju.

Explode(“ ”, $text1)​

Jedan razmak se koristi kao graničnik. Na ovaj način će dijelovi tijela koji nisu zasebni elementi niza sadržavati jedan prostor manje.

2. Rezultat je niz nizova poput ovog:

$array = ["Dugo", "obimno", "tekst", "sa", "dodatni razmaci"]​

3. Svaki element obrađuje funkcija:

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

Za traženje jednog ili više razmaka koristite regularni izraz /\s+/. Sva pronađena podudaranja zamjenjuju se nizom ‘ ‘. Pretraga se vrši u varijabli $text1.

4. Kao rezultat, dobijamo string sa tačnim brojem razmaka, koji korisnik lako percipira.

Dobro veče, nedavno smo se malo dotakli teme lozinki i njihovog sigurnog skladištenja, naime, proučavali smo funkciju heširanja. Danas ćemo malo nastaviti temu lozinki i njihovog pohranjivanja, te ćemo proučiti funkcije s kojima možete uklonite razmake s početka i kraja niza. A evo i lozinki i uklanjanje razmaka iz niza, ti reci meni? Prvo, ova funkcija se, naravno, ne odnosi posebno na lozinke, već radi samo sa stringovima, a o lozinkama sam rekao samo kao svojoj primjeni. Stoga ga možete koristiti gdje god i kad god želite, ovisno o vašoj situaciji.

čemu služi? isecite razmake na početku i na kraju reda? Ako prilikom registracije navedete lozinku na stranici i nekako slučajno pritisnete razmaknicu i ne primijetite je, tada će se vaša lozinka sastojati, na primjer, ne od četiri znaka, već od pet, uključujući i vaš razmak. I nećete razumjeti zašto lozinka nije prikladna, jer će heš ovog niza biti drugačiji. Stoga uvijek preporučujem podrezivanje razmaka u liniji kako biste izbjegli takve nijanse. Sada ćemo prijeći na razmatranje primjera u praksi.

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

Kreiramo varijablu koja će biti naša lozinka, a posebno označavamo razmak na početku i na kraju reda. Zatim kreiramo varijablu u kojoj će heširana lozinka već biti pohranjena i propuštamo liniju trim funkcija, koji će prvo ukloniti sve nepotrebne razmake, a tek onda ćemo dobiti heširanu lozinku. A u drugoj varijabli ne koristimo funkciju za uklanjanje razmaka i odmah heširanje stringa. Zatim prikazujemo dva rezultata na ekranu pretraživača i vidimo da su potpuno različiti, iako smo oba puta koristili isti niz. Međutim, zbog razmaka rezultat je potpuno drugačiji, tako da morate biti izuzetno oprezni s ovom stvari. I poslednja stvar koju bih trebao da ti kažem. Postoje još dvije funkcije koje uklanjaju razmake na početku retka ili na kraju reda, a nazivaju se ltrim I rtrim respektivno. Stoga, ako trebate ukloniti razmake s bilo koje strane, koristite ih. I ovim završavam ovaj članak i želim vam uspjeh u svom radu.

U bilo kom jeziku, kada radite sa stringovima, tipičan zadatak je uklanjanje razmaka i na početku i na kraju reda. U PHP-u postoje tri funkcije za ove svrhe: ltrim(), rtrim(), trim(). Funkcija ltrim() uklanja razmake na početku reda, rtrim() - na kraju reda, trim() - i na početku i na kraju. Ono što je interesantno je da ove funkcije, osim razmaka, uklanjaju i sekvence za novi red, povratak nosioca, tabulator i null znakove.

$example = "\tZdravo svima\n"; var_dump(trim($example)); var_dump(rtrim($example)); var_dump(ltrim($example));

Kao rezultat dobijamo:

String "Zdravo svima" (dužina=12) string "Zdravo svima" (dužina=14) string "Zdravo svima" (dužina=13)

Ono što je najzanimljivije je da gore navedene funkcije također mogu ukloniti znakove koje je odredio korisnik. Da bi to učinili, gore navedene funkcije trebaju kao drugi argument proslijediti niz koji sadrži znakove koje treba izbrisati. Na primjer:

$example = "Zdravo svima\n"; var_dump(trim($example, "y")); var_dump(rtrim($example, " y\n")); var_dump(ltrim($primjer, " yH"));

Kao rezultat:

String "Zdravo svima " (dužina=13) string " yHi everybod" (dužina=13) string "i everybody" (dužina=12)