Leikkaa php-alimerkkijono merkkijonosta. Kuinka leikata kyrillinen merkkijono PHP:llä. PHP-funktio strtoupper - muuntaa merkkijonon isoiksi kirjaimille

Online-konsultointi verkkosivustojen ylläpidosta Uljanovskissa: ICQ# 179104682

Kuinka leikata kyrillinen merkkijono PHP:llä

Artikkelin julkaisupäivä: 01.06.2014

Verkkosivuston luominen Uljanovskissa, jossa on vakavia toimintoja ja vuorovaikutusta tietokantojen kanssa, vaatii hyvin usein, että tietty rivi ei ylitä tiettyä määritettyä määrää. Tämä voi olla tarpeen esimerkiksi tietokantapalvelimelle syöttökentän avulla lähetettävien merkkien määrän rajoittamiseksi, vain osan rivin näyttämiseksi sivuston sivulla (esimerkiksi luotaessa yhtä korkeita uutisilmoituksia luetteloon) ja moniin muihin tehtäviin.

Ensimmäinen asia, jonka aloittelevat ohjelmoijat törmäävät, on PHP-funktio substr. Sitä käytetään itse asiassa merkkijonojen leikkaamiseen, ja sen syntaksi on yksinkertainen substr(merkkijono, int alku [, int pituus]), jossa int alku on aloitusmerkki, josta merkkijonon leikkaaminen aloitetaan, ja valinnainen parametri int pituus on leikattavien merkkien määrä. Kokemattomalta ohjelmoijalta voi kuitenkin tuntua oudolta, jos hän yrittää käyttää sitä kyrillisen merkkijonon trimmaamiseen PHP:ssä. Kyrillisellä merkkijonolla työskentelyn seurauksena kysymysmerkki tai kysymysmerkki vinoneliössä saattaa ilmestyä leikatun merkkijonon loppuun, ja jostain syystä leikattujen merkkien kokonaismäärä on kaksi kertaa pienempi kuin mitä oli. määritetty int pituus -parametrissa. Miksi tämä tapahtuu?

Tosiasia on, että UTF-8:n venäläiset merkit ovat kooltaan 2 tavua ja latinalaiset merkit ovat vain 1 tavu. PHP-funktio substr leikkaa merkkijonon tavuilla, ei merkeillä. Jos merkkijono koostuu latinalaisista merkeistä, mitään outoa ei tapahdu, koska merkkien määrä on sama kuin tavujen lukumäärä. Ja kun työskentelet kyrillisten aakkosten kanssa, joissa jokainen merkki vie 2 tavua, int pituus -parametri voi helposti pudota merkin "keskialueelle", ja sen seurauksena leikkausrivin lopussa tulostettaessa nähdä tuon epäonnisen kysymysmerkin timantissa.

Kuinka leikata osa viivasta oikein kyrillisillä aakkosilla?

Ratkaisu tähän ongelmaan on itse asiassa hyvin yksinkertainen. Kyrillisiä merkkejä sisältävän merkkijonon oikea PHP-leikkaus edellyttää PHP-funktiota iconv_substr.

Funktion syntaksi on yksinkertainen:

iconv_substr (merkkijono, int alku [, int pituus [, merkkisarja]])

Esimerkki venäjänkielisen merkkijonon leikkaamisesta 80 merkin pituiseksi UTF-8-koodauksella käyttämällä iconv_substr:tä:

$uusi_merkkijono = iconv_substr ($merkkijono, 0 , 80 , "UTF-8");

Esimerkin luku nolla tarkoittaa, että 80 merkin laskenta alkaa aivan rivin alusta.

Sivusto olettaa sivuillaan riittävät muutokset vierailijan käyttämän laitteen mukaan. Jos lohko- ja inline-elementtien osalta lähes kaikki voidaan “automatisoida” CSS:llä ja JavaScriptillä, niin sisältöä luotaessa ja tietokantoja käytettäessä on vaikea tehdä ilman palvelinpuolta.

