Php jäsentää merkkijonon. Tehtävät PHP: n merkkijonojen käsittelytoiminnoille

Verkkosivustot voidaan jakaa staattisiin ja dynaamisiin. Hallittuaan HTML- ja CSS -tiedostot, joiden avulla voidaan luoda kaunis käyntikortti Internetissä, monet ihmiset ajattelevat, kuinka luoda dynaaminen verkkosivusto PHP: ssä. Samaan aikaan asettelun suunnittelijan tulisi ottaa huomioon, että hän on nyt oppimassa web -ohjelmointia: sivuston kanssa työskentelyn periaatteet ovat erilaisia. Yksi ensimmäisistä ongelmista, joita aloittelija kohtaa PHP: ssä, on merkkijonojen käsittely, niiden lukeminen ja käsittely.

On syytä huomata, että PHP sisältää suuren määrän menetelmiä, joten kannattaa aloittaa niiden tutkiminen yksinkertaisimmilla manipulaatioilla, kuten merkkijonon näyttämisellä, alijonon löytämisellä, hankkimisella tai vaihtamisella, kirjainkoko vaihtamisella ja merkkijonon pituuden palauttamisella. Monet toiminnot eivät toimi hyvin kyrillisten merkkien kanssa. Siksi kaikki esimerkit on selkeyden vuoksi kirjoitettu englanniksi. Kyrillisillä merkkijonoilla käytetään samoja toimintoja, mutta etuliitteellä mb_ (esimerkiksi mb_strpos ()). Ennen analogien käyttöä php.ini -tiedostossa on poistettava rivin kommentti; extension = php_mbstring.dll, yksinkertaisesti poistamalla puolipiste.

Merkkijonon luominen ja tulostus

Analysoimme merkkijonon ulostulon näytölle tunnetun kielirakenteen kaiun avulla. Ohjelmoija voi tulostaa rivin kerralla:

echo "Tämä on uusi rivi"

tai luo ensin muuttuja ja näytä se sitten:

$ str = "Tämä on uusi rivi";

Jos sinun on näytettävä useita rivejä yhdessä, ne käyttävät ketjutusta:

kaiku "tämä". "Uusi". "Linja";

$ str1 = "Tämä";

$ str2 = "Uusi";

$ str3 = "Merkkijono";

echo $ str1. $ str2. $ str3;

Jälkimmäisessä tapauksessa näyttö tulee näkyviin Tämä on NewString... Tila voidaan lisätä heti, kun soitat echo:

echo $ str1. "". $ str2. "". $ str3;

Tässä tapauksessa näytössä näkyy: "Tämä on uusi rivi". Ketjutus on mahdollista paitsi tulostettaessa myös merkkijonoa luotaessa:

$ str1 = "Tämä";

$ str2 = "Uusi";

$ str3 = "Merkkijono";

$ merkkijono = $ str1. "". $ str2. "". $ str3;

echo $ merkkijono;

Echo näyttää sekä kyrillistä että kyrillistä. Jos jokin muuttujista sisälsi numeron, yhdistämisen aikana tämä luku muunnetaan vastaavaksi merkkijonoksi:

$ summa = $ i + $ i; // nyt $ summa sisältää numeron 4

kaiku $ i. "+" $ i. "=". $ summa;

Näyttöön tulee: "2 + 2 = 4".

Palvelusymbolit

Oletetaan, että merkkijono on määritetty ($ string = "Like this"). Sitten voit turvallisesti käyttää pakosarjoja:

  • \ n tekee rivinsyötteen;
  • palauttaa caret;
  • \ "välttää lainausmerkit:
    • echo "Merkkijono \" kaksois \ "lainausmerkeillä; // Merkkijono "lainausmerkeillä"
  • \ $ pakenee dollaria;
  • \\ pakenee kauttaviivat.

On monia muita sekvenssejä, jotka kaikki löytyvät virallisesta PHP -dokumentaatiosta.

Kuinka löytää alijonon ensimmäisen esiintymän sijainti

Sanotaan, että meillä on yksinkertainen rivi:

Meillä on myös kaksi riviä nimillä:

$ name = "Yemelyan";

$ anotherName = "Katherin";

Meidän on selvitettävä, sisältääkö ensimmäinen rivi nämä kaksi nimeä. Tätä varten käytetään funktiota strpos ($ str, $ search). Se palauttaa haetun alijonon $ search sijainnin, jos tämä merkkijono sisältyy alkuperäiseen $ str. Muussa tapauksessa funktio palauttaa boolen arvon false. Esimerkiksi strpos ($ string, $ anotherName) palauttaa false ja strpos ($ string, $ name) palauttaa kokonaisluvun. Koodi on tällainen (kirjoitetaan muunnelma, kun sijainti näkyy näytöllä):

$ string = "Nimeni on Yemelyan ja olen 27 -vuotias";

$ name = "Yemelyan";

$ anotherName = "Katherin";

echo strpos ($ merkkijono, $ toinenNimi); // tulostaa epätosi

echo strpos ($ merkkijono, $ nimi); // näyttää alimerkkijonon ensimmäisen esiintymän sijainnin

Huomaa, että rivien numerointi alkaa nollasta, eli meidän tapauksessamme viimeinen rivi antaa numeron 11 (myös välilyönnit lasketaan).

Alimerkkijonon viimeisen esiintymispaikan löytäminen ja sudenkuopat

Jos strpos () -funktio palauttaa ensimmäisen esiintymän sijainnin, sen käänteinen strrpos () -funktio etsii alimerkkijonon viimeisen esiintymän.

Tässä on joitain sudenkuoppia numeroinnin aloittamiseen liittyen. Tämä kannattaa ottaa huomioon: PHP: ssä merkkijonojen käsittely voi olla monimutkaista vertailujen rajoitusten vuoksi. Esimerkiksi on parasta olla käyttämättä negatiivista vertailuoperaattoria: strpos ($ str, $ search)! = False. Missä tahansa PHP -versiossa esimerkit, joissa on vastaava, eivät ehkä toimi oikein, koska rivien numerointi alkaa nollasta ja loogisessa tulkinnassa 0 on epätosi. Tämä koskee myös strrpos () -funktiota.

Kuinka löytää alijonon esiintymien lukumäärä

Usein sinun ei tarvitse löytää merkkijonon alijonon ensimmäisen tai viimeisen esiintymän sijaintia, vaan niiden kokonaismäärä. Voit tehdä tämän käyttämällä substr_count () -funktiota, joka käsittelee vähintään kaksi muuttujaa: substr_count ($ str, $ search). Palauttaa kokonaisluvun. Jos hakualuetta on tarpeen pienentää merkkijonolla, funktiolle välitetään kaksi muuta muuttujaa: merkkijonon alku ja loppu. Toisin sanoen funktiota kutsutaan tässä tapauksessa näin: substr_count ($ str, $ search, $ start, $ end). Funktio etsii alijonoa $ search alkuperäisen merkkijonon $ str ja $ end välillä. Jos merkkijonoa ei löydy, funktio palauttaa nollan.

Kuinka vaihtaa merkkijonon kirjainkoko PHP: ssä: esimerkkejä

Kirjaimen vaihtamista käytetään usein merkkijonojen vertaamiseen. Oletetaan, että käyttäjän on syötettävä korkeimman jumalan nimi ohjelmaan, ja siinä on vaihtoehto "Yksi", johon käyttäjän vastausta verrataan. Jos syötetty teksti ei vastaa olemassa olevaa tekstiä (esimerkiksi käyttäjä kirjoittaa "yksi" tai "YKSI"), ohjelma palauttaa epätosi arvon sijaan. Tämän välttämiseksi käytetään tapauksenvaihtotoimintoa. Tätä käytetään usein, kun PHP -sivustolla on tunnisteita: satojen sanojen "henkilökohtainen" ("henkilökohtainen", "henkilökohtainen", "PERSONAL" jne.) Sijasta on vain yksi pieni kirjain.

Strtolower () -toiminto vaihtaa kirjainkoon pieniksi kirjaimiksi. Oletetaan, että on olemassa rivi $ catName = "Fluffy". Strtolower ($ catName) -funktio palauttaa merkkijonon "fluffy". Voit muuttaa kirjainkokoa isoiksi käyttämällä strtoupper () -toimintoa.

Kuinka löytää merkkijonon pituus PHP: stä: toimintojen käyttäminen

Usein joudutaan löytämään merkkijonon pituus. Esimerkiksi PHP: ssä tällaisten merkkijonojen käsittely voi olla tarpeen silmukan luomisessa. Merkkijonon etsimiseen käytetään funktiota strlen (), joka palauttaa luvun - merkkien määrän. Älä unohda, että viimeisen merkin numero on strlen ($ str) -1, koska numerointi alkaa nollasta.

Alimerkkijonon hankkiminen ja vaihtaminen PHP: ssä: työskentely merkkijonojen kanssa

Substrring () -funktio hakee alimerkkijonon, joka voi sisältää kaksi tai kolme argumenttia: substr ($ str, $ start, $ end). Oletetaan, että meillä on merkkijono $ string = "Fluffy cat" ja haluamme saada alimerkkijonon toisesta neljänteen merkkiin. Koska numerointi alkaa nollasta, tämän alimerkkijonon muuttuja näyttää tältä: $ newString = substr ($ string, 1, 4). Jos syötämme $ newString = substr ($ string, 1), saamme alimerkkijonon toisesta merkistä viimeiseen (eli "luffy"). Tämä koodi on sama kuin koko merkkijonokoodi, joka käyttää strlen (): substr ($ string, 1, strlen ($ string)).

Alimerkkijonon korvaamiseksi käytetään funktiota str_replace (), joka sisältää kolme muuttujaa: str_replace ($ subStr, $ newSub, $ str). Toisin kuin monet toiminnot, str_replace () toimii oikein kyrillisillä merkeillä, eikä sillä ole etuliitettä. Esimerkki:

$ str = "Sää on tänään kauhea!";

$ newStr = str_replace ("kauhea", "ihana", $ str); // Tänään on upea sää!

Merkkijonon muuntaminen numeroksi

Jokaisen, joka oppii web -ohjelmoinnin ennemmin tai myöhemmin, on käännettävä merkkijono numeroksi. Tätä varten käytetään kahta samankaltaista funktiota: intval () ja floatval (), joista jokainen hyväksyy yhden muuttujan $ string. Ne eroavat toisistaan ​​vain palautettujen tietojen tyypin suhteen: intval () palauttaa kokonaisluvun ja floatval () - liukuluku.

Jos haluat käyttää sekä intval () että floatval (), merkkijonon on aloitettava numeroilla ja ne muunnetaan numeroksi. Jos jokin kirjainsarja tulee numeroiden perään, ne jätetään huomiotta. Jos merkkijono alkaa kirjaimilla, funktion käyttäminen palauttaa nollan. Ihannetapauksessa merkkijonon tulisi sisältää vain numeroita.

Numeron muuntaminen merkkijonoksi

Usein on tarpeen kääntää numerot merkkijonoiksi. Sano, jos sinun täytyy ottaa puolet numerosta ja neliöidä se (tarkista esimerkiksi, onko tasa -arvo totta: 88 x 88 + 33 x 33 = 8833). Tässä tapauksessa käytetään funktiota strval (), joka palauttaa numeron sisältävän merkkijonon. Tämän jälkeen voit suorittaa kaikki muut toiminnot uudella merkkijonolla: muuttaa, etsiä merkkijonon esiintymistä ja muita toimintoja. Tarvittaessa merkkijono voidaan muuntaa uudelleen numeroksi edellä kuvatulla tavalla.

Tämä artikkeli kattoi vain pienen osan kaikista merkkijonoihin liittyvistä toiminnoista. Jotkut kuvaamattomat toiminnot toimivat symboleilla, mutta useimmat niistä eivät sisälly aineistoon niiden spesifisyyden vuoksi. Jotta voit tutustua näihin toimintoihin, sinun on siirryttävä viralliseen PHP -dokumentaatioon, joka näyttää uusimmat tiedot.

Pääaineena php -merkkijonotoiminnot jokaisen web-ohjelmoijan pakollinen tieto, koska merkkijono PHP: ssä on tärkein tietotyyppi. Rivin pituus on käytännössä rajaton (paitsi ehkä käsikirjoituksen varaaman muistin koko ja tietokoneen resurssien fyysinen loppu), joten voit lukea keskikokoisen tiedoston riville ja käsitellä sitä. Voit myös heittää minkä tahansa objektin merkkijonoon käyttämällä serialize () -toimintoa.

PHP -merkkijonotoiminnot

Luettelo hyödyllisistä PHP -merkkijonotoiminnoista on kätevin taulukon muodossa. Toiminnot annetaan ilman parametreja - vain toiminnon nimi ja sen lyhyt kuvaus. Seuraavassa tarkastellaan joitain näistä ominaisuuksista erikseen.

Toiminto Kuvaus
pilkkoa () Poista välilyönti rivin lopusta
convert_cyr_string () Käytetään venäjän kielen koodausten muuntamiseen
räjähtää () Poimii merkkijonosta alimerkkijonot (kentät)
HtmlSpecialChars () Korvaa esimerkiksi erikoismerkit niiden HTML -vastineilla< будет заменено эквивалентом <
ltrim () Samanlainen kuin trim (), mutta poistaa vain rivin alussa olevat välilyönnit
md5 () Koodaa määritetyn merkkijonon MD5 -algoritmilla
nl2br () Korvaa kaikki uuden rivin merkit (\ n) tunnisteella
... Erittäin hyödyllinen ominaisuus web -ohjelmoinnissa
pakkaus () Pakkaa binääridataa
str_replace () Käytetään inline -korvauksiin
strcasecmp () Sama kuin edellinen toiminto, mutta vertaa kirjainkokoa
strcmp () Käytetään merkkijonojen vertaamiseen
strip_tags () Poistaa kaikki HTML -tunnisteet merkkijonosta
strlen () Määrittää merkkijonon pituuden
strpos () Etsii merkkijonosta alimerkkijonoa
strtolower () Muuntaa kaikki merkkijonon merkit pieniksi
strtoupper () Muuntaa merkkijonon kaikki merkit isoiksi kirjaimiksi
substr () Palauttaa tietyn alimerkkijonon
trimmata () Toiminto auttaa poistamaan välilyönnit rivin alussa ja lopussa
purkaa () Pura binääridataa
urldecode () Purkaa merkkijonon, joka oli aiemmin urlencode ()
urlencode () Koodaa merkkijonon sen välittämiseksi URL -osoitteeseen (merkit, joita ei voida esittää URL -osoitteessa, esimerkiksi venäläiset merkit korvataan niiden koodeilla)
rivitys () Käytetään tekstin hajottamiseen

