Funkcije niza php skraćuju niz. Skraćivanje PHP niza: jednostavni načini

Stranica pretpostavlja odgovarajuću promjenu svojih stranica ovisno o uređaju koji posjetitelj koristi. Ako se radi o blok i inline elementima, gotovo sve podliježe "automatizaciji" pomoću CSS -a i JavaScript, teško je bez poslužitelja prilikom generiranja sadržaja i korištenja baza podataka.

Obično skraćujemo string u PHP -u ​​kada HTML element slaganje slova ima ograničenje broja znakova koji su vidljivi, ali ovo je privatni problem.

Tradicionalno rješenje

Jedna od najpopularnijih i često korištenih funkcija je substr (). Na njega se prenose dva ili tri parametra:

  • izvorni niz;
  • početna pozicija ($ iPos);
  • dužina podniza za rezanje ($ iLen).

Posljednji parametar se može izostaviti. Ako su navedena samo dva parametra: substr () će rezultirati podnizom, od početne pozicije ($ iPos) do kraja izvornog niza. Ako su prošla tri parametra, tada smo prekinuli PHP string od početne pozicije ($ iPos) do navedene dužine ($ iLen).

Pomoću ove funkcije moguće je odabrati samo početak retka kada je prvi parametar jednak nuli. Ako je početna pozicija negativna, tada će PHP smatrati znak na poziciji $ iPos s kraja retka kao početak s kojeg smo izrezali niz. Znakovi su numerisani u nizu od nule.

Posebna funkcija

PHP razmatra zadatak "skraćivanja niza" (u širem smislu) u kontekstu: s obje strane. Istorijski gledano, ovo je funkcija trim () koja ima za cilj uklanjanje beznačajnih znakova:

  • prostori;
  • prelomi redova;
  • povrat kočije;
  • tabeliranje;
  • null znakovi

na oba kraja linije. Ovo je vrlo korisna funkcija, posebno pri radu s bazama podataka, uzorak iz kojih često sadrži mnogo praznina. Korištenje funkcije explode () također često rezultira dodatnim znakovima s početka i kraja niza.

Međutim, ne koriste svi programeri trim () u potpunosti. Za zadatak "trim string" PHP predlaže korištenje drugog parametra funkcije, gdje možete navesti bilo koji skup znakova koje treba ukloniti iz izvornog niza.

Bitno je da se znakovi uklanjaju samo s početka i s kraja izvornog niza. Važno je da manipulacijom maski izbrisanih znakova i redoslijeda podzadataka.

  • Prvo, obrezujemo niz u PHP -u ​​jednu po jednu masku.
  • Zatim još jedan.
  • Zatim na trećem.

Kao rezultat niza opcija za korištenje jedne funkcije, odrezali smo tekst u PHP -u ​​jer je to potrebno za rješavanje trenutnog zadatka.

Nestandardni načini

Ako ne uzmete u obzir cijeli raspon nizova funkcija jezika, par funkcija explode () / implode () i funkcija str_replace () omogućuju vam rješavanje nestandardnih zadataka "rezanja" informacija o nizu.

Rezultat MySQL upit je uvijek formalan u strukturi vraćenih informacija, a sadržaj polja (elemenata) rezultata uvijek određuje izvor, odnosno programer koji je dizajnirao bazu podataka.

Ovo je poseban primjer, ali točno odgovara na pitanje: kako obrezati niz u PHP -u ​​ako postoji mnogo nizova. Funkcija trm () je posebna, a njezina povijest određena je zadacima, kada nije bilo puno podataka, a nije bilo potrebno odrezati ništa osim beznačajnih znakova.

Danas informacije kruže u velikim količinama i rezanje po linija nije samo nepotrebno, već je i iracionalno.

Cijepanje je također opcija za podrezivanje žice. PHP će eksplodirati () automatski izrezati jedan veliki tekst u mnoge potrebne redove. Korištenjem funkcije str_replace () - odnosno zamjenom jednog pojavljivanja znakova drugim - možete postići sličan učinak.

Dinamika i količina informacija koje je potrebno obraditi prije svega je adekvatno rješenje, a ne upotreba jedne posebne funkcije.

Prilagodljivi izgled web stranice pretpostavlja odgovarajuću promjenu stranica ovisno o uređaju koji posjetitelj koristi. Iako se gotovo sve što se tiče blokiranih i umetnutih elemenata može „automatizirati“ pomoću CSS -a i JavaScript -a, teško je bez poslužitelja pri generiranju sadržaja i korištenju baza podataka.

Obično skraćujemo niz u PHP -u ​​kada element HTML izgleda ima ograničenje broja znakova koji su vidljivi, ali ovo je privatni zadatak.

Tradicionalno rješenje

Jedna od najpopularnijih i često korištenih funkcija je substr (). Na njega se prenose dva ili tri parametra:

    izvorni niz; početna pozicija ($ iPos); dužina podniza za rezanje ($ iLen).

