Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Željezo
  • Php skraćuje liniju od kraja. Kako skratiti ćirilični niz pomoću PHP-a

Php skraćuje liniju od kraja. Kako skratiti ćirilični niz pomoću PHP-a

Mrežno savjetovanje o održavanju web stranice u Uljanovsku: ICQ# 179104682

Kako skratiti ćirilični niz pomoću PHP-a

Datum objave članka: 01.06.2014

Izrada web stranice u Ulyanovsku s ozbiljnom funkcionalnošću i interakcijom s bazama podataka vrlo često zahtijeva da određena linija ne prelazi određeni određeni volumen. To može biti potrebno, na primjer, za ograničavanje broja znakova koji se prenose poslužitelju baze podataka pomoću polja za unos, za prikaz samo dijela retka na stranici web-mjesta (na primjer, kada se stvaraju najave vijesti jednake visine na popisu) i za mnoge druge zadatke.

Prvo na što programeri početnici naiđu je PHP funkcija substr. Zapravo se koristi za skraćivanje nizova i njegova sintaksa je jednostavna substr(string, int start [, int length]), gdje je int start početni znak od kojeg treba početi rezanje niza, a opcijski parametar int length je broj znakova za rezanje. Međutim, neiskusnom programeru može izgledati čudno ako ga pokuša koristiti za skraćivanje ćiriličnog niza u PHP-u. Kao rezultat substr rada s ćiriličnim nizom, upitnik, ili upitnik u rombu, može se pojaviti na kraju skraćenog niza, a iz nekog razloga ukupan broj skraćenih znakova je dva puta manji od onoga što je bilo naveden u parametru duljine int. Zašto se ovo događa?

Činjenica je da ruski znakovi u UTF-8 imaju 2 bajta, a latinični samo 1 bajt. PHP funkcija substr reže niz po bajtovima, a ne po znakovima. Ako se niz sastoji od latiničnih znakova, tada se ne događa ništa čudno, budući da se broj znakova podudara s brojem bajtova. A kada radite s ćirilicom, gdje svaki znak zauzima 2 bajta, parametar duljine int može lako pasti u "sredinu" znaka, i kao rezultat toga, na kraju linije rezanja, prilikom ispisa, mi ćemo vidi onaj zlosretni upitnik u dijamantu.

Kako pravilno izrezati dio crte ćirilicom?

Rješenje ovog problema zapravo je vrlo jednostavno. Za ispravno PHP skraćivanje stringa koji sadrži ćirilične znakove potrebno je koristiti PHP funkciju iconv_substr

Sintaksa funkcije je jednostavna:

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

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

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

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

Programeri se vrlo često moraju nositi s raznim funkcijama za rad s nizovima u PHP-u. Sve su funkcije predstavljene u raznim referentnim knjigama, ali želio bih se ograničiti samo na one glavne.

PHP funkcija substr - dobivanje dijela niza

Kada trebate odabrati odlomak zadane duljine iz niza počevši od zadane pozicije, funkcija substr dolazi u pomoć.U ovoj se funkciji, odvojeno zarezima, prosljeđuje: tekst, početna pozicija i broj znakova. Posljednji parametar nije obavezan, a ako nedostaje, rezultat funkcije bit će isječak izvornog teksta od početne pozicije do kraja retka.

PHP funkcija strlen - saznajte duljinu niza

Ova funkcija vraća duljinu izvornog niza kao cijeli broj.Ovom funkcijom možete provjeriti duljinu podataka koje je korisnik unio ili možda nešto drugo.

PHP funkcija trim - uklonite dodatne razmake s rubova niza

Funkcija skraćivanja uklanja sve znakove razmaka s rubova niza, uključujući znak novog retka. Također postoje funkcije rtrim i ltrim, koje uklanjaju razmake na kraju ili početku retka.

PHP funkcija strpos - pretražuje niz

Funkcija strpos traži podniz u nizu i, ako je uspješna, vraća položaj početka tog podniza. Nakon pronalaženja prvog podniza, pretraga se zaustavlja.Redoslijed argumenata u funkciji, kao što ste možda pogodili, je sljedeći: izvorni niz, podniz, početna pozicija. Treći parametar nije obavezan, ali pokušajte zapamtiti da postoji.

PHP funkcija strip_tags - uklanja HTML i PHP oznake iz niza

