Php muutuva pikkusega. PHP: stringidega töötamine. PHP stringi funktsioonid. Teisendage HTML lihttekstiks

Tere kõigile, täna räägin teile sellest kuidas PHP-s stringi pikkust teada saada. Teema on üsna lihtne, sest kõik tehakse teie eest ära funktsioon nimega strlen. See on lihtne, funktsioon võtab stringi ja selle tulemusel tagastab numbri, st teid huvitava stringi märkide arvu. Vaatame väikest näidet, kus me seda funktsiooni kasutame.

$string = "Stringi pikkus";
$count = strlen( $string);
kui ( $count > 10 ) {
kaja "Teie reas on üle kümne tähemärgi.";
}
elseif ($count == 10 ) {
kaja "Teie reas on kümme tähemärki.";
}
muu (
kaja "Teie rida on alla kümne tähemärgi pikk.";
}
?>

Kirjutasime lihtsa koodi, mis määrab, kui palju märke reas on, ja seejärel printisime rea, mis näitab tähemärke kümne suhtes. Esimese asjana printisime stringi ja panime selle muutujasse. Lõime muutuja, millesse täitmise tulemus salvestatakse strlen funktsioonid, st märkide arv. Ja edasine kasutamine kui muidu konstrueerib, määrame märkide arvu ja kuvame brauseris vastava rea. Kui real on rohkem kui kümme tähemärki, siis väljastatakse esimene rida, kui täpselt kümme märki, siis teine ​​rida, vastasel juhul väljastatakse kolmas rida, kui väljund tehakse, siis märkide arv alla kümne, seega konkreetset tingimust ei täpsustatud. See on kõik kood, mille me kirjutasime. Nüüd on teile kõik äärmiselt selgeks saanud ja saate teada tähemärkide pikkus stringis PHP abil, igal hetkel vajate ja praktikas on seda vaja üsna sageli. Sellega jätan teiega hüvasti, näeme varsti!

"Uuem sisemine parameetrite sõelumise API on rakendatud kõikidele PHP 5.3.x-ga komplekteeritud laiendustele. See parameetrite sõelumise API põhjustab ühildumatute parameetrite edastamisel funktsioonide tagastamise NULL-i. Sellel reeglil on mõned erandid, näiteks funktsioon get_class() , mis vea korral tagastab jätkuvalt FALSE."

Niisiis, PHP 5.3 puhul tagastab strlen($attributes) väärtuse NULL, samas kui PHP 5.2 puhul tagastab strlen($attributes) täisarvu 5. See mõjutab tõenäoliselt teisi funktsioone, nii et kui teil tekib ootamatult erinev käitumine või uued vead, kontrollige, kas olete uuendanud versioonile 5.3 (mida me hiljuti tegime) ja seejärel kontrollige, kas teie logides on selliseid hoiatusi:

strlen() eeldab, et parameeter 1 on string, massiiv, mis antakse real 1028 failis /var/www/sis/lib/functions/advanced_search_lib.php

Kui jah, siis tõenäoliselt kogete seda muutunud käitumist.

1 aasta tagasi

Kui teie tekst sisaldab UTF8 märki (näiteks araabia tähemärki), võib strlen asemel kasutada mb_substr.
aga kui string sisaldab UTF16 (wmoji, smiley), siis saate õige pikkuse saamiseks kasutada seda meetodit:

Kuna mõned emotikonid (nt: 📌) on 2, 3 või 4 baidised!

2 aastat tagasi

Pikkuse kontrollimisel veendumaks, et väärtus mahub andmebaasiväljale, pidage meeles, et kasutate õiget funktsiooni.

Võimalikud on kolm olukorda:

1. Kõige tõenäolisem juhtum: andmebaasi veerg on UTF-8, mille pikkus on määratletud unicode'i koodipunktides (nt mysql varchar(200) utf-8 andmebaasi jaoks).

// ok, kui php.ini default_charset väärtuseks on määratud UTF-8 (= vaikeväärtus)
mb_strlen ($väärtus);
iconv_strlen ($väärtus);
// alati ok
mb_strlen($väärtus, "UTF-8");
iconv_strlen($väärtus, "UTF-8");

// HALB, ära kasuta:
strlen(utf8_decode($väärtus)); // katkeb mõne mitmebaidise tähemärgi puhul
grafeme_strlen ($väärtus); // loeb grafeeme, mitte koodipunkte
?>

