Php vaihtuva pituus. PHP: työskentely merkkijonojen kanssa. PHP merkkijonofunktiot. Muunna HTML tavalliseksi tekstiksi

Hei kaikille, tänään kerron teille kuinka saada selville merkkijonon pituus PHP:ssä. Aihe on melko helppo, koska kaikki tehdään puolestasi funktio nimeltä strlen. Se on yksinkertaista, funktio ottaa merkkijonon ja palauttaa sen tuloksena luvun, eli sinua kiinnostavan merkkijonon merkkien määrän. Katsotaanpa pientä esimerkkiä, jossa käytämme tätä toimintoa.

$string = "Jonon pituus";
$count = strlen( $string);
jos ( $count > 10 ) {
kaiku "Rivisi sisältää yli kymmenen merkkiä.";
}
elseif ($count == 10 ) {
kaiku "Rivissäsi on kymmenen merkkiä.";
}
muu(
kaiku "Rivisi on alle kymmenen merkkiä pitkä.";
}
?>

Kirjoitimme yksinkertaisen koodin, joka määrittää, kuinka monta merkkiä rivillä on, ja tulostamme sitten rivin, joka osoittaa merkit suhteessa kymmeneen. Ensimmäinen asia, jonka teimme, oli tulostaa merkkijono ja laittaa se muuttujaan. Loimme muuttujan, johon suoritustulos tallennetaan strlen-toiminnot , eli merkkien määrä. Ja edelleen käyttöä jos muuten rakentaa , määritämme merkkien määrän ja näytämme vastaavan rivin selaimessa. Jos rivillä on enemmän kuin kymmenen merkkiä, tulostetaan ensimmäinen rivi, jos täsmälleen kymmenen merkkiä, niin toinen rivi, muuten kolmas rivi tulostetaan, jos tuloste tehdään, merkkien määrä alle kymmenen, joten erityistä ehtoa ei määritelty.

Siinä kaikki koodi, jonka kirjoitimme. Nyt kaikki on tullut sinulle äärimmäisen selväksi, ja voit selvittää sen

merkkien pituus merkkijonossa PHP:n avulla

strlen() odottaa parametrin 1 olevan merkkijono, joka annetaan rivillä /var/www/sis/lib/functions/advanced_search_lib.php rivillä 1028

Jos näin on, koet todennäköisesti tämän muuttuneen käyttäytymisen.

1 vuosi sitten

Jos tekstisi sisältää UTF8-merkin (esimerkiksi arabialainen merkki), mb_substr voi käyttää strlenin sijaan.
mutta jos merkkijono sisältää UTF16 (wmoji, hymiö), voit käyttää tätä menetelmää oikean pituuden saamiseksi:

Koska jotkut emojit (esim. 📌) on 2, 3 tai 4 tavua!

2 vuotta sitten

Kun tarkistat pituuden varmistaaksesi, että arvo sopii tietokantakenttään, muista käyttää oikeaa funktiota.

On kolme mahdollista tilannetta:

1. Todennäköisin tapaus: tietokantararake on UTF-8, jonka pituus on määritelty unicode-koodipisteissä (esim. mysql varchar(200) utf-8-tietokannassa).

// ok, jos php.ini default_charset on UTF-8 (= oletusarvo)
mb_strlen ($arvo);
iconv_strlen($arvo);
//aina ok
mb_strlen($arvo, "UTF-8");
iconv_strlen($arvo, "UTF-8");

// HUONO, älä käytä:
strlen(utf8_decode($arvo)); // taukoja joidenkin monitavuisten merkkien kohdalla
grafeme_strlen ($arvo); // laskee grafeemia, ei koodipisteitä
?>

2. Tietokantararakkeen pituus on määritelty tavuina (esim. Oracle:n VARCHAR2(200 BYTE))

// ok, mutta oletetaan, että mbstring.func_overload on 0 tiedostossa php.ini (= oletusarvo)
strlen ($arvo);
// ok, voimat lasketaan tavuina
mb_strlen ($arvo, "8bit")
?>

3. Tietokantararake on toisessa merkistössä (UTF-16, ISO-8859-1 jne.), jonka pituus on määritelty merkeissä / koodipisteissä.

Etsi käytetty merkistö ja välitä se nimenomaisesti pituusfunktiolle.

// ok, tuetut merkistöt:
mb_strlen ($arvo, $merkkisarja);
// ok, tuetut merkkisarjat: https://www.gnu.org/software/libiconv/
iconv_strlen ($arvo, $merkkisetti);
?>

6 vuotta sitten

PHP:n strlen-funktio käyttäytyy eri tavalla kuin C strlen-funktio nollatavujen ("\0") käsittelyssä.

PHP:ssä merkkijonon nollatavu EI lasketa merkkijonon lopuksi, ja kaikki nollatavut sisällytetään merkkijonon pituuteen.

Esimerkiksi PHP:ssä:

strlen("te\0st") = 5

C:ssä sama puhelu palaisi 2.

Siten PHP:n strlen-funktiota voidaan käyttää binäärimerkkijonon tavujen määrän löytämiseen (esimerkiksi base64_decoden palauttama binääritieto).

2 vuotta sitten

Tässä on PALJON väärää tietoa, jonka haluan korjata! Monet ihmiset ovat varoittaneet strlen():n käyttämisestä, koska se on "erittäin hidas". No, se oli luultavasti totta PHP:n vanhoissa versioissa. Mutta PHP7:stä lähtien se" ei todellakaan ole enää totta. Se on nyt SUPER nopeaa!

Loin 20 00 000 tavun merkkijonon (~ 20 megatavua) ja iteroin SADA MILJOONAA KERTAA silmukassa. Jokainen silmukaiteraatio teki uuden strlen():n tälle hyvin, hyvin pitkälle merkkijonolle.

Tulos: 100 miljoonaa strlen()-puhelua 20 megatavun merkkijonossa kesti vain yhteensä 488 millisekuntia. Ja strlen()-kutsut eivät muuttuneet hitaammaksi/nopeammaksi, vaikka pienensin tai suurensin strlen() oli melko pitkälti jatkuvatoiminen, supernopea operaatio

Joten joko PHP7 tallentaa jokaisen merkkijonon pituuden kenttään, josta se voi aina etsiä ilman merkkejä. Tai se tallentaa strlen()-tuloksen välimuistiin, kunnes merkkijonon sisältö todella muuttuu. Joka tapauksessa sinun ei pitäisi enää koskaan, KOSKAAN huolehtia strlen()-suorituskyvystä. PHP7:stä lähtien se on erittäin nopea!

Tässä on täydellinen vertailukoodi, jos haluat toistaa sen koneellasi:

$iteraatiot = 100000000 ; // 100 miljoonaa
$str = str_repeat ( "0" , 20000000 );

