Lõika php stringi viimased tähemärgid. Funktsioonid stringidega töötamiseks php-s. PHP funktsioon strtolower – teisendab stringi väiketähtedeks

Adaptiivne veebisaidi paigutus hõlmab selle lehtedel adekvaatseid muudatusi, olenevalt seadmest, mida külastaja kasutab. Kui plokk- ja tekstisiseste elementide osas saab CSS-i ja JavaScripti abil peaaegu kõike “automatiseerida”, siis sisu genereerimisel ja andmebaaside kasutamisel on ilma serveripooleta raske hakkama saada.

Tavaliselt kärbime PHP-s rea, kui HTML-i paigutuselemendil on nähtavate märkide arv piiratud, kuid see on privaatne ülesanne.

Traditsiooniline lahendus

Üks populaarsemaid ja sagedamini kasutatavaid funktsioone on substr(). Sellele edastatakse kaks või kolm parameetrit:

    lähtestring; alguspositsioon ($iPos); lõigatava alamstringi pikkus ($iLen).

Viimase parameetri võib ära jätta. Kui on antud ainult kaks parameetrit: substr() tulemuseks on alamstring, mis algab algpositsioonist ($iPos) kuni algse stringi lõpuni. Kui läbiti kolm parameetrit, siis trimmerdame PHP stringi alguspositsioonist ($iPos) määratud pikkuseni ($iLen).

Selle funktsiooni abil saab valida ainult stringi alguse, kui esimene parameeter on null. Kui algpositsioon on negatiivne, loeb PHP stringi lõpust positsioonis $iPos olevat märki alguseks, millest me stringi kärbime. Rea märgid nummerdatakse nullist alates.

Spetsiaalne funktsioon

PHP käsitleb "nööri lõikamise" ülesannet (laias mõttes) kontekstis: mõlemalt poolt. Ajalooliselt on see funktsioon trim(), mille eesmärk on eemaldada ebaolulised märgid:

    ruumid; reavahetused; veo tagastus; tabelite koostamine; null tähemärki

liini mõlemast otsast. See on väga populaarne funktsioon, eriti kui töötate andmebaasidega, mille valik sisaldab sageli palju tühikuid. Funktsiooni explode() kasutamine põhjustab sageli ka lisamärke stringi alguses ja lõpus.

Kuid mitte kõik arendajad ei kasuta funktsiooni trim() täielikult ära. Ülesande "stringi kärpimine" jaoks soovitab PHP kasutada funktsiooni teist parameetrit, kus saate määrata mis tahes märgikomplekti, mis tuleks lähtestringist eemaldada.


On oluline, et märgid eemaldataks ainult lähtestringi algusest ja lõpust. On oluline, et manipuleerides kustutatavate märkide maskidega ja alamülesannete järjestusega.

    Esiteks lõikasime PHP stringi ühe maski haaval ära. Siis veel üks. Siis kolmandal.

Ühe funktsiooni kasutamise võimaluste jada tulemusena lõikasime PHP-s teksti ära vastavalt ülesande lahendamiseks.

Mittestandardsed meetodid

Kui me ei võta arvesse kogu keele stringifunktsioonide valikut, võimaldavad funktsioonide paar explode()/implode() ja funktsioon str_replace() lahendada stringiteabe “lõikamise” ebastandardseid probleeme.


MySQL päringu tulemus on tagastatava info struktuurilt alati formaalne ning tulemuse väljade (elementide) sisu määrab alati allikas ehk andmebaasi kujundanud arendaja.

See on konkreetne näide, kuid see vastab täpselt küsimusele: kuidas PHP-s rida kärpida, kui ridu on palju. Funktsioon trm() on konkreetne ja selle ajaloo määrasid ülesanded, kui teavet polnud palju ja polnud vaja midagi peale ebaoluliste märkide ära lõigata.

Tänapäeval liigub infot suurtes kogustes ja rida-realt lõikamine pole mitte ainult tarbetu, vaid ka irratsionaalne.

Komponentideks jagamine on samuti võimalus, näiteks stringi katkestamine. PHP kasutab automaatselt explode() ühe suure teksti lõikamiseks paljudeks nõutavateks ridadeks. Funktsiooni str_replace() abil, st asendades ühe märkide esinemise teisega, saate saavutada sarnase efekti.


Töödeldava info dünaamika ja maht on eelkõige adekvaatne lahendus, mitte ühe erifunktsiooni kasutamine.

Veebikonsultatsioon veebisaidi hoolduse kohta Uljanovskis: ICQ# 179104682

Kirillitsa stringi kärpimine PHP abil

Artikli avaldamise kuupäev: 01.06.2014

Tõsise funktsionaalsusega ja andmebaasidega suhtlemise veebisaidi loomine Uljanovskis nõuab väga sageli, et teatud rida ei ületaks teatud määratud mahtu. Seda võib vaja minna näiteks selleks, et piirata sisestusvälja abil andmebaasiserverisse edastatavate märkide arvu, kuvada saidi lehel ainult osa reast (näiteks loendis võrdse kõrgusega uudisteate loomisel) ja paljude muude ülesannete jaoks.

Esimene asi, millega algajad programmeerijad kokku puutuvad, on PHP funktsioon substr. Seda kasutatakse tegelikult stringide kärpimiseks ja selle süntaks on lihtne alamstr(string, int algus [, int pikkus]), kus int algus on algusmärk, millest alustada stringi lõikamist, ja valikuline parameeter int pikkus on lõigatud märkide arv. Kogenematule programmeerijale võib aga tunduda kummaline, kui ta püüab seda kasutada PHP-s kirillitsa stringi kärpimiseks. Kirillitsa stringiga töötamise tulemusena võib kärbitud stringi lõppu ilmuda küsimärk või teemandis olev küsimärk ja millegipärast on kärbitud märkide koguarv kaks korda väiksem kui oli määratud pikkuse parameetris int. Miks see juhtub?