2. Andmebaasi veeru pikkus on määratletud baitides (nt Oracle'i VARCHAR2(200 BYTE))

// ok, aga eeldab, et mbstring.func_overload on 0 failis php.ini (= vaikeväärtus)
strlen ($väärtus);
// ok, jõud loetakse baitides
mb_strlen ($ väärtus, "8bit")
?>

3. Andmebaasi veerg on teises märgikomplektis (UTF-16, ISO-8859-1 jne...), mille pikkus on määratletud tähemärkides / koodipunktides.

Otsige üles kasutatud märgistik ja edastage see selgelt funktsioonile pikkus.

// ok, toetatud tähestikud:
mb_strlen ($väärtus, $märgisett);
// ok, toetatud tähestikud: https://www.gnu.org/software/libiconv/
iconv_strlen ($väärtus, $märgikomplekt);
?>

6 aastat tagasi

PHP strlen funktsioon käitub nullbaitide ("\0") käitlemise osas teisiti kui funktsioon C strlen.

PHP-s EI loeta stringi nullbaiti stringi lõpuks ja kõik nullbaidid sisalduvad stringi pikkuses.

Näiteks PHP-s:

strlen("te\0st") = 5

C-s tagastaks sama kõne 2.

Seega saab PHP funktsiooni strlen kasutada binaarstringis olevate baitide arvu leidmiseks (näiteks base64_decode'i tagastatud binaarandmed).

2 aastat tagasi

Siin on PALJU valeinformatsiooni, mida ma tahan parandada! Paljud inimesed on hoiatanud strlen() kasutamise eest, kuna see on "üliaeglane". Noh, see oli ilmselt tõsi PHP vanades versioonides. Aga PHP7 seisuga see" see pole kindlasti enam tõsi. Nüüd on SUPER kiire!

Lõin 20 00 000-baidise stringi (~ 20 megabaiti) ja kordasin tsüklina SAJA MILJONI KORDA. Iga tsükli iteratsioon tegi sellele väga-väga pikale stringile uue strlen().

Tulemus: 100 miljonit strlen()-kutset 20-megabaidilisel stringil võttis aega vaid 488 millisekundit. Ja strlen()-kutsed ei muutunud aeglasemaks/kiiremaks isegi siis, kui muutsin stringi väiksemaks või suuremaks. Strlen() oli üsna konstantse aja ülikiire operatsioon

Nii et kas PHP7 salvestab iga stringi pikkuse väljana, mida ta saab alati otsida, ilma et peaks märke lugema. Või salvestab strlen() tulemuse vahemällu, kuni stringi sisu tegelikult muutub. Mõlemal juhul ei tohiks te enam kunagi, KUNAGI muretseda strlen() jõudluse pärast. PHP7 seisuga on see ülikiire!

Siin on täielik võrdluskood, kui soovite seda oma masinas reprodutseerida:

$iteratsioonid = 100000000 ; // 100 miljonit
$str = str_repeat ( "0" , 20000000);

// etalonsilmus ja muutuja määramine tsükli üldkulude arvutamiseks
$algus = mikroaeg(tõene);
for($i = 0 ; $i< $iterations ; ++ $i ) {
$len = 0 ;
}
$lõpp = mikroaeg(tõene);
$loop_elapsed = 1000 * ($lõpp - $algus );

// benchmark strlen in a loop
$len = 0 ;
$algus = mikroaeg(tõene);
for($i = 0 ; $i< $iterations ; ++ $i ) {
$len = strlen ($str );
}
$lõpp = mikroaeg(tõene);
$strlen_elapsed = 1000 * ($end - $start );

// lahutada strlen() kiiruse arvutamisest silmuse üldkulud
$strlen_elapsed -= $loop_elapsed ;

echo "\nstringi pikkus: ( $len ) \ntest võttis aega: ( $strlen_elapsed ) millisekundit\n" ;

?>

5 aastat tagasi

Funktsioon limit_text($text, $limit = 100000000000) (
if (strlen ($text)< $limit) {
tagasta $tekst;
}
$lõhestatud_sõnad = explode(" ", $tekst);
$out = null;
foreach ($split_words kui $word) (
if ((strlen($word) > $limit) && $out == null) (
return substr($word, 0, $limit)."...";
}

Kui ((strlen($out) + strlen($word)) > $limit) (
tagasta $out . "...";
}
$out.=" " . $sõna;
}
tagastama $out;
}

echo limit_text("tere maailm lorem ipsum",10);

Veebisaidid võib jagada staatilisteks ja dünaamilisteks. Pärast HTML-i ja CSS-i valdamist, mis võimaldavad teil Internetis ilusat visiitkaarti teha, mõtlevad paljud, kuidas luua PHP-s dünaamiline veebisait. Samas peab küljendaja arvestama, et nüüd hakkab ta õppima veebiprogrammeerimist: saidiga töötamise põhimõtted on teised. Üks esimesi probleeme, millega PHP-i algaja silmitsi seisab, on stringidega töötamine, nende lugemine ja töötlemine.

Tasub tähele panna, et PHP-l on väga palju meetodeid, mistõttu tuleks nende õppimist alustada kõige lihtsamate manipulatsioonidega, nagu stringi väljastamine, otsimine, alamstringi hankimine või asendamine, tähtede muutmine ja stringi pikkuse tagastamine. Paljud funktsioonid ei tööta kirillitsa tähtedega hästi. Seetõttu on kõik näited selguse huvides kirjutatud inglise keeles. Kirillitsa stringide puhul kasutatakse samu funktsioone, kuid eesliitega mb_ (näiteks mb_strpos()). Enne analoogide kasutamist peate eemaldama faili php.ini rea kommentaarid, eemaldades lihtsalt semikooloni.

Stringi loomine ja väljastamine

Analüüsime stringi väljundit ekraanile, kasutades tuntud kajakeele konstruktsiooni. Programmeerija saab rea kohe väljastada:

kaja "See on uus rida"

või loo esmalt muutuja ja seejärel printige see ekraanile:

$str = "See on uus rida";

Kui teil on vaja kuvada mitu rida ühes, kasutage konkatenatsiooni:

kaja "See" . "Uus". "Joon";

$str1 = "See";

$str2 = "Uus";

$str3 = "String";

kaja $str1 . $str2 . $str3;

Viimasel juhul kuvatakse ekraan See on NewLine. Kaja helistamisel saab kohe lisada tühiku:

kaja $str1 . " ". $str2 . " ". $str3;

Sel juhul kuvatakse ekraanil: "See on uus rida." Konkateneerimine on võimalik mitte ainult väljundi ajal, vaid ka stringi loomisel:

$str1 = "See";

$str2 = "Uus";

$str3 = "String";

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

kaja $string;

Echo kuvab nii kirillitsat kui ka kirillitsat. Kui üks muutujatest sisaldas arvu, teisendatakse see arv konkateneerimise ajal vastavaks stringiks:

$summa = $i + $i; //nüüd sisaldab $summa numbrit 4

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

Ekraanil kuvatakse: "2 + 2 = 4".

Teenuse sümbolid

Oletame, et string on defineeritud väärtusega ($string = "Niisugune"). Siis saate täiesti ohutult kasutada juhtimisjadasid:

  • \n sooritab reavahetuse;
  • \r tagastab veo;
  • \" väldib jutumärke:
    • echo "String \"topelt\" jutumärkidega"; //Jutumärkidega string
  • \$ põgeneb dollari eest;
  • \\ väldib kaldkriipsu.

Jadasid on palju rohkem, need kõik leiate ametlikust PHP dokumentatsioonist.

Kuidas leida alamstringi esmakordse esinemise asukohta

Oletame, et meil on lihtne rida:

Meil on ka kaks rida nimedega:

$nimi = "Yemelyan";

$anotherName = "Katherine";

Peame teadma, kas esimene rida sisaldab neid kahte nime. Selleks kasutage funktsiooni strpos($str, $search). Tagastab otsitava alamstringi $search asukoha, kui see string sisaldub originaalis $str. Vastasel juhul tagastab funktsioon tõeväärtuse false. Näiteks strpos($string, $otherName) tagastab vale, strpos($string, $nimi) aga täisarvu. Kood on selline (versiooni kirjutame siis, kui positsioon kuvatakse ekraanil):

$string = "Minu nimi on Yemelyan ja ma olen 27-aastane";

$nimi = "Yemelyan";

$anotherName = "Katherine";

echo strpos($string, $teinenimi); //kuvatakse vale

echo strpos($string, $nimi); //trükib alamstringi esimese esinemiskoha asukoha

Pange tähele, et ridade nummerdamine algab nullist, see tähendab, et meie puhul kuvatakse viimasel real number 11 (loevad ka tühikud).

Alamstringi viimase esinemise asukoha ja lõkse leidmine

Kui funktsioon strpos() tagastab esimese esinemiskoha asukoha, siis selle pöördfunktsioon strrpos() otsib alamstringi viimast esinemist.

Nummerdamise alustamisega on seotud mõned lõksud. Seda tasub kaaluda: PHP-s võivad stringidega töötamist keeruliseks muuta võrdluspiirangud. Seega on parem mitte kasutada võrdlusoperaatorit eitusega: strpos($str, $search)!=false. Igas PHP versioonis ei pruugi sellise ekvivalentsusega näited õigesti töötada, kuna ridade nummerdamine algab nullist ja loogilises tõlgenduses on 0 vale. See kehtib ka funktsiooni strrpos() kohta.

Kuidas leida alamstringi esinemiste arvu

Sageli peate leidma mitte alamstringi esimese või viimase esinemiskoha asukoha stringis, vaid nende koguarvu. Selleks kasutage funktsiooni substr_count(), mis töötleb vähemalt kahte muutujat: substr_count($str, $search). Tagastab täisarvu. Kui on vaja otsinguala stringi võrra vähendada, siis edastatakse funktsioonile veel kaks muutujat: vastavalt stringi algus ja lõpp. See tähendab, et antud juhul nimetatakse funktsiooni järgmiselt: substr_count($str, $search, $start, $end). Funktsioon otsib alamstringi $search vahemikus $algus kuni $end lähtestringist $str. Kui stringi ei leita, tagastab funktsioon nulli.

Kuidas muuta PHP-s stringi väiketähti: näited

Suur- ja suurtähtede muutmist kasutatakse sageli stringide võrdlemiseks ja Oletame, et kasutaja peab programmis sisestama kõrgeima jumala nime. Seal on valik "Üks", millega võrreldakse kasutaja vastust. Kui sisestatud tekst ei ühti olemasolevaga (näiteks kasutaja kirjutab “üks” või “ÜKS”), tagastab programm tõese asemel false. Selle vältimiseks kasutatakse suurtähtede muutmise funktsiooni. Seda kasutatakse sageli siis, kui PHP saidil on sildid: sõna "personal" sadade variatsioonide ("Personal", "personal", "PERSONAL" jne) asemel on ainult üks väiketäht.

Funktsioon strtolower() muudab suur- ja väiketähti. Oletame, et seal on rida $catName = "Fluffy". Funktsioon strtolower($catName) tagastab stringi "fluffy". Saate muuta suurtähtede suurtähtedeks funktsiooni strtoupper() abil.

Kuidas leida PHP-s stringi pikkust: funktsioonidega töötamine

Sageli peate leidma stringi pikkuse. Näiteks PHP-s võib seda tüüpi stringidega töötamine olla vajalik tsükli loomisel. Stringi otsimiseks kasutage funktsiooni strlen(), mis tagastab numbri – märkide arvu. Me ei tohi unustada, et viimasel märgil on arv strlen($str)-1, kuna nummerdamine algab nullist.

Alamstringi hankimine ja asendamine PHP-s: stringidega töötamine

Alamstringi hankimine toimub funktsiooni substr() abil, millel võib olla kaks või kolm argumenti: substr($str, $start, $end). Oletame, et meil on $string = "Fluffy cat" ja me tahame saada alamstringi teisest kuni neljanda märgini. Kuna nummerdamine algab nullist, näeb selle alamstringiga muutuja välja selline: $newString = substr($string, 1, 4). Kui sisestame $newString = substr($string, 1), saame alamstringi teisest märgist viimaseni (st "luffy"). See kood on identne strlen(): substr($string, 1, strlen($string)) täieliku stringkoodiga.

Alamstringi asendamiseks kasutage funktsiooni str_replace(), mis võtab kolm muutujat: str_replace($subStr, $newSub, $str). Erinevalt paljudest funktsioonidest töötab str_replace() kirillitsa tähtedega õigesti ja sellel puudub eesliitega analoog. Näide:

$str = "Ilm on täna kohutav!";

$newStr = str_replace("kohutav", "imeline", $str); //Imeline ilm täna!

Stringi teisendamine arvuks

Kõik, kes õpivad veebiprogrammeerimist, peavad varem või hiljem stringi arvuks teisendama. Selleks kasutatakse kahte sarnast funktsiooni: intval() ja floatval(), millest igaüks võtab ühe $string muutuja. Need erinevad üksteisest ainult tagastatavate andmete tüübi poolest: intval() tagastab täisarvu ja floatval() ujukomaarvu.

Nii intval() kui ka floatval() kasutamiseks peab string algama numbritega ja need teisendatakse numbriteks. Kui numbritele järgneb mõni tähtede komplekt, siis neid lihtsalt ignoreeritakse. Kui string algab tähtedega, tagastab funktsiooni kasutamine nulli. Ideaalis peaks rida sisaldama ainult numbreid.

Arvu teisendamine stringiks

Sageli peate arvud teisendama stringiks. Ütle, kui teil on vaja võtta pool arvust ja teha see ruuduks (näiteks kontrollige, kas võrdus on tõene: 88 x 88 + 33 x 33 = 8833). Sel juhul kasutatakse strval() funktsiooni, mis tagastab stringi numbriga. Pärast seda saate uue stringiga teha kõiki muid toiminguid: muuta, otsida alamstringi esinemist ja muid funktsioone. Vajadusel saab stringi juba ülalkirjeldatud meetodil tagasi numbriks teisendada.

Artiklis vaadeldi vaid väikest osa kõigist stringidega seotud funktsioonidest. Mõned kirjeldamata funktsioonid töötavad sümbolitega, kuid enamik jäi spetsiifilisuse tõttu materjalist välja võtmata. Nende funktsioonidega tutvumiseks peaksite lugema ametlikku PHP dokumentatsiooni, mis kuvab uusimat teavet.

Lisab HTML-i reavahetuse koodi enne iga reavahetust

  • number_format – vormindab numbri rühmade eraldamisega
  • ord – tagastab märgi ASCII-koodi
  • parse_str – parsib stringi muutujateks
  • print – prindib stringi
  • printf
  • quoted_printable_decode – dekodeerib stringi, mis on kodeeritud tsiteeritud prinditava meetodiga
  • quotemeta – põgeneb erimärkidest
  • rtrim – eemaldab stringi lõpust tühikud
  • sha1 – tagastab stringi SHA1 räsi
  • sha1_file – tagastab faili SHA1 räsi
  • sarnane_tekst – arvutab kahe stringi sarnase astme
  • soundex – tagastab stringi soundexi klahvi
  • sprintf
  • sscanf – parsib stringi vastavalt etteantud vormingule
  • strcasecmp – tõstutundlik stringide võrdlus, mis on binaarselt ohutu
  • strcmp – binaarselt ohutu stringide võrdlus
  • strcoll – stringide võrdlemine praeguse lokaadi alusel
  • strcspn – tagastab stringi alguses oleva osa pikkuse, mis ei ühti maskiga
  • stripcslashes – eemaldab funktsiooni addcslashes() tekitatud märkide vältimise
  • stripos – tagastab alamstringi esimese esinemiskoha asukoha, tõstutundlik
  • ribakriipsud – eemaldab addslashes()
  • strip_tags – eemaldab stringist HTML- ja PHP-sildid
  • stristr – sarnane funktsiooniga strstr, kuid on tõstuvaba
  • strlen – tagastab stringi pikkuse
  • strnatcasecmp – võrdlege algoritmi kasutades tõstutundlikke stringe
  • strnatcmp – stringide võrdlemine "loomuliku järjestuse" algoritmi abil
  • strncasecmp
  • strncmp – tõstutundlik, binaarselt turvaline stringide esimese n tähemärgi võrdlus
  • strpos – otsib alamstringi esimest korda stringis
  • strhrchr
  • strrev – pöörab stringi ümber
  • strripos – tagastab alamstringi viimase esinemiskoha asukoha, tõstutundlik
  • strrpos – otsib tähemärgi viimase esinemissageduse stringis
  • strspn – tagastab maskile vastava stringi alguses oleva osa pikkuse
  • strstr – Otsib alamstringi esimese esinemise
  • strtok – lõhestab stringi
  • strtolower – teisendab stringi väiketähtedeks
  • strtoupper – teisendab stringi suurtähtedeks
  • strtr – teisendab antud märgid
  • str_ireplace – funktsiooni str_replace() tõstutundlik variant.
  • str_pad – polsterdab stringi teatud pikkusega teise stringiga
  • str_repeat – tagastab korduva stringi
  • str_replace – asendab otsingustringi asendusstringiga
  • str_rot13 – teostab stringil ROT13 teisenduse
  • str_shuffle – segab tähemärke stringis
  • str_split – teisendab stringi massiiviks
  • str_word_count – tagastab teabe stringis olevate sõnade kohta
  • substr – funktsioon tagastab osa stringist
  • alamstringi_arv – loendab alamstringi esinemiste arvu stringis
  • substr_replace – asendab osa stringist
  • trimmi – eemaldab tühikud stringi algusest ja lõpust
  • ucfirst – teisendab stringi esimese märgi suurtähtedeks
  • ucwords – teisendab stringi iga sõna esimese tähe suurtähtedeks
  • vprintf – prindib vormindatud stringi
  • vsprintf – tagastab vormindatud stringi
  • sõnamurdmine – murrab rea etteantud arvu tähemärkide jaoks, kasutades reavahetusmärki
  • Võrdlusoperaatorite omadused stringidele rakendatuna.

    $üks = 1; // Number üks. $ null = 0; // Määrake arv null. if ($ üks == "") kaja 1; // Ilmselgelt ei ole võrdne - ei väljasta 1. if ($zero == "") echo 2; //* Tähelepanu! Vastupidiselt ootustele trükib see 2! if ("" == $null) kaja 3; //* Ja seegi ei aita – prindib!.. if ("$zero" == "") echo 4; // Just nii. if (strval($null) == "") kaja 5; // See on ka õige - ei trüki 5. if ($zero === "") echo 6; // Parem viis, kuid ei tööta PHP 3-s.

    hakkima ()

    Funktsioon chop() tagastab stringi pärast tühikute ja reavahetuste eemaldamist. Funktsiooni chop() süntaks on:

    string chop (string string)

    Järgmises näites eemaldab funktsioon chop() lisaread:

    $header = "Sisukord\n\n"; $päis = chop($header); // $header = "Sisukord"

    str_pad()

    Funktsioon str_pad() polsterdab stringi etteantud tähemärkidega teatud pikkuseks ja tagastab vormindatud stringi. Funktsiooni str_pad() süntaks:

    string string_pad (string string, int pad_length [, string pad [, int pad_type]])

    Kui valikulist polsterdamisparameetrit pole määratud, täidetakse string tühikutega. Vastasel juhul on string täidetud antud tähemärkidega. Vaikimisi on joon paremal pool polsterdatud; siiski saate edastada parameetri padding_type STR_PAD_RIGHT, STR_PAD_LEFT või STR_PAD_BOTH, mis polsterdab rida määratud suunas. Näide demonstreerib stringi täitmist funktsiooniga str_pad() vaikeparameetritega:

    $toit = ​​"salat"; print str_pad ($food, 5): // Trükib stringi "salad" Järgmises näites kasutatakse funktsiooni str_pad() valikulisi parameetreid: $header = "Sisukord" print str_pad ($header, 5, "= +=+=" , STR_PAD_BOTH); // Brauser kuvab rea =+=+= Sisukord=+=+="

    trimmi ()

    Funktsioon trim() eemaldab stringi mõlemast otsast tühimikud ja tagastab saadud stringi. Funktsiooni trim() süntaks on:

    stringi trimmimine (stringi riik]

    Eemaldatud tühikud hõlmavad erimärke \n, \r, \t, \v ja \0.

    ltrim()

    Funktsioon lrim() eemaldab kõik tühikud ja erimärgid stringi vasakust servast ning tagastab saadud stringi. Funktsiooni ltrim() süntaks:

    string ltrim (string string)

    Funktsioon eemaldab samad erimärgid kui funktsioon trim().

    strlen()

    Stringi pikkuse määramine

    Stringi pikkust tähemärkides saab määrata funktsiooni strlen() abil. Funktsiooni strlen() süntaks:

    int strlen (string string)

    Järgmine näide näitab, kuidas määrata stringi pikkust funktsiooni strlen() abil:

    $string = "tere"; $pikkus = strlen($string); // $pikkus = 5

    Kahe stringi võrdlemine

    Kahe stringi võrdlemine on mis tahes keeles üks olulisemaid stringitehinguid. Kuigi seda probleemi saab lahendada mitmel erineval viisil, on PHP-s neli stringivõrdlusfunktsiooni:

    strcmp()

    Funktsioon strcmp() võrdleb kahte stringi tõstutundlikul viisil. Funktsiooni strcmp() süntaks: int strcmp (string string1, string string2)

    Kui võrdlus on lõpetatud, tagastab strcmp() ühe kolmest võimalikust väärtusest:

    • 0, kui rida1 ja rida2 on samad;
    • < 0, если строка1 меньше, чем строка2;
    • > 0, kui string2 on väiksem kui string1.

    $sthng1 = "või"; $string2 = "või"; if ((strcmp($string1. $string2)) == 0) : print "Stringid on samaväärsed!"; endif; // Käsk if tagastab TRUE

    strcasecmp()

    Funktsioon strcasecmp() töötab täpselt samamoodi nagu strcmp(), välja arvatud üks erand – võrdluses ei võeta arvesse märkide suur- ja väiketähti. Funktsiooni strcasecmp() süntaks on:

    int strcasecmp (string string1, string string2)

    Järgmine väljavõte võrdleb kahte identset stringi:

    $string1 = "või"; $string2 = "või"; if ((strcmp($string1, $string2)) == 0) : print "Stringid on samaväärsed!"; endif; // Käsk if tagastab TRUE

    strspn()

    Funktsioon strspn() tagastab string1 esimese segmendi pikkuse, mis sisaldab string2 märke. Funktsiooni strspn() süntaks on:

    int strspn (string string1, string string2)

    Järgmine väljavõte näitab, kuidas funktsiooni strspn() kasutatakse parooli kinnitamiseks:

    $parool = "12345"; if (strspn($parool, "1234567890") != strlen($parool)) : print "Parool ei saa koosneda ainult numbritest!"; endif:

    strcspn()

    Funktsioon strcspn() tagastab string1 esimese segmendi pikkuse, mis sisaldab märke, mida string2 ei sisalda. Funktsiooni strcspn() süntaks:

    int strcspn (string string1, string string2)

    Järgmine fragment kasutab parooli kontrollimiseks funktsiooni strcspn().

    $parool = "12345"; if (strcspn($parool, "1234567890") == 0) : print "Parool ei saa koosneda ainult numbritest!"; endif;

    Stringiandmete töötlemine regulaaravaldisi kasutamata

    Suure hulga teabe töötlemisel aeglustavad regulaaravaldise funktsioonid oluliselt programmi täitmist. Neid funktsioone tuleks kasutada ainult suhteliselt keerukate stringide töötlemisel, kus regulaaravaldised on tõesti vajalikud. Kui tekstianalüüs tehakse suhteliselt lihtsate reeglite järgi, saab kasutada tavalisi PHP funktsioone, mis kiirendavad oluliselt töötlemist. Kõiki neid funktsioone kirjeldatakse allpool.

    strtok()

    Funktsioon strtok() jagab stringi märkideks, kasutades teise parameetriga määratud eraldajaid. Funktsiooni strtok() süntaks on:

    string strtok (string string, stringide eraldajad)

    Funktsioonil strtok() on üks kummaline asi: stringi täielikuks poolitamiseks tuleb funktsiooni mitu korda järjest välja kutsuda. Järgmisel funktsiooni kutsumisel ekstraheerib see stringist järgmise märgi. Sel juhul määratakse stringi parameeter ainult üks kord - funktsioon jälgib stringi praegust asukohta, kuni string on täielikult sõelutud tunnusteks või määratakse uus stringi parameeter. Järgmine näide demonstreerib stringi tükeldamist mitme eraldaja abil:

    $info = "WJ Gi1veel: [e-postiga kaitstud]| Columbus, Ohio"; // Eraldajad – koolon (:), vertikaalriba (|) ja koma (.) $tokens = ":|,"; $tokenized = strtok($info, $tokens); // Massiivi elementide printimine $tokenized while ($tokenized) : echo "Element = $tokenized
    "; // Pange tähele, et järgmised väljakutsed strtokile // ei edasta esimest argumenti $tokenized = strtok($tokens); endwhile; Tulemus: Element = WJGilmore Element = [e-postiga kaitstud] Element = Columbuse element = Ohio

    parse_str()

    Funktsioon parse_str() analüüsib paare stringis ja määrab väärtused muutujatele praeguses ulatuses. Funktsiooni parse_str() süntaks:

    void parse_str (stringistring)

    Funktsioon parse_str() on eriti kasulik HTML-vormi andmeid või muud rikkalikku teavet sisaldavate URL-ide sõelumisel. Järgmine näide analüüsib URL-i kaudu edastatud teavet. String on standardne viis andmete edastamiseks lehtede vahel, mis on koostatud hüperlingiks või sisestatud HTML-vormingusse:

    $url = "fname=wj&lname=gilmore&zip=43210"; parse_str($url); // Pärast parse_str() käivitamist on saadaval järgmised muutujad: // $fname = "wj": // $lname = "gilmore"; // $zip = "43210"

    Kuna see funktsioon on loodud töötama URL-idega, eirab see tähemärki ampersand (&).

    plahvatada ()

    Funktsioon explode() jagab stringi elementideks ja tagastab need elemendid massiivina. Explode() funktsiooni süntaks:

    massiivi plahvatus (stringi eraldaja, string string [, int lävi])

    Jagamine toimub igal eraldaja eksemplaril ja tekkivate fragmentide arvu saab piirata valikulise läviparameetriga.

    Funktsioon explode() demonstreerib stringi tükeldamist järgmises näites:

    $info = "wilson | pesapall | indiaanlased"; $kasutaja = explode("|", $info); // $kasutaja = "wilson"; // $user = "pesapall"; // $user = "Indiaanlased";

    Funktsioon explode() on peaaegu identne ülalkirjeldatud POSIX regulaaravaldise funktsiooniga split(). Peamine erinevus seisneb selles, et regulaaravaldiste edastamine parameetritena on lubatud ainult split() kutsumisel.

    implode ()

    Kui funktsioon explode() jagab stringi massiivielementideks, liidab selle vaste funktsioon implode() massiivi stringiks. Funktsiooni Implode() süntaks:

    string implode (stringi eraldaja, massiivi fragmendid)

    Massiivist stringi moodustamist demonstreeritakse järgmises näites:

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

    Implode() omab varjunime, funktsioon join().

    strpos()

    Funktsioon strpos() leiab stringist antud alamstringi esimese eksemplari. Funktsiooni strpos() süntaks:

    int strpos (stringistring, stringi alamstring [, int nihe])

    Valikuline nihkeparameeter määrab asukoha, millest otsing peaks algama. Kui alamstringi ei leita, tagastab strpos() FALSE (0).

    Järgmine näide määrab kuupäeva esimese esinemise asukoha logifailis:

    $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"; // Millises positsioonis ilmub ajakirjas esmakordselt aasta 1999? $pos = strpos($log, "1999"); // $pos = 95. kuna "1999" esimene esinemisjuht // on $log muutujas sisalduva rea ​​positsioonil 95

    strpos()

    Funktsioon strrpos() leiab stringist antud märgi viimase eksemplari. Funktsiooni strrpos() süntaks on:

    int strpos (string, tähemärk)

    Võimaluste poolest on see funktsioon halvem kui selle vaste - funktsioon strpos(), kuna see võimaldab otsida ainult ühte märki, mitte kogu stringi. Kui string edastatakse strrpos(ile) teise parameetrina, kasutatakse otsingus ainult selle esimest märki.

    str_replace()

    Funktsioon str_replace() otsib stringist kõik antud alamstringi esinemised ja asendab need uue alamstringiga. Funktsiooni str_replace() süntaks:

    string str_replace (stringi alamstring, stringi asendamine, stringi string)

    Funktsioon substr_replace(), mida selles jaotises hiljem kirjeldatakse, võimaldab asendada ainult kindla osa stringist. Järgmine näitab, kuidas funktsiooni str_replace() kasutatakse stringi globaalse asendamise teostamiseks.

    Kui alamstringi stringis kunagi ei kuvata, jäetakse algne string muutmata:

    $favorite_food = "Minu lemmiktoidud on jäätis ja kanatiivad"; $lemmiktoit = ​​str_replace("kana_tiivad", "pitsa", $lemmiktoit); // $favorite_food = "Minu lemmiktoidud on jäätis ja pitsa"

    strstr()

    Funktsioon strstr() tagastab stringi osa, mis algab antud alamstringi esimese esinemisega. Funktsiooni strstr() süntaks:

    string strstr (string string, stringi alamstring)

    Järgmine näide kasutab funktsiooni strstr() domeeninime ekstraheerimiseks URL-ist:

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

    substr()

    Funktsioon substr() tagastab stringi osa, mis algab antud lähtepositsioonist ja on etteantud pikkusega. Funktsiooni Substr() süntaks:

    string substr (string string, int algus [, int pikkus])

    Kui valikulist pikkuse parameetrit pole määratud, eeldatakse, et alamstring algab määratud alguskohast ja jätkub stringi lõpuni. Selle funktsiooni kasutamisel tuleb arvestada nelja asjaga.

    • kui algusparameeter on positiivne, algab tagastatav alamstring antud arvuga rea ​​kohast;
    • kui algusparameeter on negatiivne, algab tagastatav alamstring positsioonist (stringi pikkus - algus);
    • Kui pikkus on positiivne, sisaldab tagastatav alamstring kõiki märke algusest alguseni + pikkus. Kui viimane väärtus ületab stringi pikkuse, tagastatakse tähemärgid kuni stringi lõpuni;
    • kui pikkus on negatiivne, lõpeb tagastatav alamstring määratud kaugusel stringi lõpust.

    Pidage meeles, et algusparameeter määrab nihke rea esimesest märgist; nii et tagastatav string algab tegelikult märginumbriga (algus + 1).

    Järgmine näide demonstreerib substr() alamstringi alamstringi:

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

    Näide positiivse pikkuse parameetriga:

    $auto = "1944 Ford"; $mudel = substr($auto, 0, 4); // $model = "1944" Näide negatiivse pikkuse parameetriga: $car = "1944 Ford"; $mudel = substr($auto, 2, -5); // $mudel = "44"

    substr_count()

    Funktsioon substr_count() tagastab alamstringi esinemiste arvu antud stringis. Funktsiooni substr_count() süntaks on: int substr_count (string string, stringi alamstring) Järgmises näites loeb funktsioon substr_count() alamstringi ain esinemiste arvu: $tng_twist = "Vihma sajab peamiselt tasandikel Hispaaniast"; $count = substr_count($tng_twist, "ain"); // $count = 4

    substr_replace()

    Funktsioon substr_replace() asendab selle osa stringist, mis algab antud kohast. Valikulise pikkuseparameetri määramisel asendatakse määratud pikkusega fragment; vastasel juhul tehakse asendus kogu asendusstringi pikkuses. Funktsiooni substr_replace() süntaks on:

    string substr_replace (stringistring, stringi asendus, int algus [, int pikkus])

    Alguse ja pikkuse parameetrid määratakse teatud reeglite järgi:

    • kui stardiparameeter on positiivne, algab asendus määratud positsioonist;
    • kui stardiparameeter on negatiivne, algab asendus positsioonist (stringi pikkus -start);
    • kui pikkuse parameeter on positiivne, asendatakse määratud pikkusega fragment;
    • kui pikkus on negatiivne, lõpeb asendus asendis (stringi pikkus -pikkus).

    Lihtne teksti asendamine substr_replace() abil on näidatud järgmises näites:

    $favs = " "lemmiklingid"; $name = "Alessia"; // Parameetrid "0, 0" tähendavad, et asendatav fragment algab // ja lõpeb rea esimeses positsioonis. $favs - substr_replace( $lemmikud, $nimi , 0, 0);

    Tulemus:

    Alessia lemmiklingid

    Stringide ja failide teisendamine HTML-vormingusse ja vastupidi

    Stringi või terve faili teisendamine veebibrauseris vaatamiseks sobivasse vormingusse (või vastupidi) on lihtsam, kui esmapilgul võib tunduda. PHP-l on selleks spetsiaalsed funktsioonid.

    Teksti teisendamine HTML-iks

    Lihtteksti kiire teisendamine veebibrauseri vormingusse on väga levinud ülesanne. Selles jaotises kirjeldatud funktsioonid aitavad teil seda lahendada.

    nl2br()

    Funktsioon nl2br() asendab kõik reavahetuse märgid (\n) samaväärsete HTML-i konstruktsioonidega.

    Funktsiooni nl2br() süntaks:

    string nl2br (string string)

    Reavahetuse märgid võivad olla kas nähtavad (st sõnaselgelt reale kaasatud) või nähtamatud (näiteks redaktorisse sisestatud). Järgmine näide teisendab tekstistringi HTML-vormingusse, asendades \n märgid reavahetustega:

    // Redaktoris kuvatav tekstistring. $text_recipe = "Peokastme retsept: 1 purk hautatud tomateid 3 spl värsket sidrunimahla Segage, serveerige külmana."; // Reavahetuste teisendamine
    $htinl_recipe = nl2br($text_recipe) Režiimi $html_recipe järgnev väljund tagastab brauserisse järgmise HTML-teksti: Party Sauce'i retsept:
    1 purk hautatud tomateid
    3 spl värsket sidrunimahla
    Sega kokku, serveeri külm.

    htmlentities()

    Funktsioon htmlentities() teisendab märgid samaväärseteks HTML-konstruktsioonideks. Funktsiooni htmlentities süntaks on:

    string html-olemid (string string)

    Järgmises näites asendatakse brauserisse väljastamiseks vajalikud stringimärgid:

    $user_input = "Kokaraamat Cafe Francaise" maksab

    Funktsioon htmlentities() töötab praegu ainult ISO-8559-1 (ISO-Latin-1) kodeeringumärkide puhul. Samuti ei teisenda see tühikuid ootuspäraseks.

    htmlspecialchars()

    Funktsioon htmlspecialchars() asendab teatud märgid, millel on HTML-i kontekstis eriline tähendus, samaväärsete HTML-konstruktsioonidega. Funktsiooni htmlspecialchars() süntaks:

    string htmlspecialchars (string string)

    Funktsioon html special chars() teisendab praegu järgmised märgid: & teisendab &; " " teisendatakse " "; teisendatakse >.

    Täpsemalt aitab see funktsioon takistada kasutajatel interaktiivsetes veebirakendustes (nt veebifoorumites) HTML-märgistust sisestamast. Vead HTML-i märgistuses võivad põhjustada kogu lehe valesti moodustamise. Sellele probleemile on aga tõhusam lahendus – eemaldage stringist täielikult sildid, kasutades funktsiooni strip_tags().

    Järgmine näide demonstreerib potentsiaalselt ohtlike märkide eemaldamist funktsiooni htmlspeclalchars() abil:

    $user_input = "Ma lihtsalt ei saa PHP ja need vapustavad toiduvalmistamise retseptid!"; $conv_input = htmlspecialchars($user_input); // $conv_input = "Ma lihtsalt ei saa"<> PHP ja need vapustavad toiduvalmistamise retseptid!"

    Kui funktsiooni htmlspecialchars() kasutatakse koos funktsiooniga nl2br(), siis viimast tuleks kutsuda htmlspecialchars() järgi. Muidu kujundused
    , mis genereeritakse nl2br() kutsumisel, teisendatakse nähtavateks tähemärkideks.

    get_html_translation_table()

    Funktsioon get_html_translation_table() pakub mugavat vahendit teksti teisendamiseks HTML-i ekvivalentideks Funktsiooni get_htrril_translation_table() süntaks on:

    string get_html_translation_table (int tabel)

    Funktsioon get_html_translation_table() tagastab ühe kahest tõlketabelist (määratletud tabeli parameetriga), mida kasutatakse standardsete funktsioonide htmlspecialchars() ja htmlentities() töös. Tagastusväärtust saab kasutada koos teise standardfunktsiooniga strtr(), et teisendada teksti HTML-koodiks.

    Tabeli parameeter võtab ühe kahest väärtusest:

    • HTML_ENTITIES;
    • HTML_SPECIALCHARS.

    Järgmine näide kasutab teksti teisendamiseks HTML-iks funktsiooni get_html_translation_table().

    $string = "La pasta e il piatto piu amato in Italia"; $tõlge = hanki_html_tõlketabel(HTML_ENTITIES); print strtr($string, $tõlgi); // Erimärgid teisendatakse HTML-i konstruktsioonideks // ja renderdatakse brauseris õigesti.

    Muide, funktsioon array_flip() võimaldab teisendada teksti HTML-iks vastupidises suunas ja taastada algse teksti. Oletame, et selle asemel, et trükkida eelmise näite strtr() tulemus, määrasime selle muutujale $translated string.

    Järgmises näites taastatakse algne tekst funktsiooni array_flip() abil:

    $tõlge = massiiv_flip($tõlkimine); $translated_string – "La pasta é il piatto piú amato in Italia"; $original_string = strtr($tõlgitud_string, $tõlgi); // $original_string = "La pasta e il piatto piu amato in Italia";

    strtr()

    Funktsioon strtr() tõlgib stringi, st asendab kõik lähtestringis olevad märgid sihtstringi vastavate märkidega. Funktsiooni strtr() süntaks on:

    string strtr (stringistring, stringi allikas, stringi sihtkoht)

    Kui lähte- ja sihtstringid on erineva pikkusega, kärbitakse pikk string, et see sobiks lühikese stringiga.

    Kahe parameetriga strtr() kutsumiseks on alternatiivne süntaks; sel juhul sisaldab teine ​​parameeter assotsiatiivset massiivi, mille võtmed vastavad asendatavatele alamstringidele ja mille väärtused vastavad asendavatele alamstringidele. Järgmine näide asendab HTML-i sildid XML-i sarnaste konstruktsioonidega:

    " => "

    ", "" => "

    "); $string = "

    Täna PHP-toega uudistes

    "; print strtr($string, $source); // Trükib stringi " Täna PHP-põhistes uudistes" ?>

    Teisendage HTML lihttekstiks

    Mõnikord peate teisendama HTML-faili lihttekstiks. Allpool kirjeldatud funktsioonid aitavad teil seda ülesannet täita.

    strip_tags()

    Funktsioon strip_tags() eemaldab stringist kõik HTML- ja PHP-sildid, jättes sinna ainult teksti. Funktsiooni strip_tags() süntaks on:

    string strip_tags (string string [, string lubatud_terri])

    Valikuline parameeter enabled_tags võimaldab teil määrata sildid, mis tuleks kustutamise ajal vahele jätta.

    Allpool on näide kõigi HTML-märgendite eemaldamise kohta stringist, kasutades strip_tags():

    $user_input = "Ma lihtsalt armastus PHP ja gurmaan retseptid!"; $stripped_input = strip_tags($user_input); // $stripped_input = "Ma lihtsalt armastan PHP-d ja gurmeeretsepte!";

    Järgmine näide ei eemalda mitte kõiki, vaid ainult mõningaid silte.

    $input = "I armastus juurde sööma!!"; $riba_sisend = riba_sildid ($kasutaja_sisend, " "); // $strip_input = "Mulle meeldib sööma!!";

    Tekstist siltide eemaldamine toimub ka funktsiooni fgetss() abil.

    get_meta_tags()

    Kuigi funktsioon get_meta_tags() ei ole otseselt seotud teksti teisendamisega, on see väga kasulik funktsioon, mis väärib mainimist. Funktsiooni Get_meta_tags() süntaks:

    massiiv get_meta_tags (string faili_nimi/URL [, int include_path])

    Funktsioon get_meta_tags() on mõeldud META-siltide otsimiseks HTML-failist.

    META-sildid sisaldavad teavet lehe kohta, mida kasutavad peamiselt otsingumootorid. Need sildid on sildipaari sees... . META-siltide kasutamist demonstreeritakse järgmises lõigus (nimetagem seda example.html, sest seda kasutatakse loendis 8.2): PHP retseptid Funktsioon get_meta_tags() otsib dokumendi peast silte, mis algavad sõnaga META ja salvestab sildinimed ja nende sisu assotsiatiivses massiivis. Loend 8.2 demonstreerib seda funktsiooni, mis on rakendatud failile example.html. Loetelu 8.2. META-märgendite ekstraheerimine HTML-failist, kasutades funktsiooni get_meta_tags()

    $meta_tags = get_meta_tags("example.html"): // Muutuja $meta_tags sisaldab massiivi järgmise teabega: // $meta_tags["keywords"] = "PHP, kood, retseptid, veeb" // $meta_tags[ "description" ] = "PHP teave" // $meta_tags["author"] = "KDG";

    Huvitav detail: META-siltide andmeid saab ekstraheerida mitte ainult serveris asuvatest failidest, vaid ka muudest URL-idest.

    Teisendage string suur- ja väiketähtedeks

    PHP-s on neli funktsiooni, mis on loodud stringi suur- ja suurtähtede muutmiseks:

    strtolower()

    Funktsioon strtolower() teisendab kõik stringis olevad tähemärgid väiketähtedeks. Funktsiooni strtolower() süntaks on:

    string strtolower (string string)

    Funktsioon ei muuda mittetähestikulisi märke. Stringi teisendamist väiketähtedeks funktsiooni strtolower() abil demonstreeritakse järgmises näites:

    $sentence = "PHP TOOTMINE ja PROGRAMMEERIMINE on minu KAKS lemmikut!"; $lause = strtolower($lause); // Funktsioonikutse järel sisaldab $lause stringi // "cooking and programming php are my two favorites!"

    strtoupper ()

    Stringe saab teisendada mitte ainult väiketähtedeks, vaid ka suurtähtedeks. Teisenduse teostab funktsioon strtoupper(), millel on järgmine süntaks:

    string strtoupper (string string)

    Funktsioon ei muuda mittetähestikulisi märke. Stringi teisendamist suurtähtedeks funktsiooni strtoupper() abil demonstreeritakse järgmises näites:

    $sentence = "toiduvalmistamine ja PHP programmeerimine on minu kaks lemmikut!"; $lause = strtoupper($lause); // Funktsiooni kutsumise järel sisaldab $lause stringi // "PHP VALMISTAMINE JA PROGRAMMEERIMINE ON MINU KAHE LEMMIK!"

    ucfirst()

    Funktsioon ucfirst() teisendab stringi esimese märgi suurtähtedeks eeldusel, et see on tähestikuline märk. Funktsiooni ucfirst() süntaks:

    string ucfirst (string string)

    Funktsioon ei muuda mittetähestikulisi märke. Stringi esimese märgi teisendamist funktsiooni ucfirst() abil on näidatud järgmises näites:

    &sentence = "Toiduvalmistamine ja PHP programmeerimine on minu kaks lemmikut!"; $lause = ucfirst($lause); // Funktsioonikutse järel sisaldab $lause stringi // "Toiduvalmistamine ja programmeerimine PHP on minu kaks lemmikut!"

    ucwords()

    Funktsioon ucwords() teisendab stringis iga sõna esimese tähe suurtähtedeks. Funktsiooni ucwords() süntaks:

    string ucwords (string string")

    Funktsioon ei muuda mittetähestikulisi märke. "Sõna" määratletakse kui tähemärkide jada, mis on teistest stringi elementidest tühikutega eraldatud. Järgmine näide näitab, kuidas funktsioon ucwords() teisendab sõnade esimesed tähemärgid:

    $sentence = "toiduvalmistamine ja PHP programmeerimine on minu kaks lemmikut!"; $lause = ucwords($lause); // Funktsioonikutse järel sisaldab $lause stringi // "Toiduvalmistamine ja programmeerimine PHP on minu kaks lemmikut!"

    strhr()

    strrchr("string", "o") – otsib alamstringi viimase esinemise

    Kui alamstringi ei leitud, tagastab FALSE.

    Erinevalt strchr()-st, kui otsingustring koosneb rohkem kui ühest märgist, kasutatakse ainult esimest märki.

    Kui teine ​​parameeter ei ole string, kantakse see täisarvuks ja käsitletakse märgikoodina.

    // hankige $PATH viimane kataloog $dir = substr(strrchr($PATH, ":"), 1); // hanki kõik pärast viimast reavahetust $text = "1. rida\n2. rida\n3. rida"; $viimane = substr(strrchr($tekst, 10), 1);

    highlight_string()

    highlight_string – esiletõstu stringi süntaks.

    segatud highlight_string (string str [, bool return])

    Funktsioon highlight_string() väljastab str süntaksivärvilise versiooni, kasutades PHP sisseehitatud süntaksi esiletõstmises määratletud värve.

    Kui teine ​​tagastusparameeter on TRUE, tagastab highlight_string() esiletõstetud koodi versiooni selle printimise asemel stringina. Kui teine ​​parameeter ei ole TRUE, tagastab highlight_string() edu korral väärtuse TRUE ja ebaõnnestumise korral FALSE.

    Märkus: 1.tagastusparameeter sai kättesaadavaks alates PHP 4.2.0-st. Enne seda töötas nagu vaikimisi, st. VALE.
    2. Funktsioon Highlight_String() eristab PHP-koodi siltide järgi. show_source()- sünonüüm highlight_file(). Vaikimisi esiletõstmise värvi muutmiseks kasutage järgmisi PHP direktiive:

    Highlight.bg #FFFFFF highlight.comment #FF8000 highlight.default #0000BB highlight.html #000000 highlight.keyword #007700 highlight.string #DD0000 .htaccessis: php_flag highlight.bg #FFFFFF PHP-s: if(@ini_get("highlight .bg")=="") ...

    kaldkriipsud ()

    - põgeneb stringi erimärkidest

    Tagastab stringi, mille iga erimärgi ette on lisatud kaldkriips (\), näiteks selle stringi hilisemaks kasutamiseks andmebaasipäringus.

    Ühe jutumärk ("), topeltjutuaar ("), kaldkriips (\) ja NUL (NULL bait) on paomärk.

    $str = "Kas teie nimi on O"reilly?"; // väljundid: Kas teie nimi on O\"reilly? echo addslashes($str);

    kaldkriipsud

    - Eemaldab funktsiooni addslashes() tekitatud vältekriipsud. Eemaldab kaldkriipsud. (\" teisendatakse " jne). Topeltkaldkriipsud (\\) teisendatakse üksikuteks kaldkriipsudeks (\).

    wordwrap()

    Murdab rea etteantud arvu tähemärkide jaoks reavahetuse abil // Wordwrap() kasutamine. funktsioon tsita($meietekst, $maxlen=60, $prefix="> ") ( $st = sõnamurdmine($meietekst, $maxlen-strlen($prefix), "\n"); $st = $prefix.str_replace( "\n", "\n$prefix", $st return $st echo cite("Esimene Matrix, mille ma kujundasin, oli loomulikult täiuslik, see oli täiuslik kunstiteos. Selle hukatuse paratamatus on mulle praegu ilmne igale inimesele omase ebatäiuslikkuse tagajärjel ebaõnnestumine.", 20);

    > Esimene Matrix, mille ma kujundasin, oli täiesti > loomulikult > täiuslik, see oli > kunstiteos - > veatu, ülev. > triumf > võrdus > selle monumentaalne > läbikukkumine. Selle hukatuse paratamatus on mulle praegu ilmne igale inimesele omase ebatäiuslikkuse tagajärjena. , > Ma > kujundasin selle ümber teie ajaloo põhjal, et kajastada täpsemalt teie olemuse varieerumist. > Ma olin aga > jälle > pettunud > ebaõnnestumise pärast.


    Loe lisaks: Objektide programmeerimine PHP-s
    .

    pikkus tähemärkides (7)

    => string(141) tähendab, et $message on massiiv, seega tuleks teha strlen($message)< 141 ...

    Mul on string, mis on 141 tähemärki pikk. Kasutades järgmist koodi, on mul if-lause sõnumi tagastamiseks, kui string on suurem või väiksem kui 140.

    Libxml_use_internal_errors(TRUE); $dom = uus DOMDokument(); $dom->loadHTMLFile($source); $xml = simplexml_import_dom($dom); libxml_use_internal_errors(FALSE); $sõnum = $xml->xpath("//div[@class="contest"]"); if (strlen($message)< 141) { echo "There Are No Contests."; } elseif(strlen($message) >142) ( kaja "On üks aktiivne võistlus."; )

    Ma kasutasin var_dump sõnumis $message ja see näitab string => string(141), see on minu probleem. Kui muudan if-lause numbrid väärtuseks<130 и>131, tagastab see ikkagi 1. sõnumi, kuigi rida on suurem kui 131. Olenemata sellest, millist numbrit ma kasutan, mis on väiksem kui 141, saan alati vastuse "No contest". tuli minu juurde tagasi.

    => string(141) tähendab, et $message on massiiv, mitte string ja $message on 141 tähemärgi pikkune string

    xpath ei tagasta stringi. See tagastab massiivi xml-elementidega, mida saab stringile saata.

    If (count($message)) (if (strlen((string)$teade)< 141) { echo "There Are No Contests."; } else if(strlen((string)$message) >142) ( kaja "On üks aktiivne võistlus."; ) )

    proovige selle asemel üldist süntaksit:

    Kui (strlen($message)<140) { echo "less than 140"; } else if (strlen($message)>140) ( kaja "üle 140"; ) else ( kaja "täpselt 140"; )

    Sest $xml->xpath tagastab alati massiivi , strlen ootab rida .

    Mul oli sellega probleeme ja lõpuks otsustasin luua oma lahenduse. Ilma regulaaravaldise mootorit kasutamata:

    Funktsioon sisaldab($tekst, $sõna) ( $leitud = false; $spaceArray = explode(" ", $tekst); $nonBreakingSpaceArray = explode(chr(160), $text); if (in_array($word, $spaceArray ) || in_array($word, $nonBreakingSpaceArray)) ( $leitud = true; ) tagastab $leitud )

    Võite märgata, et eelmised lahendused ei ole lahendus sõna kasutamisele teise eesliitena. Teie näite kasutamiseks:

    $a = "Kuidas läheb?"; $b = "vöökohast laienev seelik"; $c = "on";

    Ülaltoodud näidete puhul sisaldavad nii $a kui ka $b $c , kuid võite soovida, et funktsioon ütleks teile, et ainult $a sisaldab $c .