Yleensä katkaisemme PHP:n rivin, kun HTML-asetteluelementillä on rajoitus näkyvien merkkien määrälle, mutta tämä on yksityinen tehtävä.

Perinteinen ratkaisu

Yksi suosituimmista ja usein käytetyistä funktioista on substr(). Sille välitetään kaksi tai kolme parametria:

  • lähde merkkijono;
  • aloituspaikka ($iPos);
  • leikattavan osamerkkijonon pituus ($iLen).

Viimeinen parametri voidaan jättää pois. Jos annetaan vain kaksi parametria: substr():n tulos on alimerkkijono aloituspaikasta ($iPos) alkuperäisen merkkijonon loppuun. Jos kolme parametria välitettiin, leikataan PHP-merkkijono aloituspaikasta ($iPos) määritettyyn pituuteen ($iLen).

Vain merkkijonon alun valitseminen tällä funktiolla on mahdollista, kun ensimmäinen parametri on nolla. Jos alkusijainti on negatiivinen, PHP pitää merkkijonon lopusta kohdassa $iPos olevaa merkkiä alkuna, josta merkkijono katkaistaan. Rivin merkit numeroidaan nollasta alkaen.

Erikoistoiminto

PHP tarkastelee tehtävää "leikkauttaa merkkijono" (laajassa merkityksessä) kontekstissa: molemmilta puolilta. Historiallisesti tämä on trim()-funktio, jonka tarkoituksena on poistaa merkityksettömät merkit:

  • tilat;
  • rivinvaihdot;
  • kuljetuksen paluu;
  • taulukointi;
  • tyhjä merkkiä

linjan molemmista päistä. Tämä on erittäin suosittu ominaisuus, varsinkin kun työskennellään tietokantojen kanssa, joiden valikoima sisältää usein paljon välilyöntejä. Explode()-funktion käyttö johtaa myös usein ylimääräisiin merkkeihin merkkijonon alkuun ja loppuun.

Kaikki kehittäjät eivät kuitenkaan käytä trim()-toimintoa täysimääräisesti. "Katkaise merkkijono" -tehtävässä PHP ehdottaa funktion toisen parametrin käyttöä, jossa voit määrittää minkä tahansa merkkijoukon, joka tulee poistaa lähdemerkkijonosta.

On tärkeää, että merkit poistetaan vain lähdemerkkijonon alusta ja lopusta. On tärkeää, että manipuloimalla poistettavien merkkien maskeja ja alitehtävien järjestystä.

  • Ensin katkaisimme PHP-merkkijonon maski kerrallaan.
  • Sitten toinen.
  • Sitten kolmannella.

Yhden funktion käyttövaihtoehtojen sarjan seurauksena leikkasimme PHP:n tekstin pois tehtävän ratkaisemiseksi.

Epätyypilliset menetelmät

Jos emme ota huomioon koko kielen merkkijonofunktioiden valikoimaa, funktiopari explode()/implode() ja str_replace() mahdollistavat meidän ratkaista epätyypillisiä ongelmia merkkijonoinformaation "leikkauksessa".

MySQL-kyselyn tulos on palautettavan tiedon rakenteessa aina muodollinen ja tuloksen kenttien (elementtien) sisällön määrää aina lähde eli tietokannan suunnitellut kehittäjä.

Tämä on erityinen esimerkki, mutta se vastaa täsmälleen kysymykseen: kuinka lyhentää rivi PHP:ssä, kun rivejä on useita. Trm()-funktio on erityinen, ja sen historian määrittivät tehtävät, kun tietoa ei ollut paljon, eikä mitään muuta tarvinnut leikata pois kuin merkityksettömiä merkkejä.

Nykyään tietoa kiertää suuria määriä ja rivi riviltä leikkaaminen ei ole vain tarpeetonta, vaan myös järjetöntä.