Fakt on see, et UTF-8 vene tähemärgid on 2 baiti ja ladina tähemärgid ainult 1 bait. PHP funktsioon substr lõikab stringi baitide, mitte märkide kaupa. Kui string koosneb ladina tähtedest, siis ei juhtu midagi imelikku, kuna märkide arv langeb kokku baitide arvuga. Ja kui töötate kirillitsa tähestikuga, kus iga märk võtab enda alla 2 baiti, võib int pikkuse parameeter kergesti langeda märgi “keskmesse” ja selle tulemusena väljastades lõikame rea lõpus. vaata seda õnnetu küsimärki teemandis.

Kuidas kirillitsa tähestikuga osa reast õigesti välja lõigata?

Selle probleemi lahendus on tegelikult väga lihtne. Kirillitsa tähemärke sisaldava stringi korrektseks PHP kärpimiseks peate kasutama PHP funktsiooni iconv_substr

Funktsiooni süntaks on lihtne:

iconv_substr (string, int algus [, sisemise pikkus [, märgistik]])

Näide venekeelse stringi kärpimiseks 80 tähemärgini UTF-8 kodeeringuga, kasutades iconv_substr:

$uus_string = iconv_substr ($string, 0, 80, "UTF-8");

Näites olev number null tähendab, et 80 tähemärgi loendamine algab päris rea algusest.

Sait eeldab oma lehtedel piisavaid muudatusi olenevalt seadmest, mida külastaja kasutab. Kui plokk- ja tekstisiseste elementide osas saab CSS-i ja JavaScripti abil peaaegu kõike “automatiseerida”, siis sisu genereerimisel ja andmebaaside kasutamisel on ilma serveripooleta raske hakkama saada.

Tavaliselt kärbime PHP-s rea, kui HTML-i paigutuselemendil on nähtavate märkide arv piiratud, kuid see on privaatne ülesanne.

Traditsiooniline lahendus

Üks populaarsemaid ja sagedamini kasutatavaid funktsioone on substr(). Sellele edastatakse kaks või kolm parameetrit:

  • lähtestring;
  • alguspositsioon ($iPos);
  • lõigatava alamstringi pikkus ($iLen).

Viimase parameetri võib ära jätta. Kui on antud ainult kaks parameetrit: substr() tulemuseks on alamstring, mis algab algpositsioonist ($iPos) kuni algse stringi lõpuni. Kui läbiti kolm parameetrit, siis trimmerdame PHP stringi alguspositsioonist ($iPos) määratud pikkuseni ($iLen).

Selle funktsiooni abil saab valida ainult stringi alguse, kui esimene parameeter on null. Kui algpositsioon on negatiivne, loeb PHP stringi lõpust positsioonis $iPos olevat märki alguseks, millest me stringi kärbime. Rea märgid nummerdatakse nullist alates.

Spetsiaalne funktsioon

PHP käsitleb "nööri lõikamise" ülesannet (laias mõttes) kontekstis: mõlemalt poolt. Ajalooliselt on see funktsioon trim(), mille eesmärk on eemaldada ebaolulised märgid:

  • ruumid;
  • reavahetused;
  • veo tagastus;
  • tabelite koostamine;
  • null tähemärki

liini mõlemast otsast. See on väga populaarne funktsioon, eriti kui töötate andmebaasidega, mille valik sisaldab sageli palju tühikuid. Funktsiooni explode() kasutamine põhjustab sageli ka lisamärke stringi alguses ja lõpus.

Kuid mitte kõik arendajad ei kasuta funktsiooni trim() täielikult ära. Ülesande "stringi kärpimine" jaoks soovitab PHP kasutada funktsiooni teist parameetrit, kus saate määrata mis tahes märgikomplekti, mis tuleks lähtestringist eemaldada.

On oluline, et märgid eemaldataks ainult lähtestringi algusest ja lõpust. On oluline, et manipuleerides kustutatavate märkide maskidega ja alamülesannete järjestusega.

  • Esiteks lõikasime PHP stringi ühe maski haaval ära.
  • Siis veel üks.
  • Siis kolmandal.

Ühe funktsiooni kasutamise võimaluste jada tulemusena lõikasime PHP-s teksti ära vastavalt ülesande lahendamiseks.

Mittestandardsed meetodid

Kui me ei võta arvesse kogu keele stringifunktsioonide valikut, võimaldavad funktsioonide paar explode()/implode() ja funktsioon str_replace() lahendada stringiteabe “lõikamise” ebastandardseid probleeme.

MySQL päringu tulemus on tagastatava info struktuurilt alati formaalne ning tulemuse väljade (elementide) sisu määrab alati allikas ehk andmebaasi kujundanud arendaja.

See on konkreetne näide, kuid see vastab täpselt küsimusele: kuidas PHP-s rida kärpida, kui ridu on palju. Funktsioon trm() on konkreetne ja selle ajaloo määrasid ülesanded, kui teavet polnud palju ja polnud vaja midagi peale ebaoluliste märkide ära lõigata.

Tänapäeval liigub infot suurtes kogustes ja rida-realt lõikamine pole mitte ainult tarbetu, vaid ka irratsionaalne.

Komponentideks jagamine on samuti võimalus, näiteks stringi katkestamine. PHP kasutab automaatselt explode() ühe suure teksti lõikamiseks paljudeks nõutavateks ridadeks. Funktsiooni str_replace() abil, st asendades ühe märkide esinemise teisega, saate saavutada sarnase efekti.

Töödeldava info dünaamika ja maht on eelkõige adekvaatne lahendus, mitte ühe erifunktsiooni kasutamine.