Posljednji parametar se može izostaviti. Ako su navedena samo dva parametra: substr () će rezultirati podnizom, od početne pozicije ($ iPos) do kraja izvornog niza. Ako su prenesena tri parametra, obrežite PHP niz od početne pozicije ($ iPos) do navedene dužine ($ iLen).

Pomoću ove funkcije moguće je odabrati samo početak retka kada je prvi parametar jednak nuli. Ako je početna pozicija negativna, tada će PHP smatrati znak na poziciji $ iPos s kraja retka kao početak s kojeg smo izrezali niz. Znakovi su numerisani u nizu od nule.

Posebna funkcija

PHP razmatra zadatak "skraćivanja niza" (u širem smislu) u kontekstu: s obje strane. Istorijski gledano, ovo je funkcija trim () koja ima za cilj uklanjanje beznačajnih znakova:

    prostori; prelomi redova; povrat kočije; tabeliranje; null znakovi

na oba kraja linije. Ovo je vrlo korisna funkcija, posebno pri radu s bazama podataka, uzorak iz kojih često sadrži mnogo praznina. Korištenje funkcije explode () također često rezultira dodatnim znakovima s početka i kraja niza.

Međutim, ne koriste svi programeri trim () u potpunosti. Za zadatak "trim string" PHP predlaže korištenje drugog parametra funkcije, gdje možete navesti bilo koji skup znakova koje treba ukloniti iz izvornog niza.


Bitno je da se znakovi uklanjaju samo s početka i s kraja izvornog niza. Važno je da manipulacijom maski izbrisanih znakova i redoslijeda podzadataka.

    Prvo, obrezujemo niz u PHP -u ​​jednu po jednu masku. Zatim još jedan. Zatim na trećem.

Kao rezultat niza opcija za korištenje jedne funkcije, odrezali smo tekst u PHP -u ​​jer je to potrebno za rješavanje trenutnog zadatka.

Nestandardni načini

Ako ne uzmete u obzir cijeli raspon nizova funkcija jezika, par funkcija explode () / implode () i funkcija str_replace () omogućuju vam rješavanje nestandardnih zadataka "rezanja" informacija o nizu.


Rezultat MySQL upita uvijek je formalan u strukturi vraćenih informacija, a sadržaj polja (elemenata) rezultata uvijek određuje izvor, odnosno programer koji je dizajnirao bazu podataka.

Ovo je poseban primjer, ali točno odgovara na pitanje: kako obrezati niz u PHP -u ​​ako postoji mnogo nizova. Funkcija trm () je posebna, a njezina povijest određena je zadacima, kada nije bilo puno podataka, a nije bilo potrebno odrezati ništa osim beznačajnih znakova.

Danas informacije kruže u velikim količinama i rezanje po linija nije samo nepotrebno, već je i iracionalno.

Cijepanje je također opcija za podrezivanje žice. PHP će eksplodirati () automatski izrezati jedan veliki tekst u mnoge potrebne redove. Korištenjem funkcije str_replace () - odnosno zamjenom jednog pojavljivanja znakova drugim - možete postići sličan učinak.


Dinamika i količina informacija koje je potrebno obraditi prije svega je adekvatno rješenje, a ne upotreba jedne posebne funkcije.

Mrežne konsultacije o održavanju lokacije u Uljanovsku: ICQ # 179104682

Kako obrezati ćiriličnu žicu pomoću koristeći PHP

Datum objavljivanja članka: 01.06.2014

Izrada web mjesta u Uljanovsku sa ozbiljnom funkcionalnošću i interakcija s bazama podataka vrlo često zahtijevaju da određena linija ne prelazi određeni određeni volumen. To može biti potrebno, na primjer, kako bi se ograničio broj znakova prenesenih na poslužitelj baze podataka pomoću polja za unos, za prikazivanje samo dijela retka na stranici web stranice (na primjer, pri generiranju najava vijesti jednake visine na popisu) i za mnoge druge zadatke.

Prva stvar na koju nailaze programeri početnici je PHP funkcija substr. Zaista se koristi za obrezivanje nizova i njegova sintaksa nije komplicirana. substr(string, int start [, int length]), gdje je int start početni znak s kojeg se započinje rezanje niza, a opcionalni parametar int length je broj znakova za odsijecanje. Međutim, neiskusnom programeru može se učiniti čudnim ako ga pokuša upotrijebiti za PHP za obrezivanje ćiriličnog niza. Kao rezultat rada podstr sa ćiriličnim nizom, upitnik ili upitnik u dijamantu mogu se pojaviti na kraju obrezanog niza, a iz nekog razloga ukupan broj obrezanih znakova je upola manji od navedenog u parametru int length . Zašto se to događa?

Činjenica je da su znakovi na ruskom jeziku u UTF-8 veličine 2 bajta, a latinični samo 1 bajt. PHP substr funkcija reže niz točno po bajtovima, a ne po znakovima. Ako se niz sastoji od latiničnih znakova, onda se ništa čudno ne događa, jer je broj znakova isti kao i broj bajtova. A pri radu s ćiriličnim pismom, gdje svaki znak zauzima 2 bajta, parametar int length može lako doći do "sredine" znaka, pa ćemo kao rezultat na kraju reza vidjeti da je loše- sudbinski upitnik u dijamantu na izlazu.