Merkkijonon pituuden määrittäminen PHP: ssä

Strlen -funktiota käytetään hyvin usein, koska merkkijonon pituusarvo tarvitaan moniin sen muunnoksiin. Sen käyttö on erittäin yksinkertaista - anna sille merkkijono, ja funktio palauttaa merkkien määrän, esimerkiksi:

$ str = "Hei!"; echo strlen ($ str);

Etsi ja korvaa PHP -merkkijonolla

Strpos () -toimintoa käytetään hakuun merkkijonosta. Sen on välitettävä kolme parametria - merkkijono, josta etsitään, hakujono ja aloitusjonon sijainti, josta haku aloitetaan. Jos haku on aloitettava rivin alusta, sijainti voidaan jättää pois. Funktio palauttaa paikan, josta hakumerkkijono alkaa näkyä alkuperäisessä merkkijonossa. Jos hakumerkkijonoa ei löydy, funktio palauttaa epätosi.

Tässä on esimerkki strops () -funktion käyttämisestä:

$ position = strpos ("Hei maailma", "maailma"); if ($ position === false) echo "Etsimääsi alijonoa ei löytynyt"; else echo "Hakumerkkijono alkaa $ -paikasta";

Tekstin korvaamisen osalta str_replace () -funktiota käytetään sen toteuttamiseen. Tällainen funktio str_replace (rivi1, rivi2, rivi3) - korvaa kaikki rivin 1 esiintymät rivillä2 rivillä3.

Echo str_replace ("hei", "heip", "Kun tapaamme, sanon hei");

PHP: n merkkijonojen vertailu

Strcmp () -funktioita strcasecmp () käytetään merkkijonojen vertaamiseen. Ensimmäinen toiminto vertaa merkkijonoja kirjainkoolla, kun taas toinen ei. Toiminnot palauttavat seuraavat arvot:

  • 0 jos leksikografisesti merkkijonot ovat yhtä suuret;
  • -1 jos ensimmäinen rivi on leksikografisesti pienempi kuin toinen (esimerkiksi merkkijono "Vesimeloni" on sanastollisesti pienempi kuin merkkijono "Boris");
  • 1, jos ensimmäinen rivi on leksikografisesti suurempi kuin toinen (esimerkiksi rivi "Boris2" on sanakirjallisesti suurempi kuin "Boris1").

Mikä on leksikografinen merkkijonojen vertailu? Kuvittele, että sinulla on kaksi sanaa ja sinun on järjestettävä ne aakkosjärjestyksessä nousevaan järjestykseen. Otetaan samat sanat "Vesimeloni" ja "Boris". Ensimmäinen sana alkaa kirjaimella "A", joka aakkosessa seuraa kirjainta "B", joka aloittaa toisen sanan. Siksi ensimmäinen rivi on leksikografisesti pienempi kuin toinen rivi.

Työskentely alijonoilla PHP: ssä

Alimerkkijono (merkkijono, luku1, luku2) palauttaa alimerkkijonon, joka alkaa kohdasta numero 1 ja pituuden numero2. Kokeile koodia:

Echo substr ("Hei, maailma!", 2, 4);

Ensimmäinen parametri on alkuperäinen merkkijono. Toinen parametri on alimerkkijonon alku ja kolmas parametri (joka on valinnainen) on alimerkkijonon pituus. Jos kolmatta parametria ei ole määritetty, alimerkkijono palautetaan alkuperäisen merkkijonon loppuun.

$ sub = substr ("kone", 4); // palauttaa "by" $ sub = substr ("machine", 2, 4); // palauttaa "bussin"

Räjähdys () -toiminto on erittäin tehokas, joten voit purkaa kaikki erotin erotetut alijonot. Oletetaan, että meillä on tällainen rivi: "Line1; Line2; Line3".

$ str = "Rivi1; Rivi2; Rivi3";

Kun kutsumme räjähtää (), meidän on määritettävä kaksi parametria: erotin ja lähdejono.

$ A = räjähtää (";", $ str);

Funktio palauttaa luettelon, joka sisältää merkkijonomme.

Taulukko (=> Jono1 => Jono2 => Jono3)

Siinä kaikki toistaiseksi, mutta PHP: llä on muita hyödyllisiä merkkijonotoimintoja, joita web -ohjelmoijat käyttävät aktiivisesti käytännössä. Kerron niistä ehdottomasti yhdessä uudessa artikkelissani.

PHP -merkkijonotoiminnot muokattu viimeksi: 3. maaliskuuta 2016 mennessä Järjestelmänvalvoja