// benchmark-silmukka ja muuttujan määritys silmukan yleiskustannusten laskemiseksi
$aloitus = mikroaika(tosi);
for($i = 0 ; $i< $iterations ; ++ $i ) {
$len = 0 ;
}
$loppu = mikroaika(tosi);
$silmukka_kulunut = 1000 * ($loppu - $alku );

// benchmark strlen silmukassa
$len = 0 ;
$aloitus = mikroaika(tosi);
for($i = 0 ; $i< $iterations ; ++ $i ) {
$len = strlen ($str );
}
$loppu = mikroaika(tosi);
$strlen_elapsed = 1000 * ($loppu - $alku );

// vähennä silmukan yläraja strlen()-nopeuslaskelmasta
$strlen_elapsed -= $silmukka_kulunut ;

echo "\nmerkkijonon pituus: ( $len ) \ntesti kesti: ( $strlen_elapsed ) millisekuntia\n" ;

?>

5 vuotta sitten

Funktio limit_text($text, $limit = 100000000000) (
if (strlen ($text)< $limit) {
palauttaa $teksti;
}
$split_words = explode(" ", $teksti);
$out = nolla;
foreach ($split_words kuin $word) (
if ((strlen($word) > $limit) && $out == null) (
return substr($sana, 0, $rajoitus)."...";
}

If ((strlen($out) + strlen($word)) > $limit) (
palauttaa $out . "...";
}
$out.=" " . $sana;
}
palauttaa $out;
}

echo limit_text("hei maailma lorem ipsum",10);

Verkkosivustot voidaan jakaa staattisiin ja dynaamisiin. HTML:n ja CSS:n hallitsemisen jälkeen, joiden avulla voit tehdä kauniin käyntikortin Internetissä, monet ihmiset ajattelevat, kuinka luoda dynaaminen verkkosivusto PHP: llä. Samalla layout-suunnittelijan on otettava huomioon, että nyt hän alkaa opiskella web-ohjelmointia: sivuston kanssa työskentelyn periaatteet ovat erilaiset. Yksi ensimmäisistä PHP:n aloittelijan ongelmista on merkkijonojen käsittely, niiden lukeminen ja käsittely.

On syytä huomata, että PHP:llä on suuri määrä menetelmiä, joten sinun tulee aloittaa niiden oppiminen yksinkertaisimmilla manipulaatioilla, kuten merkkijonon tulostaminen, etsiminen, alimerkkijonon hankkiminen tai korvaaminen, kirjainten vaihtaminen ja merkkijonon pituuden palauttaminen. Monet toiminnot eivät toimi hyvin kyrillisten merkkien kanssa. Siksi kaikki esimerkit on kirjoitettu englanniksi selvyyden vuoksi. Kyrillisissä merkkijonoissa käytetään samoja toimintoja, mutta mb_-etuliitteellä (esimerkiksi mb_strpos()). Ennen kuin käytät analogeja, sinun on poistettava kommentit tiedostosta php.ini extension=php_mbstring.dll poistamalla puolipiste.

Merkkijonon luominen ja tulostaminen

Analysoimme merkkijonon tulosteen näytölle käyttämällä tunnettua kaikukielirakennetta. Ohjelmoija voi tulostaa rivin välittömästi:

echo "Tämä on uusi linja"

tai luo ensin muuttuja ja tulosta se sitten näytölle:

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

Jos sinun on näytettävä useita rivejä yhdessä, käytä ketjutusta:

echo "tämä". "Uusi". "Line";

$str1 = "Tämä";

$str2 = "Uusi";

$str3 = "Merkkijono";

echo $str1 . $str2 . $str3;

Jälkimmäisessä tapauksessa näyttö tulee näkyviin Tämä on NewLine. Välilyönti voidaan lisätä heti kun soitetaan kaikua:

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

Tässä tapauksessa näytössä näkyy: "Tämä on uusi rivi". Yhdistäminen on mahdollista paitsi tulostuksen aikana, myös merkkijonoa luotaessa:

$str1 = "Tämä";

$str2 = "Uusi";

$str3 = "Merkkijono";

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

echo $string;

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

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

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

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

Palvelusymbolit

Oletetaan, että merkkijono määritellään ($string = "Tämä"). Sitten voit käyttää ohjaussarjoja täysin turvallisesti:

  • \n suorittaa rivinsiirron;
  • \r palauttaa kuljetuksen;
  • \" jättää lainausmerkit:
    • echo "Merkkijono \"kaksoislainausmerkeillä""; //Merkkijono lainausmerkeillä
  • \$ pakenee dollaria;
  • \\ ohittaa kenoviivan.

Sekvenssejä on monia muita, ne kaikki löytyvät virallisesta PHP-dokumentaatiosta.

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

Oletetaan, että meillä on yksinkertainen rivi:

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

$nimi = "Yemelyan";

$anotherName = "Katherine";

Meidän on tiedettävä, sisältääkö ensimmäinen rivi nämä kaksi nimeä. Käytä tätä varten strpos($str, $search) -funktiota. Se palauttaa etsityn alimerkkijonon $search sijainnin, jos tämä merkkijono sisältyy alkuperäiseen, $str. Muussa tapauksessa funktio palauttaa loogisen arvon false. Esimerkiksi strpos($merkkijono, $toinenNimi) palauttaa epätosi, kun taas strpos($merkkijono, $nimi) palauttaa kokonaisluvun. Koodi on tällainen (kirjoitamme version, kun sijainti näkyy näytöllä):

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

$nimi = "Yemelyan";

$anotherName = "Katherine";

echo strpos($merkkijono, $toinenNimi); //tulostaa false

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

Huomaa, että rivinumerointi alkaa nollasta, eli meidän tapauksessamme viimeisellä rivillä näkyy numero 11 (myös välilyönnit lasketaan).

Osamerkkijonon viimeisen esiintymän sijainnin ja sudenkuopat löytäminen

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

Numeroinnin aloittamiseen liittyy joitain sudenkuoppia. Tätä kannattaa harkita: PHP:ssä merkkijonojen kanssa työskentely voi olla monimutkaista vertailujen rajoitusten vuoksi. Joten on parempi olla käyttämättä vertailuoperaattoria negatiivisen kanssa: strpos($str, $search)!=false. Missä tahansa PHP-versiossa esimerkit, joissa on tällainen vastaavuus, eivät välttämättä toimi oikein, koska rivinumerointi alkaa nollasta ja loogisessa tulkinnassa 0 on epätosi. Tämä koskee myös strrpos()-funktiota.

Kuinka löytää osamerkkijonon esiintymisten lukumäärä

Usein sinun ei tarvitse löytää alimerkkijonon ensimmäisen tai viimeisen esiintymän sijaintia merkkijonossa, vaan niiden kokonaismäärä. Käytä tätä varten 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 vielä kaksi muuttujaa: merkkijonon alku ja loppu. Toisin sanoen funktiota kutsutaan tässä tapauksessa seuraavasti: substr_count($str, $search, $start, $end). Funktio etsii alimerkkijonoa $search välillä $alku ja $loppu lähdemerkkijonosta $str. Jos merkkijonoa ei löydy, funktio palauttaa nollan.