Jakaminen osiin on myös vaihtoehto, kuten viivan leikkaaminen. PHP käyttää automaattisesti explode()-toimintoa leikkaamaan yhden suuren tekstin useille vaadituille riveille. Käyttämällä funktiota str_replace() – eli korvaamalla yhden merkkien esiintymän toisella – voit saavuttaa samanlaisen vaikutuksen.

Käsiteltävän tiedon dynamiikka ja määrä on ennen kaikkea riittävä ratkaisu, ei yhden erikoistoiminnon käyttö.

Ohjelmoijat joutuvat hyvin usein käsittelemään erilaisia ​​toimintoja työskennelläkseen merkkijonojen kanssa PHP:ssä. Kaikki toiminnot on esitetty erilaisissa hakuteoksissa, mutta haluaisin rajoittua vain tärkeimpiin.

PHP-funktio substr - saada osa merkkijonosta

Kun sinun on valittava tietynpituinen jakso tietystä paikasta alkavasta merkkijonosta, substr-funktio tulee apuun.Tässä funktiossa välitetään pilkuilla erotettuna: teksti, aloituspaikka ja merkkien lukumäärä. Viimeinen parametri on valinnainen, ja jos se puuttuu, funktion tuloksena on ote lähdetekstistä aloituskohdasta rivin loppuun.

PHP-funktio strlen - selvitä merkkijonon pituus

Tämä funktio palauttaa alkuperäisen merkkijonon pituuden kokonaislukuna.Tällä toiminnolla voit tarkistaa käyttäjän syöttämien tietojen pituuden tai ehkä jotain muuta.

PHP-toiminto trimmaa - poista ylimääräiset välilyönnit merkkijonon reunoista

Trimmaustoiminto poistaa kaikki välilyönnit merkkijonon reunoista, mukaan lukien rivinvaihtomerkin. On myös funktioita rtrim ja ltrim, jotka poistavat välilyönnit rivin lopusta tai alusta.

PHP-funktio strpos - etsii merkkijonoa

Strpos-funktio etsii osamerkkijonoa merkkijonosta ja, jos se onnistuu, palauttaa kyseisen osamerkkijonon alun sijainnin. Kun ensimmäinen osamerkkijono on löydetty, haku pysähtyy.Kuten ehkä arvasitkin, funktion argumenttien järjestys on seuraava: lähdemerkkijono, osamerkkijono, aloituspaikka. Kolmas parametri on valinnainen, mutta yritä muistaa, että se on olemassa.

PHP-toiminto strip_tags - poistaa HTML- ja PHP-tunnisteet merkkijonosta

Strip_tags-funktio palauttaa merkkijonon, josta on poistettu html- ja php-tunnisteet. Siitä on hyötyä sinulle, kun kirjoitat kommenttimoduulin sivustollesi, jotta hyökkääjät eivät jätä mahdollisuutta hakkeroida sivustoasi lomakkeen kautta.html Ja php täytyy poistaa"; echo strip_tags($text); echo strip_tags($text," ");//älä poista em-tageja ?> Toiminnon ensimmäinen argumentti on lähdeteksti ja toinen on tagit, joita ei pidä poistaa.

PHP-funktio strtolower - muuntaa merkkijonon pieniksi kirjaimille

PHP-funktio strtoupper - muuntaa merkkijonon isoiksi kirjaimille

Jos pidit tästä sivustosta hyödyllisenä, voit auttaa kehittämään sitä sijoittamalla

Mukautuva sivuston ulkoasu sisältää riittävät muutokset sen sivuille riippuen vierailijan käyttämästä laitteesta. Jos lohko- ja inline-elementtien osalta lähes kaikki voidaan "automatisoida" CSS:llä ja JavaScriptillä, niin sisältöä luotaessa ja tietokantoja käytettäessä on vaikea tehdä ilman palvelinpuolta.

Yleensä katkaisemme PHP:n rivin, kun HTML-asetteluelementillä on rajoitus näkyvien merkkien määrälle, mutta tämä on yksityinen tehtävä.

Perinteinen ratkaisu