Kako ispravno izrezati dio žice ćirilicom?

Rješenje ovog problema je zapravo vrlo jednostavno. Za ispravno isecanje niza koji sadrži ćirilične znakove PHP -om, morate koristiti ikonu funkcije PHP v_substr

Sintaksa funkcije je jednostavna:

iconv_substr (string, int start [, int length [, charset]])

Primjer skraćivanja niza na ruskom jeziku na 80 znakova sa UTF-8 kodiranjem pomoću iconv_substr:

$ new_string = iconv_substr ($ string, 0, 80, “UTF-8”);

Broj nula u primjeru znači da odbrojavanje od 80 znakova počinje od samog početka retka.

Funkcija substr($ string, $ start, $ length), gdje je $ string varijabla s tekstom, $ start je znak od kojeg počinje brojanje (0 se uzima kao prvi znak), a $ length je broj znakova u odabrani tekst.

$ text = "Primer i tekst";

$ first = substr ($ text, 0,6); // Prikaži 6 znakova počevši od 0 -tog, najprije
echo $ first; // ispisat će "Primjer".

$ second = substr ($ text, 8,3); // Prikazuje 3 znaka počevši od 8.
echo $ second; // ispisat će "i"
Ako ne navedete parametar Broj znakova (2 znamenke), tada će funkcija prikazati sve preostale znakove

$ text = "Primer i tekst";

$ third = substr ($ text, 8); // Prikazuje SVE znakove počevši od 8
echo $ third; // ispisat će "i tekst"

Izrezali smo ruski tekst pomoću mb_substr PHP funkcije

Funkcija mb_substr obavlja iste zadatke kao i substr ali je također sposoban za rukovanje višebajtnim kodiranjem. Stoga će vam u slučaju ruskog teksta trebati upravo to mb_substr... Radi isto

$ text = "Uzorak teksta";

$ first = mb_substr ($ text, 0.6, "UTF-8"); // Prikaži 6 znakova počevši od 0 -og, najprije
// Pažnja! Molimo navedite kodiranje izvornog teksta! IN ovaj slučaj utf-8
echo $ first; // prikazuje "Primjer"

$ second = mb_substr ($ text, 7.6, "UTF-8"); // Prikaz 6 znakova počevši od 7
echo $ second; // prikazat će se "tekst"
Imajte na umu da je u slučaju ćirilice (ruski tekst) bolje navesti kodiranje na kraju funkcije. U primjeru se koristi najpopularnija opcija - UTF -8

Odsecite tekst od kraja

Ako želite odrezati tekst s kraja, tada ćemo za to označiti negativan broj za varijablu koji označava iz kojeg znaka počinje izdvajanje teksta.

$ text = "Sprite i Fanta";

$ first = substr ($ text, -6.5); // Prikazuje 5 znakova počevši od 6. od kraja
echo $ first; // ispisat će "Fant"

Nakon obrezivanja dodajemo i tekst.

Nakon obrezivanja varijable s tekstom, dodajte dodatni tekst do kraja

$ example = "Tekst tekst tekst tekst";

$ example = substr ($ primjer, 0,9); // Prikazuje 9 znakova počevši od 0, najprije
$ example. = "više ...";
echo $ primjer; // ispisuje "Tekstualni tekst više ..."
Naprotiv, možete pisati na početku, a zatim skraćeni tekst.

$ text = "Ujak";

$ example = "George i Michael";
$ example = substr ($ primjer, 0,6); // Prikaži 6 znakova počevši od 0 -tog, najprije
$ text. = $ primjer;
echo $ text; // ispisat će "Ujak George"

Odrežite tekst do prvog razmaka

$ text = "Zdravo svete!";
echo substr ($ text, 0, strpos ($ text, "")); // Ispisuje "Hello"

PHP funkcija obrezivanja teksta spremna za upotrebu pomoću PHP riječi

rez funkcije ($ string, $ length) (
$ string = mb_substr ($ string, 0, $ length, "UTF-8"); // izrezati i raditi sa svim kodiranjima i navesti izvorno kodiranje
$ position = mb_strrpos ($ string, "", "UTF-8"); // određujemo položaj posljednjeg razmaka. Na njemu dijelimo riječi
$ string = mb_substr ($ string, 0, $ position, "UTF-8"); // Odrežite varijablu po položaju
return $ string;
}

$ text = "Veliki sjeverni rat završio je 1721";
echo cut ($ tekst, 17); // prikazuje "Sjeverni rat", bez "završenog" dijela riječi

Može se skraćivati ​​riječ po riječ kroz niz ...

$ text = "Microsoft je osnovao Bill Gates davne 1975.";

$ array = explode ("", $ text); // obrađuje niz u niz
$ array = array_slice ($ array, 0.5); // odabiremo prvih 5 elemenata riječi
$ newtext = implode ("", $ niz); // niz se ponovo obrađuje u niz

Echo $ newtext; // Štampa "Microsoft je osnovao Bill Gates"