Kuinka muuttaa merkkijonon kirjainkokoa PHP:ssä: esimerkkejä

Kirjainten vaihtamista käytetään usein merkkijonojen vertailuun ja Oletetaan, että käyttäjän on syötettävä ohjelmaan ylimmän jumalan nimi. On olemassa 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 tosi sijaan. Tämän välttämiseksi käytetään tapauksenvaihtotoimintoa. Tätä käytetään usein, jos PHP-sivustolla on tunnisteita: satojen sanan "personal" muunnelmien ("Personal", "personal", "PERSONAL" jne.) sijasta on vain yksi pieni tunniste.

Strtolower()-funktio vaihtaa isot kirjaimet pieniksi. Oletetaan, että siellä on rivi $catName = "Fluffy". Funktio strtolower($catName) palauttaa merkkijonon "fluffy". Voit muuttaa kirjainkoot isoiksi käyttämällä strtoupper()-funktiota.

Kuinka löytää merkkijonon pituus PHP:ssä: työskentely funktioiden kanssa

Usein sinun on löydettävä merkkijonon pituus. Esimerkiksi PHP:ssä tällaisten merkkijonojen kanssa työskentely voi olla tarpeen silmukkaa luotaessa. Jos haluat etsiä merkkijonoa, käytä strlen()-funktiota, joka palauttaa numeron - merkkien määrän. Emme saa unohtaa, että viimeisellä merkillä on numero strlen($str)-1, koska numerointi alkaa nollasta.

Osamerkkijonon hankkiminen ja korvaaminen PHP:ssä: merkkijonojen käsittely

Alimerkkijono saadaan substr()-funktiolla, joka voi ottaa kaksi tai kolme argumenttia: substr($str, $start, $end). Oletetaan, että meillä on $string = "Fluffy cat" ja haluamme saada alimerkkijonon toisesta neljänteen merkkiin. Koska numerointi alkaa nollasta, muuttuja tällä osamerkkijonolla näyttää tältä: $newString = substr($string, 1, 4). Jos kirjoitamme $newString = substr($string, 1), saamme alimerkkijonon toisesta merkistä viimeiseen (eli "luffy"). Tämä koodi on identtinen strlen(): substr($string, 1, strlen($string)) käyttävän koko merkkijonon kanssa.

Jos haluat korvata alimerkkijonon, käytä str_replace()-funktiota, jossa on kolme muuttujaa: str_replace($subStr, $newSub, $str). Toisin kuin monet funktiot, str_replace() toimii oikein kyrillisten merkkien kanssa, eikä sillä ole analogia etuliitteen kanssa. Esimerkki:

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

$newStr = str_replace("kauhea", "ihana", $str); //Upea sää tänään!

Merkkijonon muuntaminen luvuksi

Jokaisen, joka oppii verkko-ohjelmoinnin, on ennemmin tai myöhemmin muutettava merkkijono numeroksi. Tätä varten käytetään kahta samanlaista funktiota: intval() ja floatval(), joista kumpikin ottaa yhden $string-muuttujan. Ne eroavat toisistaan ​​vain palautettavan tiedon tyypissä: intval() palauttaa kokonaisluvun ja floatval() palauttaa liukulukuluvun.

Käyttääksesi sekä intval()- että floatval()-merkkijonoa täytyy alkaa numeroilla, ja ne muunnetaan numeroiksi. Jos numeroita seuraa mikä tahansa kirjainjoukko, ne yksinkertaisesti ohitetaan. Jos merkkijono alkaa kirjaimilla, funktion käyttö palauttaa nollan. Ihannetapauksessa rivin tulisi sisältää vain numeroita.

Luvun muuntaminen merkkijonoksi

Usein sinun on muutettava numerot merkkijonoksi. Sano, jos sinun on otettava puolikas luku ja neliötettävä se (tarkista esimerkiksi, onko yhtälö tosi: 88 x 88 + 33 x 33 = 8833). Tässä tapauksessa käytetään strval()-funktiota, joka palauttaa merkkijonon numerolla. Tämän jälkeen voit suorittaa kaikki muut toiminnot uudella merkkijonolla: muuttaa, etsiä alimerkkijonon esiintymistä ja muita toimintoja. Tarvittaessa merkkijono voidaan muuntaa takaisin luvuksi yllä kuvatulla menetelmällä.

Artikkelissa tarkasteltiin vain pientä osaa kaikista merkkijonoihin liittyvistä funktioista. Jotkut kuvailemattomat toiminnot toimivat symbolien kanssa, mutta suurinta osaa ei sisällytetty materiaaliin erityisyyden vuoksi. Tutustuaksesi näihin ominaisuuksiin, sinun tulee lukea virallinen PHP-dokumentaatio, joka näyttää uusimmat tiedot.