Yksi suosituimmista ja usein käytetyistä funktioista on substr(). Sille välitetään kaksi tai kolme parametria:

    lähde merkkijono; aloituspaikka ($iPos); leikattavan osamerkkijonon pituus ($iLen).

Viimeinen parametri voidaan jättää pois. Jos annetaan vain kaksi parametria: substr():n tulos on alimerkkijono aloituspaikasta ($iPos) alkuperäisen merkkijonon loppuun. Jos kolme parametria välitettiin, leikataan PHP-merkkijono aloituspaikasta ($iPos) määritettyyn pituuteen ($iLen).

Vain merkkijonon alun valitseminen tällä funktiolla on mahdollista, kun ensimmäinen parametri on nolla. Jos alkusijainti on negatiivinen, PHP pitää merkkijonon lopusta kohdassa $iPos olevaa merkkiä alkuna, josta merkkijono katkaistaan. Rivin merkit numeroidaan nollasta alkaen.

Erikoistoiminto

PHP tarkastelee tehtävää "leikkauttaa merkkijono" (laajassa merkityksessä) kontekstissa: molemmilta puolilta. Historiallisesti tämä on trim()-funktio, jonka tarkoituksena on poistaa merkityksettömät merkit:

    tilat; rivinvaihdot; kuljetuksen paluu; taulukointi; tyhjä merkkiä

linjan molemmista päistä. Tämä on erittäin suosittu ominaisuus, varsinkin kun työskennellään tietokantojen kanssa, joiden valikoima sisältää usein paljon välilyöntejä. Explode()-funktion käyttö johtaa myös usein ylimääräisiin merkkeihin merkkijonon alkuun ja loppuun.

Kaikki kehittäjät eivät kuitenkaan käytä trim()-toimintoa täysimääräisesti. "Katkaise merkkijono" -tehtävässä PHP ehdottaa funktion toisen parametrin käyttöä, jossa voit määrittää minkä tahansa merkkijoukon, joka tulee poistaa lähdemerkkijonosta.


On tärkeää, että merkit poistetaan vain lähdemerkkijonon alusta ja lopusta. On tärkeää, että manipuloimalla poistettavien merkkien maskeja ja alitehtävien järjestystä.

    Ensin katkaisimme PHP-merkkijonon maski kerrallaan. Sitten toinen. Sitten kolmannella.

Yhden funktion käyttövaihtoehtojen sarjan seurauksena leikkasimme PHP:n tekstin pois tehtävän ratkaisemiseksi.

Epätyypilliset menetelmät

Jos emme ota huomioon koko kielen merkkijonofunktioiden valikoimaa, funktiopari explode()/implode() ja str_replace() mahdollistavat meidän ratkaista epätyypillisiä ongelmia merkkijonoinformaation "leikkauksessa".


MySQL-kyselyn tulos on palautettavan tiedon rakenteessa aina muodollinen ja tuloksen kenttien (elementtien) sisällön määrää aina lähde eli tietokannan suunnitellut kehittäjä.

Tämä on erityinen esimerkki, mutta se vastaa täsmälleen kysymykseen: kuinka lyhentää rivi PHP:ssä, kun rivejä on useita. Trm()-funktio on erityinen, ja sen historian määrittivät tehtävät, kun tietoa ei ollut paljon, eikä mitään muuta tarvinnut leikata pois kuin merkityksettömiä merkkejä.

Nykyään tietoa kiertää suuria määriä ja rivi riviltä leikkaaminen ei ole vain tarpeetonta, vaan myös järjetöntä.

Jakaminen osiin on myös vaihtoehto, kuten viivan leikkaaminen. PHP käyttää automaattisesti explode()-toimintoa leikkaamaan yhden suuren tekstin useille vaadituille riveille. Käyttämällä funktiota str_replace() – eli korvaamalla yhden merkkien esiintymän toisella – voit saavuttaa samanlaisen vaikutuksen.


Käsiteltävän tiedon dynamiikka ja määrä on ennen kaikkea riittävä ratkaisu, ei yhden erikoistoiminnon käyttö.