Funkcija strip_tags vraća niz bez html i php oznaka. Bit će vam od koristi kada budete pisali modul komentara na svojoj stranici, kako ne biste ostavili napadačima mogućnost hakiranja vaše stranice putem forme.html I php mora se ukloniti"; echo strip_tags($text); echo strip_tags($text," ");//do not delete em tags ?> Prvi argument funkcije je izvorni tekst, a drugi su oznake koje se ne smiju brisati.

PHP funkcija strtolower - pretvara niz u mala slova

PHP funkcija strtoupper - pretvara niz u velika slova

 Ako smatrate da je ovo mjesto korisno, možete pomoći u njegovu razvoju postavljanjem

Stranica pretpostavlja odgovarajuće izmjene na svojim stranicama ovisno o uređaju koji posjetitelj koristi. Ako se s obzirom na blok i ugrađene elemente gotovo sve može "automatizirati" pomoću CSS-a i JavaScripta, onda je pri generiranju sadržaja i korištenju baza podataka teško bez poslužiteljske strane.

Obično skraćujemo redak u PHP-u kada element HTML rasporeda ima ograničenje broja znakova koji su vidljivi, ali to je privatni zadatak.

Tradicionalno rješenje

Jedna od najpopularnijih i najčešće korištenih funkcija je substr(). U njega se prosljeđuju dva ili tri parametra:

  • izvorni niz;
  • početna pozicija ($iPos);
  • duljina podniza koji treba rezati ($iLen).

Zadnji parametar se može izostaviti. Ako su dana samo dva parametra: rezultat substr() bit će podniz, od početne pozicije ($iPos) do kraja originalnog niza. Ako su proslijeđena tri parametra, tada skraćujemo PHP niz s početne pozicije ($iPos) na navedenu duljinu ($iLen).

Odabir samo početka niza pomoću ove funkcije moguć je kada je prvi parametar nula. Ako je početna pozicija negativna, PHP će znak na poziciji $iPos s kraja niza smatrati početkom od kojeg skraćujemo niz. Znakovi u retku numerirani su počevši od nule.

Posebna funkcija

PHP razmatra zadatak "rezanja niza" (u širem smislu) u kontekstu: s obje strane. Povijesno gledano, ovo je funkcija trim() koja ima za cilj ukloniti beznačajne znakove:

  • prostori;
  • prijelomi redaka;
  • povrat prtljage;
  • tabeliranje;
  • nulti znakovi

s oba kraja linije. Ovo je vrlo popularna značajka, posebno kada radite s bazama podataka, čiji izbor često sadrži mnogo razmaka. Upotreba funkcije explode() također često rezultira dodatnim znakovima na početku i kraju niza.

Međutim, ne koriste svi programeri funkciju trim() u punom potencijalu. Za zadatak "skrati niz", PHP predlaže korištenje drugog parametra funkcije, gdje možete navesti bilo koji skup znakova koji se trebaju eliminirati iz izvornog niza.

Važno je da se znakovi uklanjaju samo s početka i kraja izvornog niza. Važno je da manipuliranjem maskama znakova koji se brišu i slijedom podzadataka.

  • Prvo smo odrezali PHP niz 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 prema potrebi za rješavanje zadatka.

Nestandardne metode

Ako ne uzmemo u obzir cijeli raspon linija funkcija jezika, onda nekoliko funkcija explode()/implode() i funkcija str_replace() omogućuju vam rješavanje nestandardnih problema "rezanja" informacija linije.

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

Ovo je poseban primjer, ali točno odgovara na pitanje: kako skratiti liniju u PHP-u kada ima mnogo linija. Funkcija trm() je posebna, a njezinu povijest određivali su zadaci kada nije bilo puno informacija i nije bilo potrebe odsijecati ništa osim beznačajnih znakova.

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

Dijeljenje na komponente također je opcija, poput rezanja žice. PHP će automatski koristiti explode() za rezanje jednog velikog teksta u više potrebnih redaka. Korištenjem funkcije str_replace() - to jest, zamjenom jednog pojavljivanja znakova drugim - možete postići sličan učinak.

Dinamika i obujam informacija koje je potrebno obraditi prije svega je adekvatno rješenje, a ne korištenje jedne posebne funkcije.

Najbolji članci na temu