Lisää HTML-rivinvaihtokoodin ennen jokaista rivinvaihtoa

  • number_format - Muotoilee numeron ryhmäerottelulla
  • ord - Palauttaa merkin ASCII-koodin
  • parse_str - Jäsentää merkkijonon muuttujiksi
  • print - Tulostaa merkkijonon
  • printf
  • quoted_printable_decode - Purkaa merkkijonon, joka on koodattu lainatulla tulostettavalla menetelmällä
  • quotemeta - Pakenee erikoismerkkejä
  • rtrim - Poistaa välilyönnit merkkijonon lopusta
  • sha1 - Palauttaa merkkijonon SHA1-tiivisteen
  • sha1_file - Palauttaa tiedoston SHA1-tiivisteen
  • samankaltainen_teksti - Laskee kahden merkkijonon samankaltaisuuden asteen
  • soundex - Palauttaa merkkijonon soundex-näppäimen
  • sprintf
  • sscanf - Jäsentää merkkijonon tietyn muodon mukaan
  • strcasecmp – Kirjainkoolla välitön merkkijonovertailu, joka on binaarisesti turvallinen
  • strcmp - Binaariturvallinen merkkijonojen vertailu
  • strcoll - Vertaa merkkijonoja nykyisen kielen perusteella
  • strcspn - Palauttaa sen osan pituuden merkkijonon alussa, joka ei vastaa maskia
  • stripcslashes - Poistaa addcslashes()-funktion tuottamat merkin poistomerkit
  • stripos – Palauttaa alimerkkijonon ensimmäisen esiintymän sijainnin, kirjainkoolla ei ole merkitystä
  • viivat - Poistaa addslashes()
  • strip_tags - Poistaa HTML- ja PHP-tunnisteet merkkijonosta
  • stristr - Samanlainen kuin strstr-funktio, mutta kirjainkoosta riippumaton
  • strlen - Palauttaa merkkijonon pituuden
  • strnatcasecmp - Vertaa merkkijonoja, joissa kirjainkoolla ei ole merkitystä, käyttämällä algoritmia
  • strnatcmp - merkkijonojen vertaaminen "luonnollisen järjestyksen" algoritmilla
  • strncasecmp
  • strncmp – kirjainkoolla ei väliä, binäärisuojattu merkkijonojen n ensimmäisen merkin vertailu
  • strpos - Etsii alimerkkijonon ensimmäisen esiintymän merkkijonosta
  • strhrchr
  • strrev - Kääntää merkkijonon
  • strripos - Palauttaa alimerkkijonon viimeisen esiintymän sijainnin, kirjainkoolla ei ole merkitystä
  • strrpos - Etsii merkin viimeisen esiintymän merkkijonosta
  • strspn - Palauttaa maskia vastaavan merkkijonon alussa olevan osan pituuden
  • strstr - Etsii alimerkkijonon ensimmäisen esiintymän
  • strtok - Halkaisee merkkijonon
  • strtolower - Muuntaa merkkijonon pieniksi kirjaimiksi
  • strtoupper - Muuntaa merkkijonon isoiksi kirjaimiksi
  • strtr - Muuntaa annetut merkit
  • str_ireplace – str_replace()-funktion variantti, jossa kirjainkoolla ei ole merkitystä.
  • str_pad - Täyttää merkkijonon toisella merkkijonolla tietyn pituiseksi
  • str_repeat - Palauttaa toistuvan merkkijonon
  • str_replace - Korvaa hakumerkkijonon korvaavalla merkkijonolla
  • str_rot13 - Suorittaa ROT13-muunnoksen merkkijonolle
  • str_shuffle - Sekoittaa merkkijonon merkit
  • str_split - Muuntaa merkkijonon taulukoksi
  • str_word_count – Palauttaa tiedot merkkijonon sanoista
  • substr - Funktio palauttaa osan merkkijonosta
  • substr_count - Laskee alimerkkijonon esiintymisten määrän merkkijonossa
  • substr_replace - Korvaa osan merkkijonosta
  • trimma - Poistaa välilyönnit merkkijonon alusta ja lopusta
  • ucfirst - Muuntaa merkkijonon ensimmäisen merkin isoksi
  • ucwords - Muuntaa merkkijonon jokaisen sanan ensimmäisen merkin isoksi
  • vprintf - Tulostaa muotoillun merkkijonon
  • vsprintf - Palauttaa muotoillun merkkijonon
  • Wordwrap – rivittää rivin tietylle merkkimäärälle rivinvaihtomerkillä
  • Merkkijonoihin sovellettujen vertailuoperaattoreiden ominaisuudet.

    $yksi = 1; // Numero yksi. $nolla = 0; // Anna numerolle nolla. if ($yksi == "") kaiku 1; // Ilmeisesti ei ole yhtä suuri - ei tulosta 1. if ($zero == "") echo 2; //* Huomio! Vastoin odotuksia se tulostaa 2! if ("" == $nolla) kaiku 3; //* Eikä tämäkään auta - se tulostaa!.. if ("$zero" == "") echo 4; // Juuri niin. if (strval($nolla) == "") echo 5; // Tämä on myös oikein - se ei tulosta 5. if ($zero === "") echo 6; // Parempi tapa, mutta ei toimi PHP 3:ssa.

    pilkkoa ()

    Chop()-funktio palauttaa merkkijonon, kun se on poistanut välilyönnit ja rivinvaihdot. Chop()-funktion syntaksi on:

    merkkijono (merkkijono)

    Seuraavassa esimerkissä chop()-funktio poistaa ylimääräiset rivinvaihdot:

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

    str_pad()

    Str_pad()-funktio täydentää merkkijonon tietyn pituiseksi annetuilla merkeillä ja palauttaa muotoillun merkkijonon. Str_pad()-funktion syntaksi:

    merkkijono str_pad (merkkijono, int pad_length [, merkkijono pad [, int pad_type]])

    Jos valinnaista täyteparametria ei ole määritetty, merkkijono täytetään välilyönneillä. Muussa tapauksessa merkkijono täytetään annetuilla merkeillä.

    Oletuksena viiva on pehmustettu oikealle; Voit kuitenkin välittää padding_type-parametrin STR_PAD_RIGHT, STR_PAD_LEFT tai STR_PAD_BOTH, joka täyttää rivin määritettyyn suuntaan. Esimerkki osoittaa merkkijonojen täyttämisen str_pad()-funktiolla oletusparametreilla:

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

    leikata()

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

    merkkijonojen leikkaus (merkkijonomaa)

    Erikoismerkit \n, \r, \t, \v ja \0 sisältyvät myös poistettavaan välilyöntiin.

    ltrim()

    Funktio lrim() poistaa kaikki välilyönnit ja erikoismerkit merkkijonon vasemmasta reunasta ja palauttaa tuloksena olevan merkkijonon. ltrim()-funktion syntaksi:

    merkkijono ltrim (merkkijono)

    Funktio poistaa samat erikoismerkit kuin trim()-funktio.

    strlen()

    Merkkijonon pituuden määrittäminen

    Merkkijonon pituus voidaan määrittää strlen()-funktiolla. Strlen()-funktion syntaksi:

    int strlen (merkkijono)

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

    Kahden merkkijonon vertailu

    Kahden merkkijonon vertailu on yksi tärkeimmistä merkkijonooperaatioista millä tahansa kielellä. Vaikka tämä ongelma voidaan ratkaista useilla eri tavoilla, PHP:ssä on neljä merkkijonojen vertailutoimintoa:

    strcmp()

    Strcmp()-funktio vertaa kahta merkkijonoa kirjainkoon erottelulla. Strcmp()-funktion syntaksi: int strcmp (merkkijono merkkijono1, merkkijono merkkijono2)

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

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

    $sthng1 = "voi"; $string2 = "voi"; if ((strcmp($merkkijono1. $merkkijono2)) == 0) : print "Josot ovat vastaavia!"; endif; // If-komento palauttaa TRUE

    strcasecmp()

    Strcasecmp()-funktio toimii täsmälleen samalla tavalla kuin strcmp(), yhdellä poikkeuksella - vertailussa ei oteta huomioon merkkien tapausta.

    Strcasecmp()-funktion syntaksi on:

    int strcasecmp (merkkijono merkkijono1, merkkijono merkkijono2)

    Seuraava katkelma vertaa kahta identtistä merkkijonoa:

    $merkkijono1 = "voi"; $string2 = "Voi"; if ((strcmp($merkkijono1, $merkkijono2)) == 0) : print "Jojonot ovat vastaavia!"; endif; // If-komento palauttaa TRUE

    strspn()

    Strspn()-funktio palauttaa merkkijonon1 ensimmäisen segmentin pituuden, joka sisältää merkkijonossa2 olevat merkit. Strspn()-funktion syntaksi on:

    int strspn (merkkijono merkkijono1, merkkijono merkkijono2)

    Seuraava katkelma näyttää, kuinka strspn()-funktiota käytetään salasanan vahvistamiseen:

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

    strcspn()

    Strcspn()-funktio palauttaa merkkijonon1 ensimmäisen segmentin pituuden, joka sisältää merkkejä, joita ei ole merkkijonossa2. Strcspn()-funktion syntaksi:

    int strcspn (merkkijono merkkijono1, merkkijono merkkijono2)

    Seuraava koodinpätkä käyttää strcspn()-funktiota salasanan tarkistamiseen:

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

    Merkkijonotietojen käsittely ilman säännöllisiä lausekkeita

    Suuria tietomääriä käsiteltäessä säännölliset lausekkeet hidastavat ohjelman suorittamista huomattavasti. Näitä toimintoja tulee käyttää vain, kun käsitellään suhteellisen monimutkaisia ​​merkkijonoja, joissa säännölliset lausekkeet ovat todella tarpeellisia. Jos tekstianalyysi suoritetaan suhteellisen yksinkertaisten sääntöjen mukaan, voit käyttää tavallisia PHP-toimintoja, jotka nopeuttavat huomattavasti käsittelyä. Kaikki nämä toiminnot on kuvattu alla.

    Strtok()-funktio jakaa merkkijonon tokeneiksi käyttämällä toisen parametrin määrittämiä erottimia. Strtok()-funktion syntaksi on:

    merkkijono strtok (merkkijono, merkkijonojen erottimet)

    Strtok()-funktiolla on yksi outo asia: jotta merkkijono voidaan jakaa kokonaan, funktiota on kutsuttava useita kertoja peräkkäin. Kun funktiota seuraavan kerran kutsutaan, se poimii seuraavan merkkijonon merkkijonosta. Tässä tapauksessa merkkijonoparametri määritetään vain kerran - funktio seuraa nykyistä sijaintia merkkijonossa, kunnes merkkijono on jäsennetty kokonaan tokeneiksi tai uusi merkkijonoparametri määritetään. Seuraava esimerkki osoittaa merkkijonon jakamisen useilla erottimilla:

    $info = "WJ Gi1lisää: [sähköposti suojattu]| Columbus, Ohio"; // Erottimet - kaksoispiste (:), pystypalkki (|) ja pilkku (.) $tokens = ":|,"; $tokenized = strtok($info, $tokens); // Tulosta taulukon elementit $tokenized while ($tokenized) : echo "Elementti = $tokenized
    "; // Huomaa, että seuraavat kutsut strtokiin // eivät välitä ensimmäistä argumenttia $tokenized = strtok($tokens); endwhile; Tulos: Element = WJGilmore Element = [sähköposti suojattu] Element = Columbus Element = Ohio

    parse_str()

    Funktio parse_str() jäsentää pareja merkkijonossa ja antaa arvoja muuttujille nykyisessä laajuudessa. Parse_str()-funktion syntaksi:

    void parse_str (merkkijono)

    Parse_str()-funktio on erityisen hyödyllinen jäsennettäessä URL-osoitteita, jotka sisältävät HTML-lomaketietoja tai muuta monipuolista tietoa. Seuraava esimerkki jäsentää URL-osoitteen kautta välitetyt tiedot. Merkkijono on tavallinen tapa siirtää tietoja sivujen välillä joko hyperlinkiksi koottuna tai HTML-lomakkeelle syötettynä:

    $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 jättää huomioimatta et-merkin (&).

    räjähtää()

    Explode()-funktio jakaa merkkijonon elementeiksi ja palauttaa ne taulukkona. Explode()-funktion syntaksi:

    taulukko räjähtää (merkkijonon erotin, merkkijono [, int kynnys])

    Jakaminen tapahtuu jokaisessa erottimen esiintymässä, ja tuloksena olevien fragmenttien määrää voidaan rajoittaa valinnaisella kynnysparametrilla.

    Explode()-funktio osoittaa merkkijonon jakamisen seuraavassa esimerkissä:

    $info = "wilson | baseball | intiaanit"; $käyttäjä = explode("|", $info); // $käyttäjä = "wilson"; // $user = "pesäpallo"; // $user = "intiaanit";

    Explode()-funktio on lähes identtinen yllä kuvatun POSIX-säännöllisen lausekkeen split()-funktion kanssa. Suurin ero on, että säännöllisten lausekkeiden välittäminen parametreina on sallittua vain split(:tä) kutsuttaessa.

    räjähtää ()

    Jos explode()-funktio jakaa merkkijonon taulukkoelementeiksi, sen vastine, implode()-funktio, yhdistää taulukon merkkijonoksi. Implode()-funktion syntaksi:

    merkkijono implode (merkkijonojen erotin, taulukon fragmentit)

    Merkkijonon muodostaminen taulukosta on esitetty seuraavassa esimerkissä:

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

    implode()-funktiolla on alias, join()-funktio.

    strpos()

    Strpos()-funktio löytää tietyn alimerkkijonon ensimmäisen esiintymän merkkijonosta. Strpos()-funktion syntaksi:

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

    Valinnainen offset-parametri määrittää paikan, josta haun tulee alkaa. Jos osamerkkijonoa ei löydy, strpos() palauttaa FALSE (0).

    Seuraava esimerkki määrittää päivämäärän ensimmäisen esiintymän 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ä kohdassa lehdessä vuosi 1999 ilmestyy ensimmäisen kerran? $pos = strpos($log, "1999"); // $pos = 95. koska "1999" ensimmäinen esiintymä // on $log-muuttujan sisältämän rivin kohdassa 95

    strpos()

    Strrpos()-funktio löytää tietyn merkin viimeisen esiintymän merkkijonosta. Strrpos()-funktion syntaksi on:

    int strpos (merkkijono, merkki)

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

    str_replace()

    Str_replace()-funktio etsii merkkijonosta kaikki tietyn osamerkkijonon esiintymät ja korvaa ne uudella osamerkkijonolla. Str_replace()-funktion syntaksi:

    merkkijono str_replace (merkkijonon alimerkkijono, merkkijonon korvaus, merkkijono)

    Substr_replace()-funktio, joka kuvataan myöhemmin tässä osiossa, sallii sinun korvata vain tietyn osan merkkijonosta.

    Seuraavassa näytetään, kuinka str_replace()-funktiota käytetään yleisen korvauksen suorittamiseen merkkijonolle.

    $favorite_food = "Lempiruokani ovat jäätelö ja kanansiipiä"; $suosikkiruoka = str_replace("kanan_siivet", "pizza", $suosikkiruoka); // $favorite_food = "Lempiruokani ovat jäätelö ja pizza"

    strstr()

    Strstr()-funktio palauttaa merkkijonon osan, joka alkaa tietyn osamerkkijonon ensimmäisestä esiintymisestä. Strstr()-funktion syntaksi:

    merkkijono strstr (merkkijono, merkkijono alimerkkijono)

    Seuraava esimerkki käyttää strstr()-funktiota verkkotunnuksen poimimiseen URL-osoitteesta:

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

    substr()

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

    merkkijono substr (merkkijono, int alku [, int pituus])

    Jos valinnaista pituusparametria ei ole määritetty, osamerkkijonon oletetaan alkavan määritetystä aloituskohdasta ja jatkuvan merkkijonon loppuun. Tätä ominaisuutta käytettäessä on otettava huomioon neljä asiaa:

    • jos aloitusparametri on positiivinen, palautettu osamerkkijono alkaa annetulla numerolla olevan rivin paikasta;
    • jos aloitusparametri on negatiivinen, palautettu osamerkkijono alkaa paikasta (merkkijonon pituus - alku);
    • jos pituus on positiivinen, palautettu osamerkkijono sisältää kaikki merkit alusta alkuun+pituus. Jos viimeinen arvo ylittää merkkijonon pituuden, palautetaan merkkejä merkkijonon loppuun asti;
    • jos pituus on negatiivinen, palautettu osamerkkijono päättyy määritetylle etäisyydelle merkkijonon lopusta.

    Muista, että aloitusparametri määrittää siirtymän rivin ensimmäisestä merkistä; joten palautettu merkkijono alkaa itse asiassa merkin numerosta (alku + 1).

    Seuraava esimerkki osoittaa substr()-alimerkkijonon:

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

    Esimerkki positiivisella pituusparametrilla:

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

    substr_count()

    Substr_count()-funktio palauttaa alimerkkijonon esiintymien lukumäärän tietyssä merkkijonossa. Substr_count()-funktion syntaksi on: int substr_count (merkkijonomerkkijono, merkkijonon alimerkkijono) Seuraavassa esimerkissä substr_count()-funktio laskee alimerkkijonon esiintymisten lukumäärän ain: $tng_twist = "Sade sataa pääasiassa tasangoilla Espanjasta"; $count = substr_count($tng_twist, "ain"); // $count = 4

    substr_replace()

    Substr_replace()-funktio korvaa merkkijonon osan, joka alkaa tietystä paikasta. Jos valinnainen pituusparametri on määritetty, määritetyn pituinen fragmentti korvataan. muussa tapauksessa korvaus suoritetaan korvaavan merkkijonon koko pituudelta.

    Substr_replace()-funktion syntaksi on:

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

    • Alku- ja pituusparametrit asetetaan tiettyjen sääntöjen mukaisesti:
    • jos aloitusparametri on positiivinen, vaihto alkaa määritetystä paikasta;
    • jos aloitusparametri on negatiivinen, vaihto alkaa paikasta (merkkijonon pituus -aloitus);
    • jos pituusparametri on positiivinen, määrätyn pituinen fragmentti korvataan;

    jos pituus on negatiivinen, korvaus päättyy kohtaan (merkkijonon pituus -pituus).

    Yksinkertainen tekstin korvaaminen substr_replace():llä on esitetty seuraavassa esimerkissä:

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

    Tulos:

    Alessian suosikkilinkit

    Merkkijonojen ja tiedostojen muuntaminen HTML-muotoon ja päinvastoin

    Merkkijonon tai koko tiedoston muuntaminen verkkoselaimessa katseltavaksi sopivaan muotoon (tai päinvastoin) on helpompaa kuin miltä ensi silmäyksellä näyttää. PHP:llä on erityistoimintoja tätä varten.

    Tekstin muuntaminen HTML-muotoon

    Pelkän tekstin nopea muuntaminen verkkoselainmuotoon on hyvin yleinen tehtävä. Tässä osiossa kuvatut toiminnot auttavat sinua ratkaisemaan sen.

    nl2br()

    Funktio nl2br() korvaa kaikki rivinvaihtomerkit (\n) vastaavilla HTML-rakenteilla.

    nl2br()-funktion syntaksi:

    merkkijono nl2br (merkkijono)

    Rivinvaihtomerkit voivat olla joko näkyviä (eli nimenomaisesti sisällytettyinä riville) tai näkymättömiä (esimerkiksi syötettynä editoriin). Seuraava esimerkki muuntaa tekstimerkkijonon HTML-muotoon korvaamalla \n-merkit rivinvaihdoilla:
    // Editorissa näkyvä tekstimerkkijono. $text_recipe = "Juhlakastikkeen resepti: 1 purkki haudutettuja tomaatteja 3 rkl tuoretta sitruunamehua Sekoita, tarjoile kylmänä."; // Muunna rivinvaihdot muotoon
    $htinl_recipe = nl2br($text_recipe) Reseptin $html_recipe myöhempi tulos palauttaa selaimeen seuraavan HTML-tekstin: Party Sauce -resepti:
    1 purkki haudutettuja tomaatteja
    3 rkl tuoretta sitruunamehua

    Sekoita keskenään, tarjoilija kylmänä.

    htmlentiteetit()

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

    Seuraava esimerkki suorittaa tarvittavan merkkijonomerkkien korvaamisen selaimeen tulostettavaksi:

    $user_input = "Cafe Francaise -niminen keittokirja" maksaa

    Htmlentities()-funktio toimii tällä hetkellä vain ISO-8559-1 (ISO-Latin-1) -koodausmerkeille. Se ei myöskään muunna välilyöntejä odotetulla tavalla.

    htmlspecialchars()

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

    merkkijono htmlspecialchars (merkkijono)

    html-erikoischars()-funktio muuntaa tällä hetkellä seuraavat merkit: & muuntaa &; " " muunnetaan muotoon "; muunnetaan muotoon >.

    Erityisesti tämä ominaisuus auttaa estämään käyttäjiä kirjoittamasta HTML-merkintöjä interaktiivisissa verkkosovelluksissa (kuten online-foorumeilla). Virheet HTML-merkinnöissä voivat aiheuttaa sen, että koko sivu ei muodostu oikein. Tähän ongelmaan on kuitenkin tehokkaampi ratkaisu - poista tagit kokonaan merkkijonosta strip_tags()-funktiolla.

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

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

    Jos htmlspecialchars()-funktiota käytetään yhdessä funktion nl2br(), niin jälkimmäinen tulee kutsua htmlspecialchars()-funktion jälkeen. Muuten mallit
    , jotka on muodostettu kutsumalla nl2br(), muunnetaan näkyviksi merkeiksi.

    get_html_translation_table()

    Get_html_translation_table()-funktio tarjoaa kätevän tavan muuntaa tekstiä HTML-vastineiksi Get_htrril_translation_table()-funktion syntaksi on:

    merkkijono get_html_translation_table (int-taulukko)

    Funktio get_html_translation_table() palauttaa yhden kahdesta käännöstaulukosta (määritetty taulukkoparametrilla), joita käytetään vakiofunktioiden htmlspecialchars() ja htmlentities() toiminnassa. Palautusarvoa voidaan käyttää yhdessä toisen vakiofunktion strtr() kanssa tekstin muuntamiseen HTML-koodiksi.

    Taulukkoparametri saa yhden kahdesta arvosta:

    • HTML_ENTITIES;
    • HTML_SPECIALCHARS.

    Seuraava esimerkki käyttää get_html_translation_table()-funktiota tekstin muuntamiseen HTML-muotoon:

    $string = "La pasta e il piatto piu amato in Italia"; $käännös = get_html_translation_table(HTML_ENTITIES); tulosta strtr($merkkijono, $käännä); // Erikoismerkit muunnetaan HTML-konstruktioiksi // ja hahmonnetaan oikein selaimessa.

    Muuten, array_flip()-funktiolla voit muuntaa tekstin HTML-muotoon vastakkaiseen suuntaan ja palauttaa alkuperäisen tekstin. Oletetaan, että edellisen esimerkin strtr()-tuloksen tulostamisen sijaan osoitimme sen $translated merkkijonomuuttujalle.

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

    $käännä = array_flip($käännä); $translated_string - "La pasta é il piatto piú amato in Italia"; $alkuperäinen_merkkijono = strtr($käännetty_merkkijono, $käännä); // $original_string = "La pasta e il piatto piu amato in Italia";

    strtr()

    Strtr()-funktio kääntää merkkijonon, eli se korvaa kaikki lähdemerkkijonon merkit kohdemerkkijonon vastaavilla merkeillä. Strtr()-funktion syntaksi:

    merkkijono strtr (merkkijono, merkkijonon lähde, merkkijonon kohde)

    Jos lähde- ja kohdemerkkijonot ovat eripituisia, pitkä merkkijono katkaistaan ​​sopimaan lyhyeen merkkijonoon.

    On olemassa vaihtoehtoinen syntaksi strtr()-kutsulle kahdella parametrilla; tässä tapauksessa toinen parametri sisältää assosiatiivisen taulukon, jonka avaimet vastaavat korvattavia osamerkkijonoja ja joiden arvot vastaavat korvaavia osamerkkijonoja. Seuraava esimerkki korvaa HTML-tunnisteet XML-kaltaisilla rakenteilla:

    " => "

    ", "" => "

    "); $merkkijono = "

    Tänään PHP-pohjaisissa uutisissa

    "; print strtr($merkkijono, $lähde); // Tulostaa merkkijonon " Tänään PHP-pohjaisissa uutisissa" ?>

    Muunna HTML tavalliseksi tekstiksi

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

    strip_tags()

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

    merkkijono strip_tags (merkkijono merkkijono [, merkkijono sallittu_terri])

    Valinnaisen sallittu_tags-parametrin avulla voit määrittää tunnisteet, jotka tulee ohittaa poistoprosessin aikana.

    Alla on esimerkki kaikkien HTML-tunnisteiden poistamisesta merkkijonosta strip_tags()-komennolla:

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

    Seuraava esimerkki ei poista kaikkia, vaan vain joitakin tunnisteita:

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

    Tunnisteiden poistaminen tekstistä tehdään myös fgetss()-funktiolla.

    get_meta_tags()

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

    taulukko get_meta_tags (merkkijono tiedoston_nimi/URL [, int sisällyttää_polku])

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

    META-tunnisteet sisältävät tietoa sivusta, jota käyttävät ensisijaisesti hakukoneet. Nämä tunnisteet ovat tunnisteparin sisällä... . META-tunnisteiden käyttö on havainnollistettu seuraavassa katkelmassa (kutsutaanko sitä esimerkki.html:ksi, koska sitä käytetään listauksessa 8.2): PHP-reseptit Get_meta_tags()-funktio etsii asiakirjan päästä tunnisteita, jotka alkavat sanalla META ja tallentaa tagien nimet ja niiden sisältö assosiatiivisessa taulukossa. Listaus 8.2 näyttää tämän toiminnon, jota käytetään esimerkki.html-tiedostossa. Listaus 8.2. META-tunnisteiden purkaminen HTML-tiedostosta käyttämällä get_meta_tags()

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

    Mielenkiintoinen yksityiskohta: META-tunnistetietoja voidaan poimia paitsi palvelimella olevista tiedostoista, myös muista URL-osoitteista.

    Muunna merkkijono isoiksi ja pieniksi kirjaimille

    PHP:ssä on neljä funktiota, jotka on suunniteltu muuttamaan merkkijonon kirjainkokoa:

    strtolower()

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

    merkkijono strtolower(merkkijono)

    Funktio ei muuta muita kuin aakkosmerkkejä. Merkkijonon muuntaminen pieniksi käyttämällä strtolower()-funktiota on esitetty seuraavassa esimerkissä:

    $sentence = "PHP:n KYTKENTÄ ja OHJELMOINTI ovat KAKSI suosikkiani!"; $lause = strtolower($lause); // Funktion kutsun jälkeen $lause sisältää merkkijonon // "ruoanlaitto ja ohjelmointi php ovat minun suosikkini!"

    strtoupper()

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

    merkkijono strtoupper (merkkijono)

    Funktio ei muuta muita kuin aakkosmerkkejä. Merkkijonon muuntaminen isoiksi käyttämällä strtoupper()-funktiota on esitetty seuraavassa esimerkissä:

    $sentence = "Ruoanlaitto ja ohjelmointi PHP ovat suosikkini!"; $lause = strtoupper($lause); // Funktiokutsun jälkeen $lause sisältää merkkijonon // "PHP:N KYTKENTÄ JA OHJELMOINTI OVAT KAHDEN SUOSIKKINI!"

    ucfirst()

    Funktio ucfirst() muuntaa merkkijonon ensimmäisen merkin isoksi, jos se on aakkosmerkki. ucfirst()-funktion syntaksi:

    merkkijono ucfirst (merkkijono)

    Toiminto ei muuta ei-aakkosmerkkejä. Merkkijonon ensimmäisen merkin muunnos ucfirst()-funktiolla on esitetty seuraavassa esimerkissä:

    &sentence = "Ruoanlaitto ja ohjelmointi PHP ovat suosikkini!"; $lause = ucfirst($lause); // Funktiokutsun jälkeen $lause sisältää merkkijonon // "Ruoanlaitto ja ohjelmointi PHP ovat suosikkini!"

    ucwords()

    Funktio ucwords() muuntaa merkkijonon jokaisen sanan ensimmäisen kirjaimen isoksi. Ucwords()-funktion syntaksi:

    merkkijono ucwords (merkkijono")

    Funktio ei muuta muita kuin aakkosmerkkejä. "Sana" määritellään merkkijonoksi, joka on erotettu muista merkkijonon elementeistä välilyönnillä. Seuraava esimerkki osoittaa, kuinka ucwords()-funktio muuntaa sanojen ensimmäiset merkit:

    $sentence = "Ruoanlaitto ja ohjelmointi PHP ovat suosikkini!"; $lause = ucwords($lause); // Funktiokutsun jälkeen $lause sisältää merkkijonon // "Ruoanlaitto ja ohjelmointi PHP ovat minun suosikkini!"

    strhr()

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

    Jos osamerkkijonoa ei löydy, palauttaa FALSE.

    Toisin kuin strchr(), jos hakumerkkijono koostuu useammasta kuin yhdestä merkistä, vain ensimmäistä merkkiä käytetään.

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

    // hanki viimeinen hakemisto $PATH:sta $dir = substr(strrchr($PATH, ":"), 1); // saada kaikki viimeisen rivinvaihdon jälkeen $text = "Rivi 1\nRivi 2\nRivi 3"; $viimeinen = substr(strrchr($teksti, 10), 1);

    highlight_string()

    highlight_string - korostusmerkkijonon syntaksi.

    sekoitettu highlight_string (merkkijono str [, bool return])

    Highlight_string()-funktio tulostaa syntaksin värillisen version str:stä käyttäen PHP:n sisäänrakennetussa syntaksin korostuksessa määritettyjä värejä.

    Jos toinen palautusparametri on TRUE, highlight_string() palauttaa korostetun koodiversion merkkijonona sen tulostamisen sijaan. Jos toinen parametri ei ole TOSI, highlight_string() palauttaa arvon TRUE, jos se on onnistunut, ja FALSE, jos epäonnistuminen.

    Huomautus: 1.palautusparametri tuli saataville PHP 4.2.0:sta alkaen. Ennen tätä se toimi oletusarvoisesti, ts. EPÄTOSI.
    2. Highlight_String()-funktio erottaa PHP-koodin tunnisteilla. show_source()-synonyymi highlight_file(). Voit muuttaa korostuksen oletusväriä käyttämällä seuraavia PHP-ohjeita:

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

    addslashes()

    - Pakottaa erikoismerkit merkkijonossa

    Palauttaa merkkijonon, jonka kenoviiva (\) on lisätty ennen jokaista erikoismerkkiä, esimerkiksi tätä merkkijonoa myöhempää käyttöä varten tietokantakyselyssä.

    Yksilainaus ("), kaksoislainaus ("), kenoviiva (\) ja NUL (NULL-tavu) erotetaan.

    $str = "Onko nimesi O"reilly?"; // tulostaa: Onko nimesi O\"reilly? echo addslashes($str);

    viiltoja

    - Poistaa addslashes()-funktion tuottamat poistuvat merkit Poistaa poistuvat kenoviivat. (\" muunnetaan muotoon " jne.). Kaksoiskenoviivat (\\) muunnetaan yksittäisiksi kenoviivoiksi (\).

    wordwrap()

    Rivittää rivin tietylle määrälle merkkejä rivinvaihdolla // Wordwrap() käyttäminen. funktio cite($omateksti, $maxlen=60, $prefix="> ") ( $st = wordwrap($ourText, $maxlen-strlen($etuliite), "\n"); $st = $prefix.str_replace( "\n", "\n$prefix", $st return $st Sen tuhon väistämättömyys on minulle nyt ilmeinen jokaiseen ihmiseen sisältyvän epätäydellisyyden seurauksena. Niinpä suunnittelin sen uudelleen heijastaakseni luonteesi vaihtelevia groteskeja epäonnistuminen." 20);

    > Ensimmäinen suunnittelemani Matrix oli > luonnostaan ​​> täydellinen, se oli taideteos - > virheetön, ylevä. > Voitto, > vain sen > sen monumentaalinen > epäonnistuminen. Sen tuhon > väistämättömyys > on minulle > ilmeinen nyt > seurauksena > jokaiseen > ihmiseen kuuluvasta > epätäydellisyydestä >. , > Suunnittelin sen uudelleen historiasi perusteella, jotta se kuvastaisi tarkemmin luonteesi vaihtelevia groteskeja. > Olin kuitenkin > jälleen > turhautunut > epäonnistumiseen.


    Lue lisää: Olioohjelmointi PHP:llä
    .

    pituus merkeissä (7)

    => string(141) tarkoittaa, että $viesti on taulukko, joten sinun tulee tehdä strlen($message)< 141 ...

    Minulla on merkkijono, joka on 141 merkkiä pitkä. Seuraavaa koodia käyttämällä minulla on if-lause palauttamaan viestin, jos merkkijono on suurempi tai pienempi kuin 140.

    Libxml_use_internal_errors(TRUE); $dom = uusi DOMDocument(); $dom->loadHTMLFile($lähde); $xml = simplexml_import_dom($dom); libxml_use_internal_errors(FALSE); $viesti = $xml->xpath("//div[@class="contest"]"); if (strlen($viesti)< 141) { echo "There Are No Contests."; } elseif(strlen($message) >142) ( echo "On yksi aktiivinen kilpailu."; )

    Käytin var_dump-arvoa $viestissä ja se näyttää merkkijono => string(141), se on minun ongelmani. Kun muutan if-lauseen numerot muotoon<130 и>131, se palauttaa silti ensimmäisen viestin, vaikka rivi on suurempi kuin 131. Riippumatta siitä, mitä numeroa käytän alle 141, saan aina "Ei kilpailua". tuli takaisin luokseni.

    => string(141) tarkoittaa, että $viesti on taulukko, ei merkkijono, ja $viesti on 141 merkkiä pitkä merkkijono

    xpath ei palauta merkkijonoa. Se palauttaa taulukon, jossa on xml-elementtejä, jotka voidaan lähettää merkkijonoon.

    If (count($message)) ( if (strlen((merkkijono)$viesti)< 141) { echo "There Are No Contests."; } else if(strlen((string)$message) >142) ( echo "On yksi aktiivinen kilpailu."; ) )

    kokeile yleistä syntaksia sen sijaan:

    Jos (strlen($viesti)<140) { echo "less than 140"; } else if (strlen($message)>140) ( kaiku "yli 140"; ) else ( echo "täsmälleen 140"; )

    Koska $xml->xpath palauttaa aina joukko , strlen odottaa linja .

    Minulla oli ongelmia tämän kanssa ja päätin lopulta luoda oman ratkaisuni. Ilman säännöllisen lausekkeen moottoria:

    Funktio sisältää($teksti, $sana) ( $found = false; $spaceArray = explode(" ", $text); $nonBreakingSpaceArray = explode(chr(160), $text); if (in_array($word, $spaceArray) ) ||. in_array($word, $nonBreakingSpaceArray)) ( $found = true; ) palauttaa $found )

    Saatat huomata, että edelliset ratkaisut eivät ole vastaus sanan käyttämiseen toisen sanan etuliitteenä. Käyttääksesi esimerkkiäsi:

    $a = "Kuinka voit?"; $b = "vyötäröltä levenevä hame"; $c = "ovat";

    Yllä olevissa esimerkeissä sekä $a että $b sisältävät $c , mutta haluat ehkä funktiosi kertovan, että vain $a sisältää $c .