Lisää HTML -rivinvaihtokoodin ennen jokaista rivinsyöttöä

  • number_format - Alustaa numeron erillisillä ryhmillä
  • ord - Palauttaa ASCII -merkkikoodin
  • parse_str - jäsentää merkkijonon muuttujiksi
  • print - Tulostaa merkkijonon
  • printf
  • quoted_printable_decode - purkaa lainatun tulostettavan koodatun merkkijonon
  • quotemeta - pakenee erikoismerkkejä
  • rtrim - Poista väli rivin lopusta
  • sha1 - Palauttaa merkkijonon SHA1 -tiivisteen
  • sha1_file - Palauttaa tiedoston SHA1 -tiivisteen
  • similar_text - Laskee kahden merkkijonon samankaltaisuuden
  • soundex - Palauttaa merkkijonon soundex -avaimen
  • sprintf
  • sscanf - jäsentää merkkijonon tietyn muodon mukaan
  • strcasecmp - Kirjainkoko ei erota merkkijonojen vertailua, binäärinen tallelokero
  • strcmp - Binaarisen turvallisen merkkijonon vertailu
  • strcoll - Vertaa merkkijonoja nykyisen alueen mukaan
  • strcspn - Palauttaa rivin alussa olevan segmentin pituuden, joka ei vastaa maskia
  • stripcslashes - Poistaa addcslashes (): n aiheuttaman merkkien pakenemisen
  • stripos - Palauttaa kirjainkoon erottamaton sijainnin alijonon ensimmäisessä esiintymisessä
  • stripslashes - Poistaa liuskat () karkaavan
  • strip_tags - Poista HTML- ja PHP -tunnisteet merkkijonosta
  • stristr - Samanlainen kuin strstr, mutta kirjainkoolla ei ole väliä
  • strlen - Palauttaa merkkijonon pituuden
  • strnatcasecmp - Kirjainkoon erottamaton merkkijonojen vertailu algoritmin avulla
  • strnatcmp - Merkkijonojen vertailu "luonnollisen järjestyksen" algoritmin avulla
  • strncasecmp
  • strncmp - Merkkijonojen ensimmäisen n merkin kirjainkoon erottamaton vertailu, turvallinen binääridatalle
  • strpos - Etsii merkkijonon alimerkkijonon ensimmäisen esiintymän
  • strrchr
  • strrev - Käänteinen merkkijono
  • strripos - Palauttaa alimerkkijonon viimeisen esiintymän sijainnin. Kirjainkoolla ei ole väliä
  • strrpos - Etsii merkkijonon viimeisen esiintymän
  • strspn - Palauttaa maskin vastaavan rivin alussa olevan segmentin pituuden
  • strstr - Etsii alimerkkijonon ensimmäisen esiintymän
  • strtok - jakaa merkkijonon
  • strtolower - Muunna merkkijono pieniksi kirjaimiksi
  • strtoupper - Muuntaa merkkijonon isoiksi kirjaimiksi
  • strtr - Muuntaa annetut merkit
  • str_ireplace - Kirjainkoon erottamaton versio osoitteesta str_replace ().
  • str_pad - Täytetään merkkijono toisella merkkijonolla tiettyyn pituuteen
  • str_repeat - Palauttaa kaksoiskappaleen
  • str_replace - Korvaa hakumerkkijonon korvaavalla merkkijonolla
  • str_rot13 - Suorittaa ROT13 -muunnoksen merkkijonolle
  • str_shuffle - Sekoita merkkijonossa olevia merkkejä
  • str_split - Muunna merkkijono matriisiksi
  • str_word_count - Palauttaa tiedot merkkijonossa olevista sanoista
  • substr - Toiminto palauttaa osan merkkijonosta
  • substr_count - Laskee merkkijonon alijonon esiintymien määrän
  • substr_replace - Korvaa osan merkkijonosta
  • trim - Poistaa välilyönnit merkkijonon alusta ja lopusta
  • ucfirst - Muuntaa merkkijonon ensimmäisen merkin isoiksi kirjaimiksi
  • ucwords - Muuntaa merkkijonon jokaisen sanan ensimmäisen merkin isoiksi kirjaimiksi
  • vprintf - Tulostaa muotoillun merkkijonon
  • vsprintf - Palauttaa muotoillun merkkijonon
  • wordwrap - Suorittaa rivinvaihdon tietylle määrälle merkkejä käyttämällä rivinvaihtomerkkiä
  • Merkkijonoihin sovelletut vertailuoperaattorien ominaisuudet.

    $ 1 = 1; // Numero yksi. $ nolla = 0; // Aseta numero nollaksi. jos ($ one == "") echo 1; // Ilmeisesti ei ole sama - ei tuota 1. if ($ zero == "") echo 2; //* Huomio! Tulokset 2! if ("" == $ zero) echo 3; // * Eikä sekään auta - se tulostaa! .. if ("$ zero" == "") echo 4; // Oikein. if (strval ($ zero) == "") echo 5; // Tämä on myös oikein - se ei tuota 5. if ($ zero === "") echo 6; // Paras tapa, mutta ei pätevä PHP 3: ssa.

    pilkkoa ()

    Chop () -toiminto palauttaa merkkijonon, kun se on poistanut välilyönnit ja rivit. Chop () -toiminnon syntaksi on:

    merkkijono (merkkijono)

    Seuraavassa esimerkissä chop () -toiminto poistaa ylimääräiset uudet rivit:

    $ header = "Sisällysluettelo \ n \ n"; $ header = pilkkoa ($ header); // $ header = "Sisällysluettelo"

    str_pad ()

    Funktio str_pad () kohdistaa merkkijonon tiettyyn pituuteen määritettyjen merkkien kanssa ja palauttaa muotoillun merkkijonon. Str_pad () -funktion syntaksi on:

    merkkijono str_pad (merkkijono, int padding_length [, string padding [, int padding_type]])

    Jos valinnaista täyttöparametria ei ole määritetty, merkkijono täytetään välilyönneillä. Muussa tapauksessa merkkijono täytetään määritetyillä merkeillä. Oletuksena viiva on pehmustettu oikealla; voit kuitenkin ohittaa STR_PAD_RIGHT-, STR_PAD_LEFT- tai STR_PAD_BOTH -parametrin padding_type, mikä pehmustaa merkkijonon määritettyyn suuntaan. Esimerkki osoittaa jonon täyttämisen str_pad () -funktiolla oletusparametreilla:

    $ ruoka = "salaatti"; print str_pad ($ food, 5): // Tulostaa merkkijonon "salaatti" Seuraavassa esimerkissä käytetään str_pad () -funktion valinnaisia ​​parametreja: $ header = "Sisällysluettelo"; print str_pad ($ header, 5, "= + = + = ", STR_PAD_BOTH); // Selain näyttää merkkijonon = + = + = Sisällysluettelo = + = + ="

    trimmata ()

    Trim () -toiminto poistaa kaikki välilyönnit merkkijonon molemmista päistä ja palauttaa tuloksena olevan merkkijonon. Trim () -toiminnon syntaksi on:

    merkkijonon leikkaus (merkkijonon maa)

    Erikoismerkit \ n, \ r, \ t, \ v ja \ 0 poistetaan myös välilyönneiltä.

    ltrim ()

    Lrim () -toiminto poistaa kaikki välilyönnit ja erikoismerkit merkkijonon vasemmasta reunasta ja palauttaa tuloksena olevan merkkijonon. Funktion ltrim () syntaksi on:

    merkkijono ltrim (merkkijono)

    Toiminto poistaa samat erikoismerkit kuin trim ().

    strlen ()

    Merkkijonon pituuden määrittäminen

    Merkkijonon pituus merkkinä voidaan määrittää käyttämällä funktiota strlen (). Strlen () -funktion syntaksi on:

    int strlen (merkkijono)

    Seuraava esimerkki osoittaa, kuinka merkkijonon pituus määritetään funktiolla strlen ():

    $ string = "hei"; $ pituus = strlen ($ merkkijono); // $ pituus = 5

    Kahden merkkijonon vertailu

    Kahden merkkijonon vertailu on yksi tärkeimmistä merkkijonotoiminnoista millä tahansa kielellä. Vaikka tämän tehtävän voi suorittaa useilla eri tavoilla, PHP: ssä on neljä merkkijonojen vertailutoimintoa:

    strcmp ()

    Funktio strcmp () vertaa kahta merkkijonoa kirjainkoolla. Strcmp () -funktion syntaksi on int strcmp (merkkijono1, merkkijono2)

    Kun vertailu on valmis, strcmp () palauttaa yhden kolmesta mahdollisesta arvosta:

    • 0 jos rivi1 ja rivi2 ovat samat;
    • < 0, если строка1 меньше, чем строка2;
    • > 0, jos rivi2 on pienempi kuin rivi1.

    $ sthng1 = "voita"; $ string2 = "voita"; if ((strcmp ($ string1. $ string2)) == 0): print "Merkkijonot vastaavat!"; loppu Jos; // If -komento palauttaa TOSI

    strcasecmp ()

    Funktio strcasecmp () toimii täsmälleen samalla tavalla kuin strcmp (), yhtä poikkeusta lukuun ottamatta - vertailu ei erota kirjainkoosta. Strcasecmp () -funktion syntaksi on:

    int strcasecmp (merkkijono1, merkkijono2)

    Seuraava katkelma vertaa kahta samanlaista merkkijonoa:

    $ string1 = "voita"; $ string2 = "Voi"; if ((strcmp ($ string1, $ string2)) == 0): print "Merkkijonot vastaavat!"; loppu Jos; // If -komento palauttaa TOSI

    strspn ()

    Funktio strspn () palauttaa merkkijonon 1 ensimmäisen segmentin pituuden, joka sisältää merkkijonossa 2 olevat merkit. Strspn () -funktion syntaksi on:

    int strspn (merkkijono1, merkkijono2)

    Seuraava katkelma näyttää, miten strspn () -toimintoa käytetään salasanan vahvistamiseen:

    $ password = "12345"; if (strspn ($ password, "1234567890")! = strlen ($ password)): print "Salasana ei voi koostua pelkästään numeroista!"; loppu Jos:

    strcspn ()

    Funktio strcspn () palauttaa merkkijonon 1 ensimmäisen segmentin pituuden, joka sisältää merkkejä, joita ei löydy merkkijonosta2. Strcspn () -funktion syntaksi on:

    int strcspn (merkkijono1, merkkijono2)

    Seuraava katkelma käyttää strcspn () -toimintoa salasanan vahvistamiseen:

    $ password = "12345"; if (strcspn ($ password, "1234567890") == 0): print "Salasana ei voi koostua pelkästään numeroista!"; loppu Jos;

    Käsittelemme merkkijonotietoja käyttämättä säännöllisiä lausekkeita

    Kun käsitellään suuria tietomääriä, säännöllisen lausekkeen toiminnot hidastavat ohjelman suorittamista dramaattisesti. Näitä toimintoja tulisi käyttää vain käsiteltäessä suhteellisen monimutkaisia ​​merkkijonoja, joissa säännöllisiä lausekkeita todella tarvitaan. Jos tekstianalyysi suoritetaan suhteellisen yksinkertaisten sääntöjen mukaisesti, voit käyttää PHP -vakiotoimintoja, jotka nopeuttavat käsittelyä merkittävästi. Kaikki nämä ominaisuudet on kuvattu alla.

    strtok ()

    Funktio strtok () jakaa merkkijonon rahakkeiksi toisen parametrin määrittämien erotinten perusteella. Strtok () -funktion syntaksi on:

    merkkijono strtok (merkkijono, merkkijonojen erottimet)

    Funktiolla strtok () on yksi kummallisuus: jotta merkkijono voidaan jakaa kokonaan, funktio on kutsuttava useita kertoja peräkkäin. Seuraavan puhelun aikana toiminto poimii seuraavan merkin merkkijonosta. Tässä tapauksessa merkkijonoparametri asetetaan vain kerran - toiminto seuraa merkkijonon nykyistä sijaintia, kunnes merkkijono on jäsennetty kokonaan rahakkeiksi tai uusi merkkijonoparametri on asetettu. Seuraava esimerkki osoittaa merkkijonon jakamisen useisiin erottimiin:

    $ info = "WJ Gi1lisää: [sähköposti suojattu]| Columbus, Ohio "; // Erotimet - kaksoispiste (:), putki (|) ja pilkku (.) $ Tokens =": ​​|, "; $ tokenized = strtok ($ info, $ tokens); // Tulosta taulukko elements $ tokenized while ($ tokenized): echo "Element = $ tokenized
    "; // Huomaa: seuraavissa strtok -kutsuissa // ensimmäinen argumentti ei läpäise $ tokenized = strtok ($ tokens); endmediate; [sähköposti suojattu] Elementti = Columbus Element = Ohio

    parse_str ()

    Funktio parse_str () poimii parit merkkijonosta ja määrittää arvot nykyisen laajuuden muuttujille. Parse_str () -funktion syntaksi on:

    void parse_str (merkkijono)

    Parse_str () on erityisen hyödyllinen käsiteltäessä URL -osoitteita, jotka sisältävät HTML -lomaketietoja tai muita laajennettuja tietoja. Seuraava esimerkki jäsentää URL -osoitteen kautta välitetyt tiedot. Merkkijono on tavallinen tapa siirtää tietoja sivujen välillä, joko koottuna hyperlinkiksi tai kirjoitettuna HTML -muotoon:

    $ url = "fname = wj & lname = gilmore & zip = 43210"; parse_str ($ url); // Kun parse_str () on suoritettu, seuraavat muuttujat ovat käytettävissä: // $ fname = "wj": // $ lname = "gilmore"; // $ zip = "43210"

    Koska tämä toiminto on suunniteltu toimimaan URL -osoitteiden kanssa, se ei huomioi & -merkkiä (&).

    räjähtää ()

    Funktio Explode () jakaa merkkijonon elementeiksi ja palauttaa nämä elementit matriisina. Räjähdys () -funktion syntaksi on:

    matriisi räjähtää (merkkijonon erotin, merkkijono [, sisäinen kynnys])

    Jakautuminen tapahtuu jokaiselle erottimen esiintymälle, ja vastaanotettujen fragmenttien määrää voidaan rajoittaa valinnaisella kynnysparametrilla.

    Merkkijonon jakaminen räjähdys () -funktiolla esitetään seuraavassa esimerkissä:

    $ info = "wilson | baseball | intiaanit"; $ user = räjähtää ("|", $ info); // $ user = "wilson"; // $ user = "baseball"; // $ user = "Intiaanit";

    Räjähdys () -toiminto on lähes identtinen yllä kuvatun POSIX split () -lausefunktion kanssa. Suurin ero on se, että säännöllisten lausekkeiden välittäminen parametreissa on sallittua vain kutsuttaessa split ().

    implode ()

    Jos räjähdys () jakaa merkkijonon matriisielementteihin, sen vastine implode () yhdistää ketjun merkkijonoksi. Implode () -funktion syntaksi on:

    merkkijonoimplode (merkkijonojen erotin, matriisifragmentit)

    Merkkijonon muodostaminen taulukosta esitetään seuraavassa esimerkissä:

    $ ohio_cities = array ("Columbus", "Youngstown", "Cleveland", "Cincinnati"); $ city_string = implode ("l", $ ohio_cities); // $ city_string = "Columbus | Youngstown | Cleveland | Cincinnati";

    Implode (): lla on alias, join () -funktio.

    strpos ()

    Funktio strpos () löytää määritetyn alimerkkijonon ensimmäisen esiintymän merkkijonosta. Strpos () -funktion syntaksi on:

    int strpos (merkkijono, merkkijonon alijono [, int offset])

    Valinnainen offset -parametri määrittää paikan, josta haku tulee aloittaa. Jos alimerkkijonoa ei löydy, strpos () palauttaa FALSE (0).

    Seuraava esimerkki määrittää päivämäärän ensimmäisen esiintymisen sijainnin lokitiedostossa:

    $ log = "206.169.23.11:/www/:2000-08-10 206.169.23.11:/www/logs/:2000-02-04 206.169.23.11:/www/img/:1999-01-31"; // Missä asemassa aikakauslehti ilmestyy ensimmäisen kerran? $ pos = strpos ($ log, "1999"); // $ pos = 95. koska ensimmäinen esiintymä on "1999" // on $ log -muuttujan rivin 95 kohdassa

    strrpos ()

    Funktio strrpos () löytää merkkijonon määritetyn merkin viimeisen esiintymän. Strrpos () -funktion syntaksi on:

    int strpos (merkkijono, merkki)

    Ominaisuuksiltaan tämä toiminto on huonompi kuin vastine, strpos () -funktio, koska sen avulla voit etsiä vain yhtä merkkiä, ei koko merkkijonoa. Jos merkkijono välitetään toisessa parametrissa strrpos (): lle, vain sen ensimmäistä merkkiä käytetään haussa.

    str_replace ()

    Funktio str_replace () etsii merkkijonosta tietyn alimerkkijonon kaikki esiintymät ja korvaa ne uudella alimerkkijonolla. Str_replace () -funktion syntaksi on:

    merkkijono str_replace (merkkijonon alimerkkijono, merkkijonon korvaaminen, merkkijono)

    Substr_replace () -funktiolla, joka kuvataan myöhemmin tässä osiossa, voit korvata vain tietyn merkkijonon osan. Seuraavassa näytetään, miten str_replace () -funktiota käytetään merkkijonon yleisten korvausten suorittamiseen.

    Jos alimerkkijonoa ei koskaan esiinty merkkijonossa, alkuperäinen merkkijono on muuttumaton:

    $ favorite_food = "Lempiruokani ovat jäätelö ja kanansiivet"; $ suosikki_ruoka = str_replace ("kanansiivet", "pizza", $ favohte_food); // $ favorite_food = "Lempiruokani ovat jäätelö ja pizza"

    strstr ()

    Funktio strstr () palauttaa merkkijonon osan, joka alkaa annetun alimerkkijonon ensimmäisestä esiintymisestä. Strstr () -funktion syntaksi on:

    merkkijono strstr (merkkijono, merkkijonon alijono)

    Seuraavassa esimerkissä käytetään strstr () -funktiota verkkotunnuksen poimimiseksi URL -osoitteesta:

    $ url = "http://www.apress.com"; $ domain - strstr ($ url, "."); // $ domain = ".apress.com"

    substr ()

    Substr () -funktio palauttaa merkkijonon osan, joka alkaa annetusta aloituskohdasta ja jolla on tietty pituus. Substr () -funktion syntaksi on:

    merkkijonon alijono (merkkijono, int alku [, int pituus])

    Jos valinnaista parametrin pituutta ei ole määritetty, oletetaan, että alimerkkijono alkaa määritetystä aloituskohdasta ja jatkuu merkkijonon loppuun. Tätä ominaisuutta käytettäessä on otettava huomioon neljä asiaa:

    • jos aloitusparametri on positiivinen, palautettu alimerkkijono alkaa annetun numeron merkkijonon kohdasta;
    • jos aloitusparametri on negatiivinen, palautettu alimerkkijono alkaa kohdasta (merkkijonon pituus - alku);
    • jos pituus on positiivinen, kaikki merkit alkupisteestä alkuun + pituus sisältyvät palautettuun alimerkkijonoon. Jos viimeinen arvo ylittää merkkijonon pituuden, merkkijonon loppuun asti olevat merkit palautetaan;
    • jos pituus on negatiivinen, palautettu alimerkkijono päättyy määritetylle etäisyydelle merkkijonon lopusta.

    Muista, että aloitusparametri määrittää poikkeaman merkkijonon ensimmäisestä merkistä; näin ollen palautettu merkkijono alkaa itse asiassa numeroidusta merkistä (alku + 1).

    Seuraava esimerkki osoittaa merkkijonon osan valitsemisen substr () -funktiolla:

    $ auto = "1944 Ford"; Smodel = substr ($ auto, 6); // Smodel = "Ford"

    Esimerkki positiivisesta parametrin pituudesta:

    $ auto = "1944 Ford"; $ malli = alaraja ($ auto, 0, 4); // $ model = "1944" Esimerkki negatiivisella pituusparametrilla: $ car = "1944 Ford"; $ malli = alaraja ($ auto, 2, -5); // $ model = "44"

    substr_count ()

    Funktio substr_count () palauttaa annetun merkkijonon alimerkkijonon esiintymien määrän. Funktion substr_count () syntaksi on: int substr_count (merkkijono, merkkijonon alijono) Seuraavassa esimerkissä substr_count () -funktio laskee alajonon ain esiintymien määrän: $ tng_twist = "Sade putoaa pääasiassa tasangoille Espanjasta "; $ count = substr_count ($ tng_twist, "ain"); // $ count = 4

    substr_replace ()

    Substr_replace () -toiminto korvaa merkkijonon osan, joka alkaa tietystä kohdasta. Jos valinnainen pituusparametri on määritetty, määritetyn pituinen pala korvataan; muussa tapauksessa vaihto suoritetaan korvaavan merkkijonon koko pituudelta. Substr_replace () -funktion syntaksi on:

    merkkijono substr_replace (merkkijono, merkkijonon vaihto, int alku [, int pituus])

    Aloitus- ja pituusparametrit asetetaan tiettyjen sääntöjen mukaisesti:

    • jos käynnistysparametri on positiivinen, vaihto alkaa annetusta paikasta;
    • jos aloitusparametri on negatiivinen, korvaaminen alkaa kohdasta (merkkijonon pituus -alku);
    • jos pituusparametri on positiivinen, annetun pituinen fragmentti korvataan;
    • jos pituus on negatiivinen, korvaus päättyy kohtaan (merkkijonon pituus -pituus).

    Yksinkertainen tekstin korvaaminen substr_replace (): lla esitetään seuraavassa esimerkissä:

    $ favs = "" suosikkilinkit "; $ name =" Alessia "; // Parametrit" 0, 0 "tarkoittavat, että vaihdettava fragmentti alkaa // ja päättyy merkkijonon ensimmäiseen kohtaan. $ favs - substr_replace ($ favs, $ name, 0, 0); tulosta $ favs:

    Tulos:

    Alessian suosikkilinkit

    Muunna merkkijonot ja tiedostot HTML -muotoon ja päinvastoin

    Merkkijonon tai koko tiedoston muuntaminen verkkoselaimessa katseltavaan muotoon (tai päinvastoin) on helpompaa kuin miltä se ensi silmäyksellä saattaa näyttää. PHP: llä on tähän erityistoimintoja.

    Tekstin muuntaminen HTML -muotoon

    Tavallisen tekstin nopea muuttaminen verkkoselaimen muotoon on hyvin yleinen tehtävä. Tässä osassa kuvatut toiminnot auttavat sinua ratkaisemaan sen.

    nl2br ()

    Funktio nl2br () korvaa kaikki uuden rivin merkit (\ n) vastaavilla HTML -rakenteilla.

    Funktion nl2br () syntaksi on:

    merkkijono nl2br (merkkijono)

    Uudet rivit voivat olla sekä näkyviä (eli nimenomaisesti sisällytettyjä riville) että näkymättömiä (esimerkiksi syötetty editorissa). Seuraava esimerkki muuntaa tekstimerkkijonon HTML -muotoon korvaamalla \ n rivinvaihdoilla:

    // Editorissa näkyvä tekstimerkkijono. $ text_recipe = "Juhlakastikkeen resepti: 1 tölkki haudutettua tomaattia 3 rkl tuoretta sitruunamehua Sekoita keskenään, palvelin kylmä."; // Muunna uuden rivin merkit
    $ htinl_recipe = nl2br ($ text_recipe) Myöhempi $ html_recipe -tulostus lähettää seuraavan HTML -tekstin selaimeen: Juhlakastikkeen resepti:
    1 tölkki haudutettua tomaattia
    3 rkl tuoretta sitruunamehua
    Sekoita keskenään, palvelin kylmä.

    htmlentities ()

    Funktio htmlentities () muuntaa merkit vastaaviksi HTML -rakenteiksi. Htmlentities -funktion syntaksi on:

    merkkijono htmlentities (merkkijono)

    Seuraava esimerkki suorittaa tarvittavat merkkijonomerkit selaimessa näytettäväksi:

    $ user_input = "Keittokirja Cafe Francaise" maksaa

    Htmlentities () -toiminto toimii tällä hetkellä vain ISO-8559-1 (ISO-Latin-1) -merkeille. Lisäksi se ei muunna välilyöntejä odotetuksi.

    htmlspecialchars ()

    Funktio htmlspecialchars () korvaa jotkut merkit, joilla on erityinen merkitys HTML -kontekstissa, vastaavilla HTML -rakenteilla. Htmlspecialchars () -funktion syntaksi on:

    merkkijono htmlspecialchars (merkkijono)

    Html -erikoismerkit () -toiminto muuntaa tällä hetkellä seuraavat merkit: & muuntaa &; "" muuntaa "; muuntaa>.

    Tämä ominaisuus auttaa erityisesti estämään käyttäjiä syöttämästä HTML -merkintöjä interaktiivisiin verkkosovelluksiin (kuten sähköisiin foorumeihin). Virheet HTML -merkinnöissä voivat aiheuttaa koko sivun hahmontumisen väärin. Tähän ongelmaan on kuitenkin tehokkaampi ratkaisu - poistaa tunnisteet kokonaan merkkijonosta strip_tags () -funktiolla.

    Seuraava esimerkki osoittaa mahdollisesti vaarallisten merkkien poistamisen htmlspeclalchars () -toiminnolla:

    $ user_input = "En vain voi saada PHP: stä ja niistä upeista ruoanlaittoresepteistä! "; $ conv_input = htmlspecialchars ($ user_input); // $ conv_input =" En vain voi "t<> PHP: stä ja niistä upeista ruoanlaittoresepteistä! "

    Jos htmlspecialchars (): a käytetään yhdessä nl2br (): n kanssa, jälkimmäistä on kutsuttava htmlspecialchars (): n jälkeen. Muuten rakenteet
    kutsumalla nl2br (): n luomat muunnetaan näkyviksi merkeiksi.

    get_html_translation_table ()

    Funktio get_html_translation_table () on kätevä tapa muuntaa teksti HTML -vastineeksi. Funktion get_htrril_translation_table () syntaksi on:

    merkkijono get_html_translation_table (int -taulukko)

    Funktio get_html_translation_table () palauttaa yhden kahdesta käännöstaulukosta (määritelty taulukon parametrilla), joita käytetään vakiotoiminnoissa htmlspecialchars () ja htmlentities (). Palautusarvoa voidaan käyttää muun vakiotoiminnon, strtr (), kanssa muuntaaksesi tekstin HTML -muotoon.

    Taulukon parametri ottaa yhden kahdesta arvosta:

    • HTML_ENTITIES;
    • HTML_SPECIALCHARS.

    Seuraavassa esimerkissä käytetään get_html_translation_table () -funktiota muunnettaessa tekstiä HTML -muotoon:

    $ string = "La pasta e il piatto piu amato in Italia"; $ translate = get_html_translation_table (HTML_ENTITIES); tulosta strtr ($ string, $ translate); // Erikoismerkit muunnetaan HTML -rakenteiksi // ja näytetään oikein selaimessa.

    Muuten, array_flip () -toiminnon avulla voit muuntaa tekstin HTML -muotoon päinvastaiseen suuntaan ja palauttaa alkuperäisen tekstin. Oletetaan, että sen sijaan, että olisimme tulostaneet strtr (): n tuloksen edellisessä esimerkissä, annoimme sen muuttujalle $ käännetty merkkijono.

    Seuraavassa esimerkissä array_flip () -funktio palauttaa alkuperäisen tekstin:

    $ translate = array_flip ($ translate); $ translation_string - "La pasta é piatto piú amato in Italia"; $ original_string = strtr ($ translation_string, $ translate); // $ original_string = "La pasta and il piatto piu amato in Italia";

    strtr ()

    Funktio strtr () kääntää merkkijonon, eli korvaa kaikki lähdejonon merkit vastaavilla kohdejonon merkeillä. Strtr () -funktion syntaksi on:

    merkkijono strtr (merkkijono, merkkijonolähde, merkkijonokohde)

    Jos lähde- ja kohdejonot ovat eri pituisia, pitkä merkkijono katkaistaan ​​sopimaan lyhyeen.

    Strtr (): n kutsumiselle on vaihtoehtoinen syntaksi kahdella parametrilla; tässä tapauksessa toinen parametri sisältää assosiatiivisen taulukon, jonka avaimet vastaavat korvattuja alijonoja ja arvot vastaavat alijonoja. Seuraava esimerkki korvaa HTML-tunnisteet XML-kaltaisilla rakenteilla:

    " => "

    ", "" => "

    "); $ string ="

    Tänään PHP-tuetuissa uutisissa

    "; tulosta strtr ($ merkkijono, $ lähde); // Tulosta merkkijono" Tänään PHP-tuetuissa uutisissa" ?>

    HTML: n muuntaminen tavalliseksi tekstiksi

    Joskus on tarpeen muuntaa HTML -tiedosto tavalliseksi tekstiksi. Alla kuvatut toiminnot auttavat sinua tässä tehtävässä.

    strip_tags ()

    Strip_tags () -toiminto poistaa kaikki HTML- ja PHP -tunnisteet merkkijonosta jättäen vain tekstin siihen. Strip_tags () -funktion syntaksi on:

    merkkijono strip_tags (merkkijono [, merkkijono sallittu_ters])

    Valinnaisen parametrin allow_tags avulla voit määrittää, mitkä tunnisteet ohitetaan poistoprosessin aikana.

    Alla on esimerkki kaikkien HTML -tagien poistamisesta merkkijonosta strip_tags () -funktiolla:

    $ user_input = "Minä vain rakkaus PHP ja gourment reseptejä! "; $ stripped_input = strip_tags ($ user_input); // $ stripped_input =" Rakastan vain PHP- ja gourmet -reseptejä! ";

    Seuraava esimerkki ei poista kaikkia, vaan vain joitain tunnisteita:

    $ input = "Minä rakkaus kohteeseen syödä!! "; $ strip_input = strip_tags ($ user_input," "); // $ strip_input =" Rakastan syödä!!";

    Tunnisteiden poistaminen tekstistä tapahtuu myös fgetss () -toiminnolla.

    get_meta_tags ()

    Vaikka get_meta_tags () -toiminto ei liity suoraan tekstin muuntamiseen, se on erittäin hyödyllinen toiminto, joka on mainittava. Get_meta_tags () -funktion syntaksi on:

    array get_meta_tags (merkkijono tiedostonimi / URL [, sisällytä_polku])

    Get_meta_tags () -toiminto on suunniteltu etsimään META -tunnisteita HTML -tiedostosta.

    META -tunnisteet sisältävät tietoja sivusta, jota ensisijaisesti käyttävät hakukoneet. Nämä tunnisteet ovat tunnisteparin sisällä .... Seuraava katkelma osoittaa META -tagien käytön (kutsutaan sitä esimerkiksi.html, koska sitä käytetään luettelossa 8.2): PHP -reseptit Get_meta_tags () -toiminto etsii asiakirjan otsikosta META -alkuisia tunnisteita ja tallentaa tunnisteiden nimet ja niiden sisältö assosiatiivisessa taulukossa. Luettelo 8.2 osoittaa tämän toiminnon soveltamisen example.html -tiedostoon. Listaus 8.2. Pura META -tunnisteet HTML -tiedostosta käyttämällä get_meta_tags () -toimintoa

    $ meta_tags = get_meta_tags ("example.html"): // Muuttuja $ meta_tags sisältää taulukon, jossa on seuraavat tiedot: // $ meta_tags ["keywords"] = "PHP, koodi, reseptit, verkko" // $ meta_tags [ "description"] = "PHP Info" // $ meta_tags ["author"] = "KDG";

    Mielenkiintoinen yksityiskohta: META -tunnisteiden tietoja voidaan poimia paitsi palvelimessa olevista tiedostoista myös muista URL -osoitteista.

    Muunna merkkijono isoiksi ja pieniksi kirjaimiksi

    PHP: llä on neljä toimintoa merkkijonon kirjainten vaihtamiseksi:

    strtolower ()

    Strtolower () -toiminto muuntaa kaikki merkkijonon aakkosmerkit pieniksi kirjaimiksi. Strtolower () -funktion syntaksi on:

    merkkijono strtolower (merkkijono)

    Toiminto ei muuta ei-aakkosellisia merkkejä. Merkkijonon muuntaminen pieniksi kirjaimiksi strtolower () -funktiolla esitetään seuraavassa esimerkissä:

    $ lause = "Ruoanlaitto ja ohjelmointi PHP ovat KAHDEN suosikkini!"; $ lause = strtolower ($ lause); // Funktion kutsumisen jälkeen $ -lause sisältää merkkijonon // "ruoanlaitto ja ohjelmointi php ovat kaksi suosikkiani!"

    strtoupper ()

    Merkkijonot voidaan muuntaa paitsi pieniksi, myös isoiksi kirjaimiksi. Muunnos suoritetaan strtoupper () -funktiolla, jolla on seuraava syntaksi:

    merkkijono strtoupper (merkkijono)

    Toiminto ei muuta ei-aakkosellisia merkkejä. Merkkijonon muuntaminen isoiksi kirjaimiksi strtoupper () -funktiolla esitetään seuraavassa esimerkissä:

    $ lause = "ruoanlaitto ja PHP: n ohjelmointi ovat kaksi suosikkiani!"; $ lause = strtoupper ($ lause); // Funktion kutsumisen jälkeen $ -lause sisältää rivin // "KYPSENNYS JA OHJELMOINTI PHP OVAT KAKSI SUOSIKKIAMME!"

    ucfirst ()

    Funktio ucfirst () muuntaa merkkijonon ensimmäisen merkin isoiksi, jos se on aakkosellinen merkki. Ucfirst () -funktion syntaksi on:

    merkkijono ucfirst (merkkijono)

    Toiminto ei muuta ei-aakkosellisia merkkejä. Merkkijonon ensimmäisen merkin muuntaminen ucfirst () -funktiolla esitetään seuraavassa esimerkissä:

    & lause = "ruoanlaitto ja PHP: n ohjelmointi ovat kaksi suosikkiani!"; $ lause = ucfirst ($ lause); // Funktion kutsumisen jälkeen $ -lause sisältää rivin // "Ruoanlaitto ja PHP: n ohjelmointi ovat suosikkini!"

    ucwords ()

    Ucwords () -funktio muuntaa merkkijonon jokaisen sanan ensimmäisen kirjaimen isoiksi kirjaimiksi. Ucwords () -funktion syntaksi on:

    merkkijono ucwords (merkkijono ")

    Toiminto ei muuta ei-aakkosellisia merkkejä. "Sana" määritellään merkkijonoksi, joka on erotettu muusta merkkijonosta välilyönneillä. Seuraava esimerkki osoittaa sanojen ensimmäisten merkkien muuntamisen ucwords () -funktiolla:

    $ lause = "ruoanlaitto ja PHP: n ohjelmointi ovat kaksi suosikkiani!"; $ lause = ucwords ($ lause); // Funktiokutsun jälkeen $ -lause sisältää rivin // "Ruoanlaitto ja ohjelmointi PHP Are My Two Favorite!"

    strrchr ()

    strrchr ("merkkijono", "o") - Etsii alimerkkijonon viimeisen esiintymän

    Palauttaa EPÄTOSI, jos alimerkkijonoa ei löydy.

    Toisin kuin strchr (), jos hakumerkkijono sisältää useamman kuin yhden merkin, käytetään vain ensimmäistä merkkiä.

    Jos toinen parametri ei ole merkkijono, se heitetään kokonaislukuun ja sitä käsitellään merkkikoodina.

    // hae viimeinen hakemisto $ PATH $ dir = substr (strrchr ($ PATH, ":"), 1); // hae kaikki viimeisen rivinsyötteen jälkeen $ text = "Rivi 1 \ nRivi 2 \ nRivi 3"; $ last = substr (strrchr ($ text, 10), 1);

    highlight_string ()

    highlight_string - merkkijonon syntaksikorostus.

    korostettu merkkijono (merkkijono [, bool return])

    Highlight_string () -toiminto antaa str: n syntaksivärisen version käyttämällä PHP: n inline-syntaksin korostuksessa määritettyjä värejä.

    Jos toinen palautusparametri on TOSI, kohokohta_merkkijono () palauttaa värillisen koodiversion merkkijonona tulostamisen sijaan. Jos toinen parametri ei ole TOSI, kohokohta_merkkijono () palauttaa arvon TOSI onnistumisesta ja EPÄTOSI epäonnistumisen yhteydessä.

    Huomautus: 1. Palautusparametri on ollut saatavilla PHP 4.2.0: n jälkeen. Sitä ennen se toimi oletuksena, ts. VÄÄRÄ.
    2. Toiminto Highlight_String () erottaa PHP -koodin tunnisteilla. show_source ()- synonyymi highlight_file ()... Muuta oletusarvoista korostusväriä seuraavilla PHP -ohjeilla:

    Highlight.bg #FFFFFF highlight.comment # FF8000 highlight.default # 0000BB highlight.html # 000000 highlight.keyword # 007700 highlight.string # DD0000 .htaccess: php_flag highlight.bg #FFFFFF PHP: ssa (ifini (@ini_get ("highlight) .bg ") ==" ") ...

    lisäviivat ()

    - Pakottaa merkkijonon erikoismerkit

    Palauttaa termin, jossa vinoviiva (\) lisätään jokaisen erikoismerkin eteen, esimerkiksi tämän merkkijonon myöhempää käyttöä varten tietokantakyselyssä.

    Yksittäinen lainausmerkki ("), lainausmerkki ("), vinoviiva (\) ja NUL (tavu NULL) poistetaan.

    $ str = "Onko nimesi O" reilly? "; // output: Onko nimesi O \" reilly? echo lisäviivat ($ str);

    nauhat

    - Poistaa lisäviivat () -toiminnon tuottamat merkit ja poistaa pakolliset kauttaviivat. ("muuntaa" jne.). Kaksoisviilto (\\) muunnetaan yhdeksi viivaksi (\).

    rivitys ()

    Suorittaa rivinvaihdon tietylle määrälle merkkejä käyttämällä rivinvaihtomerkkiä // Wordwrapin () käyttäminen. function cite ($ ourText, $ maxlen = 60, $ prefix = ">") ($ st = wordwrap ($ ourText, $ maxlen-strlen ($ etuliite), "\ n"); $ st = $ prefix.str_replace ( "\ n", "\ n $ etuliite", $ st); return $ st;) echo cite ("Ensimmäinen suunnittelemani Matrix oli luonnostaan ​​täydellinen, se oli taideteos - virheetön, ylevä. Voitto oli vain Sen tuomion väistämättömyys näkyy minulle nyt seurauksena jokaiselle ihmiselle ominaisesta epätäydellisyydestä. oli jälleen turhautunut epäonnistumisesta. ", 20);

    > Ensimmäinen suunniteltu Matrix I> oli> luonnollisesti> täydellinen, se oli> taideteos -> virheetön, ylevä. > Voitto> vastaa vain> sen monumentaalista> epäonnistumista. Sen tuomion> väistämättömyys> näkyy minulle nyt> seurauksena> jokaiselle ihmiselle ominaisesta> epätäydellisyydestä>. Siten> minä> suunnittelin sen uudelleen> historianne perusteella, jotta heijastaisivat tarkemmin> luonne vaihtelevia> groteskysymyksiä. > Olin kuitenkin> jälleen> turhautunut> epäonnistumisesta.


    Lue seuraavaksi: Objektien ohjelmointi PHP: ssä
    .

    Tietenkin kuvat, äänitiedostot, videotiedot, animaatiotiedot ja appletit muodostavat tärkeän osan World Wide Webin sisällöstä, mutta valtaosa Webissä olevasta datasta esitetään edelleen tekstinä - merkkijonoina kuten tämä lause. Tärkein PHP -tietotyyppi tekstin esittämiseen on merkkijono.

    Kuvataan merkkijonoja PHP: ssä

    Merkkijonot ovat merkkijonoja, joita voidaan tarkastella yhtenä yksikkönä - jotka on määritetty muuttujille, siirretty toimintojen syötteeksi, palautettu toiminnoista tai lähetetty tulostettavaksi näytettäväksi käyttäjän verkkosivulla. Yksinkertaisin tapa määrittää merkkijono PHP -koodissa on sulkea merkkijono lainausmerkkeihin, yksi (") tai kaksinkertainen ("), esimerkiksi seuraavasti:

    PHP -koodi $ my_string = "Yksinkertainen merkkijono"; $ another_string = "Toinen merkkijono";

    Erot lainausmerkkien ja lainausmerkkien välillä johtuvat siitä, kuinka paljon PHP tulkitsee lainatut merkit ennen merkkijonon luomista. Jos merkkijono on suljettu lainausmerkkeihin, tulkintaa ei suoriteta lähes lainkaan ja jos merkkijono on lainausmerkeissä, PHP -ympäristö korvaa kaikkien merkkijonossa määritettyjen muuttujien arvot ja korvaa myös joitakin erikoismerkkejä merkkijonot, jotka alkavat merkkiviivalla (\).

    Esimerkiksi seuraavan verkkosivun osana olevan koodin käsittelyn jälkeen:

    PHP -koodi $ count = 13; $ string_1 = "Merkkijonossa \" Hei, maailma! \ "on $ count merkkiä.
    "; $ string_2 =" Merkkijonossa \ "Hei, maailma! \" on $ count merkkiä
    "; echo $ string_1; echo $ string_2;

    voit odottaa saavansa tämän tuloksen selainikkunassa:

    Yksi- ja kaksoislainausmerkkijonojen PHP -tulkin käsittely

    Arvojen korvaaminen kiharoilla

    Useimmissa tilanteissa voit yksinkertaisesti liittää muuttujan lainausmerkkijonoon ja muuttujan arvo korvataan merkkijonolla, kun tulkki jäsentää merkkijonon. Alla kuvatuissa kahdessa tilanteessa merkkijonotulkki ei ehkä pysty tekemään tietoon perustuvaa päätöstä ja vaatii kehittäjältä lisäohjeita.

    Ensimmäinen tilanne on, että tulkki ei voi määrittää, mihin muuttujan nimi päättyy, ja toinen tilanne syntyy, kun on tarpeen korvata merkkijonolla ei yksinkertaisen muuttujan arvo, vaan lausekkeen arvo. Näissä tapauksissa kehittäjä voi selventää liittämällä käsiteltävän nimen tai lausekkeen kiharoihin (()).

    Esimerkiksi PHP -tulkilla ei ole ongelmia seuraavan koodin käsittelyssä:

    PHP -koodi $ sport = "lentopallo"; $ play = "Rakastan $ sportin pelaamista.";

    Tällaisissa tapauksissa tulkki havaitsee $ -merkin ja alkaa sitten kerätä merkkejä alimerkkijonoon löytääkseen muuttujan nimen ja suorittaa tällaisen kokoonpanon, kunnes se löytää välilyönnin tai jakson, joka seuraa $ sport -muuttujan nimeä. Välit ja pisteet eivät voi olla osa muuttujan nimeä, joten käy selväksi, että kyseisen muuttujan nimi on $ sport; sen jälkeen PHP -tulkki löytää onnistuneesti annetun muuttujan arvon ("lentopallo") ja korvaa sen.

    Mutta joskus ei ole mahdollista merkitä muuttujan nimen loppua välilyönnillä tai pisteellä. Harkitse seuraavaa esimerkkiä:

    PHP -koodi $ sport_1 = "tahdon mukaan"; $ sport_2 = "jalka"; $ sport_3 = "koripallo"; // Väärät rakenteet $ play_1 = "Rakastan $ sport_1ballin pelaamista."; $ play_2 = "Rakastan $ sport_2ballin pelaamista."; $ play_3 = "Tykkään pelata $ sport_3ballia.";

    Tässä tapauksessa haluttua vaikutusta ei saavuteta, koska PHP -tulkki käsittelee merkkijonon $ sport_1 osana muuttujan $ sport_1ball nimeä, jolle ei ilmeisesti ole annettu mitään arvoa. Sen sijaan sinun on käytettävä seuraavaa merkintää:

    PHP -koodi // Oikea rakenne $ play_1 = "Tykkään pelata paljon ($ sport_1)."; $ play_2 = "Rakastan pelaamista ($ sport_2) paljon"; $ play_3 = "Rakastan pelaamista ($ sport_3) iso";

    Tämä merkintä toimii PHP -tulkille osoituksena siitä, että vain lausekkeen arvo, jonka muuttujan nimi on sulkeissa, on arvioitava ennen arvon korvaamista.

    Samoista syistä PHP -tulkilla on vaikeuksia korvata monimutkaisten lausekkeiden arvot muuttujanimillä, kuten viittauksilla moniulotteisten matriisien elementeille ja objektimuuttujille, jos kiharaita hakasulkeita ei käytetä. Yleinen nyrkkisääntö on, että jos avaavan kihara -aaltosulun (() jälkeen on heti $, PHP -tulkki arvioi muuttujan nimen lausekkeen arvon sulkevaan aaltosulkeeseen asti ()) ja korvaa sitten tuloksena olevan arvon merkkijono. (Jos haluat kirjaimellisen arvon näkyvän merkkijonossa ($, voit tehdä sen kirjoittamalla jokaisen merkin eteen vinoviivan, \).

    Merkit ja merkkihakemistot merkkijonoissa

    Toisin kuin jotkut muut ohjelmointikielet, PHP: llä ei ole erillistä merkkityyppiä, joka ei vastaa merkkijonotyyppiä. Yleisesti ottaen toiminnot, jotka edellyttävät merkkien todellisia parametreja muilla kielillä, on suunniteltu PHP: ssä vastaanottamaan pituus 1.

    Yksittäisten merkkien valitseminen merkkijonosta voidaan tehdä määrittämällä merkin järjestysnumero, joka alkaa nollasta ja joka on merkittävä kaarevissa sulkeissa heti merkkijonomuuttujan nimen jälkeen. Tällaiset merkit ovat käytännössä yksimerkkisiä merkkijonoja. Esimerkiksi suorittamalla seuraava koodi:

    PHP -koodi $ my_string = "Tuplattu"; for ($ index = 0; $ index< strlen($my_string); $index++) { $char = $my_string{$index}; print("$char$char"); }

    tuloksena on seuraava tulos selainikkunassa:


    Merkkien merkkien käsittely

    On selvää, että joka kerta, kun silmukka kierretään läpi, jokainen merkkijonon merkki annetaan kahdesti. Funktio strlen () palauttaa merkkijonon pituuden.

    Jousitoiminnot

    PHP tarjoaa kaksi merkkijonooperaattoria: allekirjoitettu piste (.), Tai ketjutus ja piste ja yhtäsuuri (. =), Tai ketjutus ja määritys. Harkitse seuraavaa esimerkkiä:

    PHP -koodi $ string_1 = "Tämä on osa"; $ string_2 = "merkkijonot"; // Yhdistävät merkkijonot kaiku $ string_1. "Yksinkertainen". $ String_2. "
    "; //" Tämä on osa yksinkertaista merkkijonoa "// Ketjutus ja tehtävä $ string_1. =" Yksinkertainen "; // Vastaa $ string_1 = $ string_1." yksinkertainen "; $ string_1. = $ string_2; echo $ string_1; //" Tämä on osa yksinkertaista merkkijonoa "

    Huomaa, että yllä olevassa esimerkissä useita merkkijonon todellisia parametreja ei välitetä ensimmäiselle kaiulle; vain yksi merkkijonon todellinen parametri välitetään, joka luodaan yhdistämällä neljä merkkijonoa. Ensimmäinen ja kolmas rivi määritetään muuttujien avulla, ja toinen ja neljäs rivi ovat kirjaimellinen merkkijono, joka on suljettu lainausmerkkeihin.

    Alikirjan syntaksirakenne (Heredoc)

    Yksittäis- ja kaksoislainausmerkkijonojen syntaktisten rakenteiden lisäksi PHP tarjoaa toisen tavan määrittää merkkijono, jota kutsutaan alidokumentin syntaksirakenteeksi (Heredoc). Kuten kävi ilmi, tällainen syntaktinen rakenne on erittäin kätevä tapa määrittää suuret tekstinpalat, jotka on korvattu muuttujilla, koska se säästää käyttäjän tarpeesta ilmoittaa sisäisiä lainauksia erikoismerkeillä. Tämä menetelmä on erityisen hyödyllinen, kun luot sivuja, jotka sisältävät HTML -lomakkeita.

    Alikirjan syntaktisessa rakenteessa käytetty operaatiosymboli on (<<<). За этим знаком должна непосредственно следовать метка (не заключенная в кавычки), которая обозначает начало многострочного текста. Интерпретатор PHP продолжает включать в состав значения переменной следующие строки до тех пор, пока снова не появится эта же метка в начале строки. За заключительной меткой может следовать необязательная точка с запятой, а какие-либо другие символы после метки не допускаются.

    Harkitse seuraavaa esimerkkiä:

    PHP -koodi $ merkkijono =<<

    EOT; echo $ merkkijono;

    Huomaa, että yllä esitetty EOT: n päätössana on yleensä ei saa olla sisennetty muussa tapauksessa sen katsotaan kuuluvan ylimääräiseen tekstiin. Sanaa "EOT" ei tarvitse käyttää tarrana, sillä tarralla voi olla mikä tahansa nimi, joka on PHP: n muuttujien nimeämistä koskevien tavanomaisten sääntöjen mukainen.

    Muuttuvan arvon korvaaminen tehdään täsmälleen samalla menetelmällä kuin käyttämällä lainausmerkkejä. Liitetyn asiakirjan kätevä ominaisuus on, että voit syöttää lainausmerkit tällä tavalla määritettyyn tekstiin ilman ohjausmerkkejä, eikä tämä johda merkkijonon muodostumisen ennenaikaiseen loppuunsaattamiseen. Yllä oleva esimerkki näyttää yksinkertaisimman HTML -lomakkeen:

    Heredoc -syntaksin käyttäminen lomakkeen tulostuksessa

    Jousitoiminnot

    PHP tarjoaa laajan valikoiman toimintoja merkkijonojen käsittelyyn ja muuntamiseen. Jos sinun on joskus luotava oma funktio, joka lukee ja käsittelee merkkijonoja luonteittain uuden rivin muodostamiseksi, mieti ensin, onko jollakin muulla ollut samanlaista ongelmaa aiemmin. Ja jos intuitio viittaa siihen, että tällainen todennäköisyys on olemassa, niin ehkä on olemassa sisäänrakennettu toiminto, joka ratkaisee ongelman. Lisätietoja merkkijonotoiminnoista on osoitteessa php.net/manual/en/ref.strings.php.

    Tässä osassa esitellään merkkijonojen tarkistamisen, vertailun, muokkaamisen ja näyttämisen perustoiminnot. Jotta voit todella tuntea PHP: n merkkijononkäsittelytyökalut, näyttää siltä, ​​että sinulla pitäisi olla ainakin pintapuolinen tutustuminen kaikkeen tässä osassa kuvattuun. Kuvaus säännöllisten lausekkeiden kanssa käytettäväksi tarkoitetuista toiminnoista on seuraavassa artikkelissa.

    Merkkijonojen tarkistaminen

    Mitkä ovat usein kysytyt kysymykset merkkijonoista? Ensimmäinen kysymysluettelossa on kuinka pitkä merkkijono on; toimintoa käytetään siihen vastaamiseen strlen (), jonka nimi on lyhenne merkkijonon pituudesta - merkkijonon pituudesta. Alla on esimerkki tällaisen toiminnon käytöstä:

    PHP -koodi $ en_str = "Hei maailma!"; $ rus_str = "Yksinkertainen merkkijono"; echo $ en_str. "-" .strlen ($ en_str). "merkkiä
    "; echo $ rus_str." - ".strlen ($ rus_str)." merkkiä ";

    Tämän koodin suorittaminen tuottaa seuraavan epäselvän tuloksen:


    Strlen () -funktio

    Kuten näette, "Hei maailma!" tulos on oikea, mutta merkkijonolle "Yksinkertainen merkkijono" 27 merkin tulos on virheellinen. Mitä tässä on? Tosiasia on, että funktio strlen () laskee tavuja, ei merkkejä. Ensimmäisessä tapauksessa kaikki merkkijonon merkit ovat englantilaisia, ts. ASCII -koodaus ja 1 tavu. Toisessa tapauksessa merkkijono sisältää venäläisiä merkkejä, jotka on koodattu 2 tavuun (UTF-8). Välttääksesi tulevia ongelmia merkkijonofunktioiden kanssa, PHP: n tulisi käyttää toimintoja monitavuisille koodauksille, jotka alkavat etuliitteellä mb_. Tämä tarkoittaa, että edellisessä esimerkissä sinun on korvattava funktio strlen () merkillä mb_strlen () ja määrittele nimenomaisesti koodaus:

    PHP -koodi ... echo $ rus_str. "-" .mb_strlen ($ rus_str, "UTF8"). "merkit";

    Hae merkkejä ja alimerkkijonoja

    Seuraava kysymys merkkijonoista on mitä ne sisältävät. Esimerkiksi toiminto strpos () [mb_strpos ()] voit etsiä jonon tietyn merkin sijainnin numeron, jos sellainen on:

    PHP -koodi $ en_str = "Hei maailma!"; echo "Merkki" l ":" .strpos ($ en_str, "l"); // 2

    Strpos () -toiminnon käyttöön liittyvät tilanteet ovat tapauksia, joissa PHP: n tyypin herkkyys voi tulla ongelmien lähteeksi. Jos vastaavuutta ei löydy, funktio palauttaa väärän arvon, ja jos haluttu merkki vastaa merkkijonon ensimmäistä merkkiä, funktio palauttaa 0 (koska merkkijonon sijainnit alkavat 0: sta, ei 1: stä). Molemmat arvot ovat vääriä, kun niitä käytetään boolean -tilan testaamiseen. Yksi tapa erottaa nämä arvot toisistaan ​​on käyttää identiteettien vertailuoperaattoria (=== -operaattoria, joka on otettu käyttöön PHP4: n jälkeen), joka palauttaa todellisen arvon vain, jos sen operandit ovat samat ja samaa tyyppiä. Identiteettivertailua voidaan käyttää testaamaan, onko palautusarvo 0 (tai epätosi) vaarantamatta, että palautusarvo sekoitetaan muihin arvoihin, jotka saattavat muuttua samoiksi heiton jälkeen.

    Strpos () -toimintoa voidaan käyttää myös alijonon etsimiseen yksittäisen merkin sijasta. Tätä varten riittää, että määrität halutuksi monimerkkisen merkkijonon, ei yksimerkkisen merkkijonon. Lisäksi tämän toiminnon kutsussa voit määrittää ylimääräisen kokonaislukuparametrin, joka ilmaisee haun alkamisen sijainnin.

    Se voi myös etsiä taaksepäin, merkkijonon lopusta alkuun. Käytä tätä toimintoa strrpos () [mb_strrpos]. (Huomaa, että tämän funktion nimessä on lisäkirjain r, joka on lyhenne käänteisestä.) Tämä funktio ottaa parametreiksi haettavan merkkijonon ja etsittävän yksimerkkisen merkkijonon ja palauttaa sitten ensimmäisen parametrin toinen parametri. (Toisin kuin strpos () -funktion strpos () -funktio, hakumerkkijonon tulee koostua vain yhdestä merkistä.) Kun olet käyttänyt tätä funktiota samoilla parametreilla kuin edellisessä esimerkissä, toinen sijainti löytyy:

    PHP -koodi $ en_str = "Hei maailma!"; echo "Merkki" l ":" .strrpos ($ en_str, "l"); // 9 lähtien haku suoritetaan rivin lopusta

    Vertailu

    Vastaako tämä rivi tätä linjaa? Näyttää siltä, ​​että sinun on usein etsittävä vastaus tähän kysymykseen myös koodistasi, varsinkin kun sinun on käsiteltävä loppukäyttäjän syötteet.

    Yksinkertaisin tapa löytää vastaus kysymykseen siitä, ovatko merkkijonot samat, on käyttää yksinkertaista tasa -arvon vertailutoimintoa (==), joka tarkistaa sekä numerot että merkkijonot. Käyttämällä == -operaattoria kahta merkkijonoa pidetään samoina, jos ne sisältävät täsmälleen samat merkkijonot. Tämä ei tarkista, täyttyykö identtisten merkkijonojen tiukempi määritelmä, esimerkiksi edellytys, että nämä merkkijonot tallennetaan muistiin samaan osoitteeseen, mutta kirjainten tapaus otetaan huomioon (toisin sanoen se otetaan huomioon onko vertailtavat kirjaimet isoja vai pieniä) ...

    Tulokset kahden merkkijonon vertaamisesta käyttämällä == -operaattoria (tai vastaavaa< и >) voidaan luottaa vain, jos molemmat operandit ovat merkkijonoja ja tiedetään, ettei tyyppimuunnosta ole suoritettu. Ja alla kuvatun strcmp () -toiminnon avulla tehdyn tarkistuksen tulokset voidaan aina luottaa.

    Tärkein merkkijonojen vertailutoiminto, joka tekee suurimman osan työstä, on strcmp ()... Tämä funktio ottaa kaksi merkkijonoa parametreiksi ja vertaa tavua tavua, kunnes se löytää eron. Funktio palauttaa negatiivisen luvun, jos ensimmäinen rivi on pienempi kuin toinen, ja positiivisen luvun, jos toinen rivi on pienempi kuin ensimmäinen. Jos merkkijonot ovat identtiset, strcmp () -funktio palauttaa nollan.

    Toiminto strcasecmp () toimii samalla tavalla, paitsi että tasa-arvon vertailussa ei ole merkitystä. Esimerkiksi soittamalla strcasecmp ("hei!", "HEI!") Pitäisi palauttaa nolla.

    Hae

    Juuri kuvatut vertailutoiminnot kertovat, onko yksi merkkijono yhtä suuri kuin toinen merkkijono. Ja selvittääksesi, onko yksi merkkijono toisessa, käytä yllä kuvattua strpos () - tai strstr () - funktiota ja vastaavia toimintoja.

    Toiminto strstr () [mb_strstr ()] ottaa parametreiksi haettavan merkkijonon ja haettavan merkkijonon (tässä järjestyksessä). Jos tämä onnistuu, tämä funktio palauttaa merkkijonon osan, joka alkaa hakumerkkijonon ensimmäisestä esiintymisestä (ja sisältää hakumerkkijonon). Jos tällaista merkkijonoa ei löydy, funktio palauttaa väärän arvon. Seuraava koodinpätkä sisältää esimerkkejä tämän toiminnon käytöstä:

    PHP -koodi $ str = "Hei maailma!"; $ find_str = "maailma"; kaiku "Substring" $ find_str"alkuperäisellä rivillä:" .strstr ($ str, $ find_str);

    Aivan kuten strcmp () -funktiolla, myös strstr () -funktiolla on kirjainkokoa erottamaton versio stristr () [mb_stristr] (tässä nimessä oleva kirjain i on lyhenne merkityksettömästä). Stristr () -funktio on kaikilta osin identtinen strstr () -funktion kanssa, paitsi että vertailu käsittelee pieniä kirjaimia isoina vastineina.

    Haetaan alimerkkijonoa

    Monet PHP -merkkijonotoiminnot suorittavat leikkaus- ja liitäntätoimintoja merkkijonoille. Leikkaus on valinta rivin osasta ja lisäys on rivin valikoiva muokkaaminen. On pidettävä mielessä, että jopa lisätoiminnot (useimmiten) eivät muuta syöttöparametrina annettua merkkijonoa. Yleensä tällaiset toiminnot palauttavat muokatun kopion ja jättävät alkuperäisen parametrin muuttamatta.

    Yksinkertaisin tapa valita merkkijonon osa on käyttää toimintoa substr () [mb_substr ()], joka palauttaa uuden merkkijonon, joka sisältää osan vanhan merkkijonon merkkisekvenssistä. Substr () -funktio ottaa parametreiksi merkkijonon (josta alimerkkijono haetaan), kokonaisluvun (paikka, josta vaadittu alimerkkijono alkaa) ja valinnaisen kokonaisluvun kolmannen parametrin, joka määrittää vaaditun alimerkkijonon pituuden. Jos kolmatta parametria ei ole määritetty, alimerkkijonon oletetaan jatkuvan merkkijonon loppuun. (Muista, että tätä toimintoa käytettäessä merkkijonon paikkojen numerointi alkaa nollasta, ei yhdestä, kuten kaikissa PHP -funktioiden parametreissa, jotka osoittavat merkkijonojen numeerisia paikkoja.) Esimerkiksi:

    PHP -koodi $ str = "Hei maailma!"; echo mb_substr ($ str, 7, 3, "UTF8"); // "rauha"

    Sekä lähtöparametri että pituusparametri voivat olla negatiivisia, mutta molemmissa tapauksissa negatiivisella arvolla on eri merkitykset. Jos aloituskohta on negatiivinen, alijonon aloitusmerkin sijainti määritetään laskemalla merkkijonon lopusta, ei laskemalla ylös merkkijonon alusta. (Aloituskohta -1 osoittaa, että laskenta alkaa viimeisestä merkistä, arvo -2 osoittaa toiseksi viimeistä merkkiä jne.)

    Tämän perusteella voidaan olettaa, että negatiivinen pituusarvo merkitsee myös sitä, että alimerkkijono on määritettävä laskemalla takaisin alkumerkistä, ei laskemalla ylös, mutta näin ei ole. Väite, että aloituskohdassa oleva merkki on palautetun merkkijonon ensimmäinen merkki (eikä viimeinen), on aina totta. Negatiivinen pituusparametri tarkoittaa sen sijaan, että lopetusmerkki määritetään laskemalla lopusta, ei laskemalla ylös lähtöasennosta.

    Alla on esimerkkejä positiivisista ja negatiivisista parametreista:

    PHP -koodi $ str = "Hei maailma!"; echo mb_substr ($ str, 7, 3, "UTF8"). "
    "; //" world "echo mb_substr ($ str, -4, 3," UTF8 ")."
    "; //" world "echo mb_substr ($ str, 0, -5," UTF8 ")."
    "; //" Hei "

    Poista välilehdet ja kielekkeet merkkijonoista

    Muodollisesta näkökulmasta chop (), ltrim () ja trim () -funktiot ovat alijonojen kanssa työskenteleviä toimintoja (jotka muistuttavat monella tapaa muita toimintoja), mutta itse asiassa näiden toimintojen tarkoituksena on poistaa tarpeettomat merkit merkkijonoista . Toiminnot pilkkoa (), ltrim () ja trimmata () Vastaavasti poista välilyönnit lopussa, alussa, alussa ja lopussa merkkijonosta, joka on määritetty ainoaksi merkkijonoparametriksi.

    Välilyöntien lisäksi nämä toiminnot poistavat muut välilyönnit, kuten pakosarjoilla merkityt \ n, \ r, \ t ja \ 0 (rivin lopussa olevat merkit, välilehdet ja tyhjät merkit, joita käytetään osoittamaan loppua -C-ohjelmissa).

    PHP: ssä on yleinen käytäntö käyttää välilyönnin poistamista funktiolla rivin lopussa chop (), mutta identtistä funktiota, jolla on ilmeikkäämpi nimi, voidaan myös kutsua. rtrim ()... Lopuksi on huomattava, että chop () -funktio, vaikka sen nimi, joka tarkoittaa "chop", kuulostaa erittäin uhkaavalta, ei vahingoita alkuperäistä $ originalia, joka säilyttää edellisen arvon.

    Jousien vaihto

    Kaikki yllä selostetut merkkijonojen käsittelytoiminnot edellyttävät osan syöttöparametrin valitsemista eivätkä täysin uuden merkkijonon muodostamista. Tässä osassa käsitellään str_replace () - ja substr_replace () -toimintoja tätä tarkoitusta varten.

    Toiminto str_replace () voit korvata tietyn alimerkkijonon kaikki esiintymät toisella merkkijonolla. Tämä toiminto edellyttää kolmea parametria: etsittävä merkkijono, alijono, joka korvataan sen löytämisen jälkeen, ja merkkijono, jota käytetään korvaamaan. Harkitse seuraavaa esimerkkiä:

    PHP -koodi $ str = "Hei maailma!"; echo str_replace ("maailma", "planeetta", $ str); // "Hei planeetta!"

    Korvaus suoritetaan kaikille hakumerkkijonosta löydetyn alimerkkijonon esiintymille. Jos yllä olevaa esimerkkiä käytetään korvaamaan kaupungin nimi vanhentuneessa tietosanakirjassa, koko tietosanakirjan tekstin muuntamisen jälkeen yhdeksi PHP -merkkijonoksi koko teksti voidaan korvata yhdellä kertaa.

    Kuten yllä on esitetty, str_replace () -funktio valitsee alkuperäisen merkkijonon osan, joka korvataan etsimällä halutun alimerkkijonon esiintymisiä alkuperäisestä merkkijonosta; sitä vastoin toiminto substr_replace () valitsee korvattavan osan absoluuttisella asennollaan. Tämä toiminto sisältää enintään neljä parametria: vaihdettava merkkijono, korvaavana käytettävä merkkijono, korvauksen aloituskohta ja (valinnaisena parametrina) vaihdettavan merkkijonon osan pituus. Harkitse seuraavaa esimerkkiä:

    PHP -koodi echo substr_replace ("ABCDEFG", "-", 2, 3); // "AB-FG"

    Rivin CDE -osa korvataan yhdellä merkillä. Huomaa, että tässä tapauksessa alimerkkijono sai korvata eri pituisella merkkijonolla. Jos pituusparametri jätetään pois, oletetaan, että koko merkkijonon osa aloituskohdan jälkeen on vaihdettava.

    Funktio substr_replace () hyväksyy myös negatiiviset parametrit osoittamaan lähtöaseman ja pituuden, joita käsitellään samalla tavalla kuin yllä kuvatussa substr () -funktiossa. On tärkeää muistaa, että str_replace- ja substr_replace -toiminnoilla suoritettujen toimintojen seurauksena alkuperäinen merkkijono pysyy muuttumattomana.

    Lopuksi on olemassa useita vähemmän käytettyjä toimintoja, jotka muodostavat uusia rivejä vanhoista. Toiminto strrev () yksinkertaisesti palauttaa uuden merkkijonon, jossa on merkkijonon merkit päinvastaisessa järjestyksessä. Toiminto str_repeat () ottaa yhden merkkijonon ja yhden kokonaislukuparametrin ja palauttaa merkkijonon, joka sisältää määritetyn määrän kopioita merkkijonoparametrista:

    PHP -koodi echo str_repeat ("ABC", 3); // ABCABCABC

    Kirjainkoon muuntotoiminnot

    Näiden toimintojen avulla pienet kirjaimet voidaan muuntaa isoiksi kirjaimiksi ja päinvastoin. Toiminto strtolower () [mb_strtolower ()] palauttaa merkkijonon, jossa kaikki kirjaimet on muutettu pieniksi. Ei ole väliä, sisälsikö alkuperäinen merkkijono vain isoja kirjaimia vai isoja ja pieniä kirjaimia. Esimerkiksi:

    PHP -koodi $ str = "Hei maailma!"; echo mb_strtolower ($ str, "UTF8"); // "Hei maailma!"

    Jos olet kokenut paljon lomakkeiden validointia aiemmin, olet ehkä huomannut, että strtolower () -toiminto on erittäin kätevä työkalu niiden käyttäjien sähköpostiosoitteiden käsittelyyn, jotka eivät vieläkään tiedä, että nämä sähköpostiosoitteet eivät erota kirjaimia. Muut tämän luokan ominaisuudet ovat yhtä hyödyllisiä.

    Toiminto strtoupper () [mb_strtoupper ()] palauttaa merkkijonon, jossa kaikki kirjaimet muunnetaan isoiksi. Esimerkki on seuraava koodi:

    PHP -koodi $ str = "Hei maailma!"; echo mb_strtoupper ($ str, "UTF8"); // "HEI MAAILMA!"

    Toiminto ucfirst () muuntaa vain merkkijonon ensimmäisen kirjaimen isoksi funktioksi ucwords () isoa kirjainta jokaisen sanan merkkijonossa. Ucwordsilla () tai ucfirst () ei ole samanlaista toimintoa monitavuisella koodauksella, joten ne eivät ole yhteensopivia kyrillistä kieltä sisältävien merkkijonojen kanssa.

    Ohjaa merkkien lisäystoimintoja

    Yksi PHP -kielen eduista on, että sitä voidaan käyttää tietojen vaihtamiseen lähes minkä tahansa järjestelmän kanssa. Tällaisia ​​keinoja pidetään yleensä eräänlaisena "ohjelmistoliimana". Tässä roolissa PHP: tä käytetään kommunikoimaan tietokantapalvelimien, LDAP -palvelimien kanssa, tiedonsiirto pistorasioiden kautta ja itse HTTP -yhteys. Usein tämä vuorovaikutus saavutetaan luomalla ensin viestimerkkijono (kuten tietokantakysely) ja välittämällä sitten viesti vastaanottajaohjelmalle. Ohjelmat kuitenkin antavat usein erityistä merkitystä joillekin hahmoille, ja siksi ne on muutettava ohjaushahmoiksi. Tämä tarkoittaa, että vastaanottava ohjelma ohjeistaa käsittelemään tällaisia ​​merkkejä merkkijonon kirjaimellisena osana eikä olemaan erikoiskohtelu.

    Monet käyttäjät voivat käsitellä tätä ongelmaa sallimalla niin kutsutun "lainausmerkkitilan" käytön, joka varmistaa, että lainausmerkit muunnetaan ohjausmerkeiksi ennen merkkijonojen lisäämistä tietokantoihin. Mutta jos tämä käsittelytapa ei ole mahdollinen tai toivottava, sinun on käytettävä vanhoja hyviä keinoja lisätä takaviivat ja poistaa ne sitten.

    Toiminto lisäviivat () muuntaa yksittäis- ja kaksoislainausmerkit, käänteisviivat ja tyhjät merkit paetaksista peräkkäisten kauttaviivojen avulla, koska nämä ovat yleensä merkkejä, jotka on yleensä muunnettava pakosarjoiksi tietokantakyselyitä valmisteltaessa:

    PHP -koodi - tiivistelmäesimerkki $ escapedstring = lisäviivat ("Lainausmerkkijono."); $ query = "INSERT INTO test (quote) arvot (" $ escapedstring ")"; $ result = mysqli_query ($ link, $ query) tai kuole (mysql_error ());

    Tämän koodin suorittaminen estää SQL -käskyn tulkitsemisen väärin käsittelemällä merkkijonon päätepisteenä juuri ennen k -kirjainta. Ja näiden tietojen hakemisen jälkeen sinun on käytettävä toimintoa nauhat () poistaa vinoviivat.

    Toiminto lainaus () muuntaa laajemman merkkijoukon paeta sekvenssejä. Kaikilla näillä merkeillä on yleensä erityinen merkitys Unix -komentorivillä: ".", "" "," + "," * ","? "," [","] "," ^ "," ("," $ "ja") ". Suorita esimerkiksi seuraava koodi:

    PHP -koodi $ str = "Nämä merkit ($, *, ^) on muunnettava."; echo quotemeta ($ str);

    antaa seuraavanlaisen rivin:


    Lainausmerkin () käyttäminen

    Toiminnot ulostulolle ulkoiselle laitteelle ja merkkijonolle

    Pääasialliset tulostuksessa käytetyt rakenteet ovat print ja echo, joista keskusteltiin yksityiskohtaisemmin aiemmin. Vakio tapa lähettää muuttujien arvot ulkoiselle laitteelle on liittää näiden muuttujien nimet kaksoislainausmerkkijonoon (jota tulkki käsittelee muuttujien arvojen korvaamiseksi) ja välittää sitten tämän merkkijonon tulostus tai kaikurakenne.

    Jos tarvitset vielä tarkemmin muotoiltua lähtöä, voit käyttää PHP -kielen tarjoamia toimintoja printf () ja sprintf ()... Nämä kaksi toimintoa käyttävät samoja parametreja: erikoismuotoinen merkkijono, jota seuraa mielivaltainen määrä muita parametreja, jotka korvataan tarvittaessa muotoilujonolla tuloksen tuottamiseksi. Ainoa ero printf (): n ja sprintf (): n välillä on, että printf () lähettää tuloksena olevan merkkijonon suoraan ulkoiselle tulostuslaitteelle, kun taas sprintf () palauttaa tuloksena olevan merkkijonon sen suorituksen seurauksena.

    Sana kokeneille C -ohjelmoijille. Tämä sprintf () -versio eroaa hieman C -versiosta siinä, että sprintf (): n ei tarvitse antaa hajautettua merkkijonoa kirjoittamista varten, koska PHP -tulkki varaa muistin tuloksena olevalle merkkijonolle käyttäjä.

    Suurin ongelma näiden toimintojen käytössä on muotoilumerkkijonon määrittäminen oikein. Jokainen muoto -merkkijonon merkki näkyy suoraan tuloksena olevassa arvossa, lukuun ottamatta% merkkiä ja merkkejä, jotka seuraavat niitä välittömästi. % -Merkki merkitsee muunnosmäärityksen alkua, joka osoittaa, kuinka ulkoinen laite voi lähettää yhden muotoilumerkkijonon jälkeisistä parametreista.

    % -Merkin jälkeen on viisi muutosspesifikaation muodostavaa elementtiä, jotka on kuvattu alla, joista osa on valinnaisia: pehmuste, kohdistus, vähimmäisleveys, tarkkuus ja tyyppi:

      Valinnaista miinusmerkkiä (-) käytetään osoittamaan, onko numero negatiivinen.

      Ainoa (valinnainen) täyttömerkki on joko 0 tai välilyönti (). Tätä symbolia käytetään täyttämään kaikki tilat, jotka muuten jätettäisiin tyhjiksi, mutta jotka käyttäjä vaati jakamista (asettamalla vähimmäisleveysparametrin liian korkeaksi). Jos tätä täyttömerkkiä ei ole määritetty, oletusasetus on täyte välilyönneillä.

      Valinnainen kohdistusmerkki (-) osoittaa, onko näytettävä arvo vasemmalla vai oikealla. Jos tämä merkki on määritetty, arvo tasataan vasemmalle ja jos ei, se on oikealla.

      Valinnainen numeerinen vähimmäisleveys, joka määrittää näytetyn arvon vähimmäismäärän paikkoja. (Jos arvojen näyttämiseen tarvitaan enemmän merkkikohtia kuin määritetty, näytetty arvo on näiden rajojen ulkopuolella.)

      Valinnainen tarkkuusmäärittäjä, muotoiltu pisteeksi (.), Jota seuraa numero. Määrittäjä ilmaisee, millä tarkkuudella kaksoistarkka liukuluku tulee antaa, millä tarkkuudella mitattuna desimaalipisteiden määrä pisteen jälkeen. (Tämän eritelmän soveltamisella ei ole vaikutusta muiden kuin kaksinkertaisen tarkkuuden liukulukuisten tietojen tuottamiseen.)

      Yksittäinen merkki, joka osoittaa, kuinka arvotyyppiä tulisi tulkita. F -symboli osoittaa, että arvo tulee tulostaa kaksinkertaisena liukulukuarvona, s -symboli osoittaa, että arvo tulee antaa merkkijonona, ja muut mahdolliset merkit (b, c, d, o, x, X) osoittavat, että arvoa on tulkittava kokonaislukuksi ja tulostettavaksi eri muodoissa. Nämä muodot ovat b binäärimuodossa tapahtuvaa tulostusta varten, c sopivan ASCII -arvon merkin antamista varten, o oktaalimuodossa, x heksadesimaalimuotoista tulostusta (pienillä kirjaimilla) ja X - heksadesimaalilukujen näyttämistä varten. isot kirjaimet numeroiden aakkosjärjestyksessä.

    Alla on esimerkki saman kaksinkertaisen tarkan liukuluvun tulostamisesta useilla eri tavoilla:

    PHP -koodi
    % 10f 
    % -10f
    % 2.2f ", $ value, $ value, $ value, $ value);?>

    Se johtaa seuraaviin tuloksiin:


    Muotoiltujen merkkijonojen käyttäminen printf () -toiminnon kanssa

    Tässä esimerkissä käytetty rakenne

    ...
    on HTML -kuvaaja, joka kertoo selaimelle, että tämän kuvaajan sisältämä lohko on muotoiltava kirjaimellisesti, pakkaamatta useita välilyöntejä yhdeksi jne.

    Toiminnot HTML -koodin käsittelyyn

    PHP tarjoaa erilaisia ​​toimintoja verkkokohtaista dataa sisältävien merkkijonojen käsittelyyn. Yleiskatsaus näistä ominaisuuksista on esitetty alla olevassa taulukossa:

    Merkkijono -toiminnot HTML -koodin käsittelyyn
    Toiminto Kuvaus
    htmlspecialchars ()

    Ottaa merkkijonon parametriksi ja palauttaa merkkijonon, jossa neljä merkkiä, joilla on erityinen merkitys HTML: ssä, on korvattu erikoismerkkijonoilla. Jokainen näistä merkeistä korvataan vastaavalla HTML -komponentilla, joka korvataan alkuperäisellä merkillä uudelleen sen jälkeen, kun sivun teksti on laajennettu selaimessa. & -Merkki korvataan & -merkillä (lainausmerkki) - merkillä< - < а символ > - >

    htmlentities ()

    Suorittaa täydellisemmän käsittelyn kuin htmlspecialchars (), ts. korvaa HTML -komponentilla paitsi erikoismerkit myös kaikki merkit, jotka voidaan korvata HTML -komponentilla

    get_html_translation_table ()

    Hyväksyy yhden kahdesta erikoisvakiosta (HTML_SPECIAL_CHARS tai HTML_ENTITIES) ja palauttaa htmlspecialchars (): n tai htmlentities (): n käyttämän konversiotaulukon. Muuntotaulukko on taulukko, jonka avaimet ovat merkkijonoja ja vastaavat arvot ovat merkkijonoja, jotka on tarkoitettu korvaamaan ne.

    nl2br ()

    Hyväksyy merkkijonon parametriksi ja palauttaa saman merkkijonon, mutta kuvaajat
    lisätään kaikkien rivin lopussa olevien merkkien (\ n, \ r tai \ r \ n) eteen. Tarve käyttää tätä toimintoa syntyy esimerkiksi, jos haluat tarjota saman selaimen näyttämän tekstin, kuten alkuperäisessä tekstissä.

    strip_tags ()

    Hyväksyy merkkijonon parametriksi ja tekee kaikkensa muodostaakseen merkkijonon, joka on poistettu kaikista HTML- ja PHP -kuvauksista

    Tietojen hajauttaminen MD5 -algoritmin avulla

    MD5 -algoritmi on merkkijononkäsittelyalgoritmi, jota käytetään generoimaan ns. tiivistelmä tai digitaalinen allekirjoitus mille tahansa parametrina välitetylle merkkijonolle. Syöttöjonon perusteella algoritmi muodostaa vakion pituisen merkkijonon, joka koostuu 32 heksadesimaaliluvusta (0-9, a-f). MD5 -algoritmin tuottamilla tuloksilla on erittäin hyödyllisiä ominaisuuksia, jotka on kuvattu alla:

      MD5 -algoritmi tuottaa aina saman tulostusmerkkijonon, kun sama syöttöjono vastaanotetaan, joten MD5 -salausta ei voida käyttää salasanojen tallentamiseen.

      MD5 -algoritmin soveltamisen tuloksilla on kiinteä pituus ja ne jakautuvat erittäin tasaisesti koko mahdollisten arvojen alueelle.

      Syöttöjono voidaan muodostaa, joka vastaa MD5 -algoritmin tiettyä tulostusmerkkijonoa, tai luoda kaksi syöttöjonoa, joiden käsittely johtaisi saman tulostusjonon vastaanottamiseen, mutta vain tietyissä olosuhteissa.

    MD5 -algoritmin PHP -toteutus on saatavana funktiona md5 () joka ottaa merkkijonon syötteeksi ja tuottaa tulokset 32-merkkisenä tiivistelmänä. Esimerkiksi suorittamalla seuraava koodi:

    PHP -koodi $ str = "Hei maailma!"; echo "Hashcode merkkijonolle" $ str ": ".md5 ($ str)."
    "; $ str =" Hei, maailma! "; echo" Merkkijonon "$ str" hajautuskoodi: ".md5 ($ str)."
    "; $ str =" Hei maailma "; echo" Hash -koodi merkkijonolle "$ str": ".md5 ($ str)."
    ";

    tuloksena seuraavat tulokset selainikkunassa:

    Merkkijonojen tiivistäminen md5 () -funktiolla

    Tietenkin tässä tapauksessa kaikki tulolinjat ovat hyvin samankaltaisia ​​toistensa kanssa, mutta lähtölinjoilla ei ole näkyvää samankaltaisuutta. Lisäksi mahdollisten lähtöarvojen vaihteluväli on erittäin suuri (16 32), joten todennäköisyys saada samat tulokset kahden eri rivin käsittelystä (mikä tuottaisi saman MD5 -arvon) on erittäin pieni.

    Edellä olevien MD5 -algoritmin ominaisuuksien vuoksi sen avulla saatuja arvoja voidaan käyttää monenlaisten ongelmien ratkaisemiseen, mukaan lukien alla kuvatut:

    Viestin tai tiedoston tarkistussumman laskeminen

    Voit tarkistaa, onko viesti vioittunut lähetyksen aikana, lähettämällä viestin mukana MD5 -tiivistelmän ja muodostamalla viestin uudelleen muodostamalla MD5 -tiivistelmän. Jos tiivistelmän kaksi versiota eivät täsmää, se tarkoittaa, että lähetyksen aikana tehtiin vääristymiä.

    Hallitse, pysyykö tiedoston sisältö muuttumattomana

    Tämä tehtävä on samanlainen kuin tarkistussumman laskeminen. MD5-algoritmia käytetään usein tämän toiminnon suorittamiseen hakukoneissa, kun on tarpeen tarkistaa säännöllisesti, onko verkkosivu muuttunut, ja indeksoida tarvittaessa uudelleen. Tosiasia on, että lisätarkistusta varten on paljon helpompaa järjestää MD5 -tiivistelmän tallennus kuin koko lähdetiedosto.

    Useiden rivien tai tiedostojen jakaminen osajoukoiksi

    Voit ratkaista merkkijonojen jakamisen N satunnaisesti valittuun osajoukkoon jakamalla ongelman laskemalla kunkin merkkijonon MD5 -tiivistelmän, ottamalla muutamat ensimmäiset heksadesimaalimerkit, muuntamalla ne numeroksi ja saamalla loput jakamalla tämä luku modulo ja käytä tätä jäännöstä osajoukon numerona, johon tämä merkkijono tulisi kirjoittaa.

    Toiminnon md5 () lisäksi PHP tarjoaa toiminnon md5_file (), joka ottaa tiedostonimen parametriksi ja palauttaa MD5 -tiivistearvon, joka vastaa tiedoston sisältöä.

    Toiminnot merkkijonojen samankaltaisuuden arvioimiseksi

    Käytännössä on usein tarpeen määrittää, kuinka kaksi merkkijonoa ovat samanlaisia. On selvää, että merkkijonojen samankaltaisuuden arvioinnin tulokset riippuvat siitä, mitä merkkijonojen samankaltaisuudella tarkoitetaan.

    Jos oikeinkirjoituksen samankaltaisuutta pidetään kriteerinä samankaltaisuuden arvioinnissa, voit hakea Levenshtein -mittari... Toiminto levenshtein () ottaa kaksi merkkijonoa parametreiksi ja palauttaa tiedot merkkien lisäämistä, poistamista ja korvaamista koskevien merkkien vähimmäismäärästä merkkijonon muuntamiseksi toiseksi. Tarkastellaan esimerkkiä:

    PHP -koodi echo levenshtein ("Tim", "Aika"); // 1 echo levenshtein ("poika", "chefboyardee"); // 9 echo levenshtein ("ei koskaan", "älykäs"); // 2

    Jos foneettista samankaltaisuutta pidetään samankaltaisuuskriteerinä, voit arvioida samankaltaisuutta käyttämällä funktioita soundex () ja metafoni ()... Molemmat toiminnot ottavat kyseisen merkkijonon syötteeksi ja palauttavat avainsanan merkkijonon, joka ilmaisee annetun sanan ääntämisluokan (jota pidetään englanninkielisenä sanana). Jos kaksi syöttöjonon sisällönä käytettyä sanaa vastaa täsmälleen samaa lähtöarvoa, ne lausutaan todennäköisesti samalla tavalla.

    Jäsennys- ja tokenisointitoiminnot

    Joskus on tarpeen varmistaa, että ohjelma jakaa rivit osiin sen oman määritelmänsä mukaisesti, mitä komponenttina tulisi pitää. Prosessia pitkän merkkijonon jakamiseksi osiksi kutsutaan tokenisointi... Tällainen prosessi on osa yleistä menettelyä minkä tahansa tietokoneohjelman, myös PHP -ohjelman, tulkitsemiseksi tai kääntämiseksi. PHP tarjoaa tähän tarkoitukseen erityisen toiminnon - strtok ().

    Strtok () -funktiolla on kaksi parametria: merkkijono, joka jaetaan rahakkeiksi, ja merkkijono, joka sisältää kaikki erotinmerkit (merkit, joita käsitellään merkkien välisinä rajoina). Ensimmäinen puhelu käyttää molempia parametreja ja funktio palauttaa merkkijonon arvon, joka edustaa ensimmäistä tunnusta. Sama puhelu soitetaan seuraavien tunnusten noutamiseen, mutta parametri, jossa on alkuperäinen merkkijono, suljetaan pois. Funktio muistaa ensimmäisessä parametrissa annetun merkkijonon osoitteen ja käyttää sitä nykyisenä merkkijonona. Lisäksi tämä toiminto muistaa, missä käsittely lopetettiin edellisen puhelun aikana. Harkitse seuraavaa esimerkkiä:

    PHP -koodi $ token = strtok ("avoimen lähdekoodin HTML-upotettu palvelinpuolen web-komentosarja", ""); while ($ token) (echo $ token. "
    "; $ token = strtok (" ");)

    mikä johtaa seuraavaan tulostukseen selainikkunassa:


    Strtok () -toiminnon käyttäminen

    Alkuperäisen rivin halkaisu tehdään siellä, missä jokainen väli on.

    Strtok () -funktio rakentaa tunnuksia yksi kerrallaan. Voit myös käyttää toimintoa räjähtää (), joka suorittaa suunnilleen samat toiminnot, paitsi että se tallentaa kaikki tunnukset kerralla yhteen taulukkoon. Kun olet vastaanottanut rahakkeet taulukossa, voit suorittaa niille mitä tahansa toimintoja, mukaan lukien lajittelu.

    Räjähdys () -funktiolla on kaksi parametria: erotinmerkki ja merkkijono, joka merkitään. Tämä funktio palauttaa taulukon, jonka jokainen elementti on osajono jaettavan merkkijonon erotin -esiintymien välillä. Harkitse seuraavaa esimerkkiä:

    PHP -koodi $ Explode_result = räjähtää ("JA", "yksi JA kaksi JA kolme");

    tuloksena on taulukko $ Explode_result, joka sisältää kolme elementtiä, joista jokainen on merkkijono: "yksi", "kaksi" ja "kolme". Tässä esimerkissä taulukon sisältämissä merkkijonoissa ei ole isoja kirjaimia, koska AND -erotin ei ole tuloksessa.

    Räjähdys () -funktiossa käytetty erotettu merkkijono on hyvin erilainen kuin strtok () -funktiossa käytetty erotettu merkkijono. Erotin on täydellinen merkkijono, joten kaikki merkkijonon merkit on löydettävä alkuperäisestä merkkijonosta samassa järjestyksessä kuin erotin, jotta sitä voidaan pitää erottajana.

    Toisaalta strtok () -funktiossa erotettu merkkijono määrittelee monia yksittäisiä merkkejä, joista jokaista käsitellään erottimena. Tämä tarkoittaa, että räjähdys () -toiminto on valikoivampi, mutta alttiimpi toimintahäiriöille. Erityisesti, jos edes yksi välilyönti tai rivin lopussa oleva merkki, joka on osa erotinta, puuttuu vahingossa pitkästä rivistä, tämän toiminnon koko toiminta saattaa häiriintyä.

    Räjähdys () -funktiolla on siihen nähden käänteinen funktio, implode () joka sisältää kaksi parametria: yhdysmerkkijono (samanlainen kuin räjähdys () -funktion erotinjono) ja joukko merkkijonoja, kuten räjähdys () -funktion palauttama. Implode () -funktio palauttaa merkkijonon, joka on luotu lisäämällä yhdistävä merkkijono kaikkien peräkkäisten merkkijonoelementtien väliin.

    Toiminnot Säännölliset lausekkeet 1 2 3 4 5 6 7 8 9 10

    Merkkijonot ovat erittäin tärkeä tietotyyppi, jonka kanssa sinun on jatkuvasti työskenneltävä ratkaistaksesi web -kehitysongelmia. Tässä artikkelissa kuvataan 10 erittäin hyödyllistä temppua, jotka helpottavat PHP -kehittäjäsi elämää.

    Poista HTML -tunnisteet automaattisesti merkkijonosta

    Kun käytät käyttäjän täyttämiä lomakkeita, sinun on joskus poistettava kaikki tarpeettomat tunnisteet. Tämä tehtävä voidaan helposti ratkaista käyttämällä strip_tags () -funktiota:

    $ text = strip_tags ($ input, "");

    Hae teksti $ alun ja $ end väliltä

    Tällaisen toiminnon pitäisi olla kehittäjän arsenaalissa: se vastaanottaa alkuperäisen merkkijonon, alun ja lopun ja palauttaa tekstin, joka on $ alun ja $ lopun välillä.

    Toiminto GetBetween ($ content, $ start, $ end) ($ r = räjähtää ($ start, $ content); if (isset ($ r)) ($ r = räjähtää ($ end, $ r); return $ r; ) palauta "";)

    URL -osoitteen muuntaminen hyperlinkiksi

    Jos laitat URL -osoitteen WordPress -blogin kommenttilomakkeeseen, se muuttuu automaattisesti hyperlinkiksi. Jos haluat ottaa samat toiminnot käyttöön verkkosivustollasi tai verkkosovelluksessasi, voit käyttää seuraavaa koodia:

    $ url = "Jean-Baptiste Jung (http://www.webdevcat.com)"; $ url = preg_replace ("#http: // (+) #", "", $ url);

    Jaa teksti 140 merkin joukkoon Twitterissä

    Ehkä tiedät sen Viserrys hyväksyy enintään 140 merkin pituiset viestit. Jos aiot järjestää sovelluksesi vuorovaikutukseen suositun sosiaalisen viestisivuston kanssa, ominaisuus, joka katkaisee viestit 140 merkille, on varmasti oikea sinulle.

    Funktio split_to_chunks ($ to, $ text) ($ total_length = (140 - strlen ($ to))); $ text_arr = räjähtää ("", $ text); $ i = 0; $ message = ""; foreach ($ text_arr $ sana) (if (strlen ($ message [$ i]. $ word. "")<= $total_length){ if ($text_arr == $word){ $message[$i] .= $word; } else { $message[$i] .= $word . " "; } } else { $i++; if ($text_arr == $word){ $message[$i] = $word; } else { $message[$i] = $word . " "; } } } return $message; }

    Poista URL -osoite merkkijonosta

    Monet ihmiset jättävät URL -osoitteita blogikommentteihin saadakseen liikennettä tai antaakseen palautetta. Tällaiset linkit saastuttavat blogia ja voivat aiheuttaa turhautumista omistajalle, jos niitä on liikaa. Joten seuraava toiminto on erittäin hyödyllinen!

    $ string = preg_replace (" / \ b (https? | ftp | tiedosto): \ / \ / [ [sähköposti suojattu]# \ /%? = ~ _ | $!:,.;] * / i "," ", $ string);

    Muunna merkkijono etanaksi

    Tarvitseeko luoda etana (pysyvälle linkille), joka on SEO -yhteensopiva? Seuraava funktio ottaa merkkijonon parametriksi ja palauttaa SEO -yhteensopivan etiketin. Yksinkertaista ja tehokasta!

    Funktio etana ($ str) ($ str = strtolower (trim ($ str))); $ str = preg_replace (" / [^ a-z0-9-] /", "-", $ str); $ str = preg_replace (" / - + /", " -", $ str); return $ str;)

    CSV -tiedoston jäsentäminen

    CSV -tiedostot (Coma erotetut arvot) ovat helppo tapa tallentaa ja siirtää tietoja, ja tällaisten tiedostojen jäsentäminen PHP: ssä on erittäin helppoa. Älä usko minua? Seuraava koodi osoittaa CSV -tiedoston käsittelyn:

    $ fh = fopen ("contacts.csv", "r"); while ($ line = fgetcsv ($ fh, 1000, ","))) (echo "Contact: ($ line)";)

    Etsi merkkijono toisesta merkkijonosta

    Jos merkkijono sisältyy toiseen merkkijonoon ja sinun on löydettävä se, ongelma ratkaistaan ​​yksinkertaisesti:

    Funktio sisältää ($ str, $ content, $ ignorecase = true) (jos ($ ignorecase) ($ str = strtolower ($ str); $ content = strtolower ($ content);) return strpos ($ content, $ str)? totta: väärin;)

    Tarkistetaan, että merkkijono alkaa tietyllä kuviolla

    Joillakin ohjelmointikielillä, kuten Javalla, on startWith -menetelmä / toiminto, jonka avulla voit tarkistaa, alkaako merkkijono tietyllä mallilla. Valitettavasti PHP: ssä ei ole niin yksinkertaista sisäänrakennettua toimintoa.
    Siitä huolimatta voimme tehdä sen itsellemme, ja lisäksi se on hyvin yksinkertaista:

    Funktio String_Begins_With ($ neula, $ heinäsuovasta) (return (substr ($ heinäsuovasta, 0, strlen ($ neula)) == $ neula);)

    Kohokohta viesti merkkijonosta

    Oletko koskaan miettinyt, miten roskapostittajat saavat sähköpostiosoitteesi? Se on yksinkertaista. He ottavat verkkosivun (esimerkiksi foorumilta) ja jäsentävät html -koodin sähköpostiosoitteiden poimimiseksi. Alla oleva koodi ottaa merkkijonon parametriksi ja tulostaa kaikki sen sisältämät sähköpostit. Älä käytä tätä koodia roskapostiksi!

    Funktio extract_emails ($ str) (// Säännöllinen lauseke, joka poimii kaikki sähköpostit merkkijonosta: $ regexp = "/()+\@(()+\.)+((2,4))+/i"; preg_match_all ($ regexp, $ str, $ m); return isset ($ m)? $ m: array ();) $ test_string = "Testimerkkijono ... [sähköposti suojattu] Muiden muotojen tarkistaminen: [sähköposti suojattu]; foobar Toinen tarkistus: [sähköposti suojattu] test6esimerkki.org [sähköposti suojattu] [sähköposti suojattu] esimerkki.org [sähköposti suojattu]! foo! .org foobar "; print_r (ote_sähköpostit ($ test_string));