Php pakeitimų eilutėje pakeitimas. PHP šablono pintinė. Obrobka zminnyh eilėse

Šią valandą PHP yra viena populiariausių kalbų diegiant žiniatinklio priedus. Tsei atsidavimo jogos pagrindams kursas. Pabrėžiamas zastosuvannya zdotuh novichok praktiškumas.

PHP kalba buvo sukurta tam, kad pasitarnautų kaip specifinė praktinė užduotis vidury interneto (kurį atpažinsite patys perskaitę pirmąją kurso paskaitą). Stengsimės per daug neapsiriboti teorine mikroskopija, o paskaitų odoje stengsimės išvystyti konkrečią užduotį. Dauguma pavyzdžių paimti iš realios sistemos: virtualaus informatikos istorijos muziejaus. Pirmoji kurso dalis skirta išmokti tokių konstrukcijų sintaksės pagrindų. Dėl šios priežasties kliento-serverio technologija laikoma pagrindine PHP kilnojamojo srauto sritimi. Tada pereikime prie pačių elementariausių, mūsų nuomone, vbudovannyh funkcijų kulminacijos ir jų papildomų praktinių užduočių puoselėjimo. Nors PHP kalbos objektinis modelis nėra pats svarbiausias, svarbu turėti natūralų būdą apibūdinti objektinį duomenų modelį. Kaip bazinis modelis bus nagrinėjamas virtualaus informatikos muziejaus dokumento modelis. Po to bus apžvelgta nemažai taikomųjų aspektų: robotas su failų sistema, duomenų bazė, eilutės, seansai, DOM XML – viskas leis pažvelgti į pagrindines praktiškos filmų atrankos užduotis.

Knyga:

PHP šablono pintinė

PHP šablono pintinė

Kokie yra šablonai ir kokių smirdžių reikia

Kas yra filmo programavimo šablonas? Galima sakyti, kad šablonas yra pakeitimo tekstas viduryje. Šablono apdorojimo valandą būtina pakeisti pakeistas reikšmes.

Vienoje iš paskaitų jau žiūrėjome į šablono užpakalį. Tai yra dokumentų rodymo šablonas. Koristuvach, sukūrusi teksto eilutę, pažymėtą papildomoms html žymoms, į naująją įterpė specialius metasimbolius (reiškia), nes mūsų programa bėgant metams pakeitė tam tikrų elementų reikšmę. Kodėl mums reikia tokio šablono? Pavyzdžiui, galite pakeisti dokumento atvaizdavimo stilių nekeisdami programos kodo.

Plačiausias maisto paaiškinimas, kuriam reikalingi šablonai, skamba maždaug taip: šablonai reikalingi tam, kad būtų sustiprinta robotinių programų logika pateikiant duomenis, kad būtų galima kurti.

Nukreipti užpakalį į šabloną yra vienas paprasčiausių. Šiam apdorojimui vietoj jo naudojama pakeitimo funkcija str_replace(). Dažniausias būdas dirbti su šablonais yra kurti klasių bibliotekas. Tuo sukurti savo biblioteką principo nėra obov'yazykovo, oskolki іsnuіє іsnuіch librіbіch templatіvіv, shо vіlno rozpovsudzhuyutsya, per funktіonіstіu pavyzdžiui pratsyuyut puikus kolektіv razrobnikіv, namagayutsya їх їх їніversаlії, ії ї їїєєєєє ї ї ї ї їєєєєєє ї ї ї ї ї ї ї їєєєєєі Galime pažvelgti į tokių bibliotekų veiklą. Ale, burbuolei, suformuluosime užduotį, ant užpakalio tobulumo kažkokio demonstratyvaus būdo pasirinkti skirtingus šablonus.

Otzhe, zavdannya:

Būtina sugeneruoti tinklalapį su duomenų bazėje esančių straipsnių sąrašu. Paprastumo dėlei atkreipkite dėmesį, kad straipsnis gali būti vadinamas pavadinimu, autoriaus autoriumi, trumpa santrauka ir nauju viso teksto pakeitimu, kurie pateikiami arba žiūri į tekstą duomenų bazėje, arba į failą. Sąrašas kaltas organizacijoms, kad, prispaudus straipsnio pavadinimą, naujajame amžiuje būtų paskelbtas naujausias pasikeitimas.

Pakeitimo šablonai

Kaip galite išspręsti tokią užduotį naudodami paprastą pakeitimo metodą, tobto. Kaip šiuo metodu parašėte dokumentus redaguoti?

Būtina pasirinkti antrojo puslapio šabloną ir išsaugoti jį čia (iš failo arba duomenų bazėje). Akivaizdu, kad negalime atspėti visų pusių šablono, nes nežinome, kiek straipsnių yra duomenų bazėje. Šablone mums pavyko pakoreguoti tik html ir metasimbolius. Todėl vienai sąrašo eilutei galime rašyti tik šabloną, kurį jau reikia programiškai konvertuoti į reikiamą eilučių skaičių.

  • "
    target=new>
    ()

    Be to, yra dar viena problema – su pasiūlymo dėl naujausio straipsnio teksto įvedimu. Jei vadovausimės pakeitimo taisykle (sumažinsime visus jų reikšmių metasimbolius iš duomenų bazės), galite sužinoti, kadĮterpkime ne tekstą, o patį tekstą. Taigi šį elementą prieš jį pakeičiant reikia papildomai pakartotinai patikrinti ir dėl to viso teksto laukas pakeis straipsnio tekstą, o ne siųs jį į failą. Nepalengvinsime savo gyvenimo ir nereikės jaudintis dėl failo siuntimo viso teksto lauke. Tą pačią užduotį galite parašyti taip:

    $li_tmpl = file_get_contents("tmpl.html");
    // perskaitykite eilutės šabloną iš failo
    // nustatykite datą ir pasirinkite
    // duomenų bazė
    $conn = mysql_connect("localhost",
    "nina", "123")
    arba mirti ("Negaliu prisijungti");
    mysql_select_db("knyga");
    $sql = "Pasirinkti * IŠ straipsnių";
    $q = mysql_query($sql,$conn);
    // perduotas prašymas
    $skaičius = mysql_num_rows($q);
    for($i=0; $i<$num; $i++){
    $tmpl. = $li_tmpl;
    $tmpl = str_replace("",
    mysql_result($q,$i,"pavadinimas"),$tmpl);
    $tmpl = str_replace("",
    mysql_result($q,$i,"autorius"),$tmpl);
    $tmpl = str_replace("",
    mysql_result($q,$i,"abstract"),$tmpl);
    $tmpl = str_replace("",
    mysql_result($q,$i,"visas tekstas"),$tmpl);
    }
    echo $tmpl;
    ?>

    Kaip buo šablonas toks, kaip storesnė vieta, paimama maždaug ant kojos.

    Įvadas į PHP(Saveleva N.V.)

    Paskaitoje pasakojama apie tuos, kurie yra tokia PHP kalba, kuriai ji buvo sukurta vietoje ir kaip ji dabar yra pergalinga su tokiomis Volodos galimybėmis.

    Įdiegta ir sureguliuota programinė įranga(Ivanovas Ivanas)

    Iš esmės atlikimo būdas yra paprastas ir lengvas, tačiau pasitelkus papildomas programuotojo žinias sudėtingesnių užduočių atveju mažesnė vertė yra paprasta. Norint atlikti užduotį, reikia dirbti su tsilih blokų montavimu arba persigalvoti, sukurti šablonų klases, tokias kaip FastTemplate ir Smarty. Aptarkime jų ataskaitą.

    Greitas šablonas

    FastTemplate - klasių rinkinys, leidžiantis įdiegti robotą iš šablonų. Prie FastTemplate šablono logikos pridėti neįmanoma, dėl visko kaltas programos kodas. „FastTemplate“ šablonų veikimo idėja grindžiama tuo, kad, kad ir koks būtų puikus puslapis, jis sudarytas iš beasmenių „shmatochkiv“, iš kurių mažiausia – pirminės teksto eilutės, o smarvė įgaus tokią reikšmę. .

    Kas yra FastTemplate šablono failas? Tai specialus html failas, kuriame gali būti naudojami specialaus pobūdžio pakeitimai, kuriuos galima apdoroti FastTemplate klasės metodais.

    FastTemplate šablonų keitimo sintaksė aprašyta taip: ((+))

    Tse reiškia, kad pakeitimas atsirado dėl garbanoto lankelio "(". Kitas ir kitas skolos simbolis yra didžiosios raidės nuo A iki Z, skaičiai arba akreditacijos simboliai. Keitimas yra apmokestinamas už papildomą garbanotą lanką “), tada kreivė.

    (TITLE)
    (AUTH20)
    (TOP_OF_PAGE)

    Kaip minėta, pagrindinė FastTemplate idėja yra šono su papildomais šablonų priedais sukūrimas. Pavyzdžiui, norėdami atlikti savo užduotį, galime sukurti tris šablonų failus:


    (TITLE_)


    (pagrindinis)



      (LIST_ELEMENT)

  • (TITLE)
    ((AUTORIAUS))

    (ABSTRAKTAS)

    Šablonus sukūrėme mes – Vikonali dizainerio darbas. Dabar reikia išmokti juos apdoroti, tobto. viconate programuotojo robotas. Sukurkime programą, skirtą vienu metu apdoroti daugiau šablonų.

    Prieš pradedant dirbti su FastTemplate šablonais, būtina šį klasių rinkinį prijungti prie mūsų programos. Realiame gyvenime FastTemplate įrašų klasių rinkinį viename faile, kaip taisyklė, vadinsiu class.FastTemplate.php3, prie kurio galite prijungti, pavyzdžiui, naudodami komandą:

    include("class.FastTemplate.php3");

    Įžeidžiantis svarbus nėrimas - objekto sukūrimas FastTemplate klasei, dėl tam tikrų priežasčių galime jį naudoti:

    $tpl = naujas greitas šablonas(
    "/kelias/į/šablonai");

    Kaip parametras perduodamas kelyje į mėnesį, kai žinomi mūsų šablonai.

    Norėdami dirbti su FastTemplate, turite žinoti keletą pagrindinių metodų: apibrėžti, priskirti, analizuoti ir FastPrint.

    apibrėžti metodą

    Sintaksė:

    define(masyvas (raktas => reikšmė,
    1 raktas => reikšmė1, ...))

    Metodas define() atitinka šablono failą trumpaisiais pavadinimais, kad jį būtų galima suderinti su programa. Tobto "raktas" - tse im'ya, jak mi mes vikoristovuvaty prie programos, išsiųstos į šablono failą, kurio im'ya yra parašyta "vertė" eilutėje. Nerekomenduojama niekur keisti tikrųjų šablonų failų pavadinimų, išskyrus define metodą. Kai valandą iškviečiamas define() metodas, užfiksuojami visi dainų šablonai.

    $tpl->define(masyvas (main => "main.tpl",
    list_f => "list.tpl",
    list_el=>"list_element.tpl"));

    Čia nustatome šablonų failų pavadinimų slapyvardžius. Qi pseudonimai, tobto. programos main.tpl, list.tpl ir list_element.tpl failų pavadinimus pakeis main, list_f ir list_el.

    priskyrimo metodas

    Sintaksė:

    priskirti((statymo raktas/reikšmė) arba
    (masyvas (statymo raktas / vertė))

    Metodas assign() priskiria pakeistą reikšmę, „key“ – pakeitimo pavadinimą, o „value“ – reikšmę, kurią reikia priskirti. Tai, kas pakeista šablone, bus pakeista reikšmėmis, tai būtina nustatyti pagalbiniam assign() metodui. Vіdpovіdno į sintaksę tsey metodas gali būti susuktas dviem skirtingomis formomis. FastTemplate turi daugiau nei vieną masyvą, todėl jei iš naujo nustatysite to paties rakto reikšmę, jis bus perrašytas.

    $tpl->assign(masyvas(
    TITLE => "Įdiegta ir atnaujinta programinė įranga",
    TITLE => "Įvadas į PHP"));

    Čia galite nustatyti pakeitimo dvіchі reikšmę, esančią failuose į šabloną pavadinime TITLE. Tsya pakeisti motina poilsio priskirta jos vertė, tobto. Laimėjo dorivnyu eilutę "Enter to PHP".

    analizavimo metodas

    Sintaksė:

    analizuoti (pasukti, pakeisti
    dzherela šablonai)

    Parse() metodas yra FastTemplate viršuje. Vіn vstanovlyuє zmennja zminnoї, scho pasukti, lygus apibendrintiems šablonams iš dzherel verčių. Metodas gali būti susuktas trimis formomis: paprastas, sandėlis ir atvykimas.

    $tpl->analizuoti(MAIN, "pagrindinis");
    // paprasta forma
    $tpl->analizuoti(MAIN, array("list_f", "main"));
    // Sandėlio forma
    $tpl->analizuoti(MAIN, ".list_el");
    // forma, kuri ateis

    Paprastoje formoje šablonas su slapyvardžiu „pagrindinis“ nugalimas (nes pasiūlymų dar nėra), pateikiami visi pakeitimai, o rezultatas imamas kaip varianto MAIN reikšmė. Jei pakeitimas (MAIN) atsiranda kituose šablonuose, jis bus pakeistas reikšme, kuri dėl apdorojimo bus pašalinta iš „pagrindinio“ šablono. Tai leidžia kurti priedų šablonus.

    Parse() metodo sandėlio forma sukurta siekiant lengvai sudėti šablonus vieną į kitą. Kiti įrašai yra lygiaverčiai:

    $tpl->analizuoti(MAIN, "sąrašas_f");
    $tpl->analizuoti(MAIN, ".main");

    Tas pats

    $tpl->analizuoti(MAIN, array("list_f", "main"));

    Jei pasirinkta sandėlio forma, tai svarbu, šablonas nulupamas, kuris po pirmo pakeitimo patenka į sąrašą, po to pakeitimo apdorojimo rezultatai perkeliami į šabloną. Programoje pagrindinis yra atsakingas už pakeitimą (MAIN), joje esančios skeveldros perduodamos apdorojimo rezultatai į list_f šabloną. Jei main nepakeis (MAIN) pakeitimo, apdorojimo pagal list_f šabloną rezultatai bus švaistomi.

    Gautas stilius leidžia pridėti šablono apdorojimo rezultatus prie pakeisto rezultato. Taškas prieš šablono failo slapyvardį nurodo FastTemplate apie tuos, kurie turi grąžinti šio šablono apdorojimo rezultatą prieš paverčiant rezultatus, o ne perrašyti. Šis stilius greičiausiai bus laimėtas, kai lentelė sudaroma pakeitus eilučių skaičių, todėl, pavyzdžiui, būsite paprašyti į duomenų bazę.

    FastPrint metodas

    Sintaksė:

    FastPrint (pakeistas pakeitimas)

    FastPrint() metodas yra dar vienas, perduotas naujam modifikuotam pakeitimui. Net jei yra iškvietimų be parametrų, likusi skambučio dalis apdorojama naudojant parse() metodą.

    $tpl->FastPrint();
    /* kaip tęsti priekinį užpakalį,
    tada ši funkcija neveikia
    PAGRINDINĖ */
    $tpl->FastPrint("PAGRINDINĖ");
    // ši funkcija, kad sukurtų tuos

    Kadangi skaityti reikia ne ekrane, o, pavyzdžiui, faile, tai pasirūpinti duomenimis galite pasinaudoti fetch () metodo pagalba.

    $duomenys = $tpl->fetch("MAIN");
    fwrite($fd, $duomenys); // Įrašykite duomenis į failą

    „FastTemplate“ pagalbos šablonų užduotis

    Dabar pabandysime pasirinkti visus metodus, kurių mums reikia, kad laimėtume savo užduotį.

    Verta pažymėti, kad užduočių sprendimas buvo lankstesnis, žemesnis pirmame posūkyje, jei reguliaraus keitimo funkcija buvo pergalingesnė. Tada čia galime pakeisti tris skirtingus šablonus (masinius dokumentus, sąrašus ir sąrašo elementus).

    Šios klasės šablonai bus išleisti prieš išleidžiant PHP4, skirtą PHP3 robotams. Norėdami protestuoti, jį iškelti, turite patraukti FastTemplate klasės biblioteką ir nukopijuoti failą iš savo darbo katalogo. Jei dirbate su PHP4, tai faile class.FastTemplate.php3 reikia atlikti porą pakeitimų, apie kuriuos parašyta dokumentacijoje, kuri pristatoma iš karto su biblioteka.

    Išmanieji šablonai

    Smarty yra vienas iš augančių PHP projektų, jo oficiali svetainė yra http://smarty.php.net. Čia galite gauti kuo daugiau „Smarty“ klasių, taip pat naujausią dokumentaciją. Šis šablonų apdorojimo klasių rinkinys yra storesnis ir funkcionalesnis, žemesnis FastTemplate. Nasampered, aš nesusitaikiau su ta pačia logika teisingumo akivaizdoje. Logika, į kurią reikia atsižvelgti pateikiant duomenis, galite naudoti šabloną, apsvarstykite „Smarty“ pardavėjus. Todėl Smarty šablonas gali turėti išmaniuosius operatorius, failų įterpimo operatorius, keisti keitimo operatorius, ciklus. Dar viena „Smarty“ savybė – šablonų sudarymas. Šablonai verčiami į php kodą, o PHP interpretatorius gali apdoroti visas reikalingas reikšmes, kai tik nustatoma reikšmė. Siekiant pagreitinti darbą ir sudaryti šablonai yra talpykloje.

    Pažvelkime į pagrindines „Smarty“ šablono variklio konstrukcijas.

    Įdiegta

    Pirma, kodėl mums rūpi Smarty įrengimas. Čia ne viskas taip paprasta, kaip iš FastTemplate. „Smarty“ sudaro vienas php failas su klasės aprašymu, toks pat kaip ir visas skirtingų bibliotekos failų rinkinys. Kad galėtumėte dirbti su Smarty šablonais, turite sukurti visų programų bibliotekas. Smirdas randamas Smarty platinimo /libs/ kataloge. Pačiai Smarty klasei skirtas failas vadinamas Smarty.class.php. Norėdami patikrinti, kurios bibliotekos yra prieinamos Smarty klasei, turite parašyti šį scenarijų:

    reikalauti("Smarty.class.php");
    // įtraukti failą
    // Smarty klasės aprašymas
    $ Smarty = New Smarty;
    // sukurti Smarty klasės egzempliorių
    ?>

    Tarsi atleidimas pasirodė jogo vikonanna metu, būtina išbandyti vieną iš žemiau pateiktų variantų.

    // prijungti failą su klasės aprašymu
    Reikalavimas("c:/users/my/Smarty/libs/
    Smarty.class.php");
    $ Smarty = New Smarty;
    // sukurti Smarty klasės egzempliorių
    ?>

    Pridėkite katalogą, kuriame yra bibliotekos, į include_path (tokiu būdu jums nereikia keisti kodo).

    define("SMARTY_DIR",
    "c:/users/my/Smarty/libs/index.html");
    reikalauti(SMARTY_DIR."Smarty.class.php");
    $ Smarty = New Smarty;
    ?>

    Dabar, kai pasikeitėme, kad bibliotekos būtų rastos, reikia susikurti Smarty robotui reikalingus katalogus, nes už akcijų gali slypėti tokie pavadinimai:

    Šablonai - katalogas, de mi zberіgatimemo sukurti šablonai;

    Templates_c - katalogas, kuriame Smarty išsaugo sudarytus šablonus;

    Configs – konfigūracijos failų išsaugojimo katalogas;

    Talpykla – talpyklos katalogas.

    Pavadinimai pateikiami $template_dir, $compile_dir, $config_dir, $cache_dir galiomis Smarty klasei, kurią galima perdaryti. Dirbant su Smarty šablonais, odos programoms rekomenduojama naudoti skirtingus katalogų rinkinius. Prieigą prie nepaisytų katalogų suteikia Smarty biblioteka ir ji niekada nepasiekiama tiesiogiai per interneto naršyklę. Taigi, norint atsikratyti problemų dėl saugumo, geriausia išplėsti katalogus ten, kur nėra prieigos per www.

    Sukurkime „Smarty“ katalogų sąrašą adresu c:/smarty_dirs/book/. Atkreipkite dėmesį, kad per naršyklę duomenų nuskaityti neįmanoma. Tegul mūsų programa (arba programa) yra žinoma adresu /~my/tasks/book/. Katalogams $compile_dir ir $cache_dir Smarty reikalinga rašymo prieiga, todėl turėsite nustatyti tam tikrus talpyklos tvarkyklės leidimus, kad jūsų serveris būtų užrakintas (tarkim www arba niekas).

    Norėdami protestuoti, sukuriame paprastą šabloną ir programą, kuri konvertuoja jį į Smarty mechanizmą.

    index.tpl (є Smarty šablonas ir yra šablonų kataloge c:/smarty_dirs/book/templates/)

    (* Smarty šablonas *)
    Sveiki ($name)!

    index.php (mūsų programos kodą galite rasti /~my/tasks/book/ kataloge arba c:/users/my/tasks/book/ kataloge)

    Dėl to galite atsižvelgti į:

    Sveiki, Vasya!

    Mūsų programos darbui būtinus nustatymus galima perkelti į okremium failą ir sutvarkyti kaip Smarty klasės plėtinį.

    Pagrindinė sintaksė

    Smarty nėra tik šablonų apdorojimo klasė, ji apibrėžia naujo šablono paskirtį. Mi torknemosya mažiau nei pagrindiniai jogos elementai. Otzhe, kas yra „Smarty“ šablonas? Specialių konstrukcijų (funkcijų ir metodų keitimo, iškvietimo) ir html žymų rinkinys. „Smarty“ filmų šablonų elementai (žymos) dedami tarp simbolių-separatorių. Akcijose yra garbanotų lankelių simboliai „(“ kad „)“, tačiau juos galite pakeisti. Viskas, kas nėra sukrauta tokioje aplinkoje, Smarty atrodo kaip konstanta, kuriai nereikia apdorojimo. Index.tpl šablone, užvedame pelės žymeklį aukščiau, ($name) pakeičiama, o eilutės "Sveiki", kad "!" - konstantos, kurios nekeičiamos apdorojant šabloną.

    „Smarty“ komentarai parašyti tarp dviejų žvaigždžių:

    (* Tse komentaras. Apdorojus šabloną
    VIN nerodomas ekrane *)

    Skin Smarty pažymėkite arba parodykite pakeitimo reikšmę arba iškvieskite funkciją. Funkcija parašyta taip:

    (funkcijos_pavadinimo atributas1="reikšmė1"
    atributas2="reikšmė2")

    Modifikuoti šablonai gali turėti lipdukų tipus:

    Pokyčiai, prasmė to, ko tikisi koristuvach php-skriptas, motina atsakinga už dolerio ženklą prieš juos.

    Pavyzdžiui: ($first_name)

    Masyvo elementai, kurių reikšmė priskirta koristuvach php scenarijuje, yra papildomos sintaksės šablone ($im'ya_array.associative_key).

    Pavyzdžiui: ($asmuo.pavardė)

    Kvadratinės lanko sintaksės pagalba galima naudoti neasociatyvaus masyvo elementus: (im'ya_masyvas[numerio_indeksas])

    Pavyzdžiui: ($ žmogus)

    Objektų autoritetas, nustatytas php scenarijuje, galimas šablone papildomai sintaksei: (im'ya_ob'єkta->im'ya_authority)

    Pavyzdžiui: ($asmuo->el. paštas)

    Pakeitimai, zavantazhenі z konfіguratsіynyh failai (sho tse tse, mi rozpіmo trohi pіznіshe) telpa tarp # simbolių. Taip pat dvokia asociatyvaus masyvo $smarty.config elementais.

    Pavyzdžiui: (#bodyBgColor#) arba ($smarty.config.bodyBgColor)

    Be to, pradinis pakeitimas ($smarty) yra skirtas kai kuriems specialiems pakeitimų šablonams, pvz., keičiant HTTP užklausą, nurodykite datą tuo pačiu metu.

    Smarty šablonai turi daugybę modifikatorių, kuriuos galima nustatyti keisti, koduoti funkcijas ar eilutes, kad būtų galima modifikuoti jų reikšmes. Norint sustabdyti modifikatorių, reikia jį pavadinti pagal vertikalųjį brėžinį, kaip po pakeitimo, funkcijų pavadinimų arba iš eilės, kol sustos koks vynas.

    Pavyzdžiui, norėdami pakeitimo reikšmę ($title) išversti į didžiąsias raides, turite pridėti viršutinį modifikatorių tobto. užsirašyk: ($title|viršutinė)

    Galima įveikti pabarstymą modifikatoriais, kremuojant juos po vieną tiesia vertikalia riba. Pavyzdžiui, ($title|upper|truncate) pakeitimo reikšmę paverčia didžiosiomis raidėmis ir sumažina iki 80 simbolių.

    Mes nepaisysime visų modifikatorių. Sąrašą rasite Smarty dokumentacijoje. Tarkime, naudodamiesi šia papildoma pagalba galite pataisyti simbolių, eilučių ir pastraipų skaičių, pridėti eilutę, nustatyti datų matymo formatą tą valandą ir reguliariai keisti bei keisti daug daugiau.

    Konfigūracijos failai

    Konfigūracijos failai nulaužiami, kad būtų pakeisti visuotiniais pakeitimais, pavyzdžiui, įsilaužimu iš šablono, vieno failo pagalba. Ši idėja panaši į css stiliaus lapus. Konfigūracijos failas Prieš pakeitimo pavadinimą nedėkite papildomų simbolių, pvz., dolerio ženklo. Pokyčio vertės už bazhanny išdėstytos ties letenėlėmis (podvіyni arba pavienės), tarsi išlenktos iš dekliko eilių, o sukrautos ties trišakiomis letenėlėmis.

    # pasauliniai pokyčiai
    pageTitle = "(!LANG:(!LANG:Dokumentų sąrašas"!} !}
    bodyBgColor = #000000
    tableBgColor = #000000
    rowBgColor = #00ff00
    pageTitle = "(!LANG:(!LANG:Straipsnių sąrašas"!} !}
    Įvadas = """
    eilučių skaičius. Ta joga būtina
    įdėkite jį į tris letenas." ""
    # pridedamas skyrius
    [.Duomenų bazė]
    host=localhost
    db=knyga
    vartotojas=nina
    praeiti = 123

    Konfigūracijos failą galima sulankstyti iš kelių skyrių (skyrių), o kai kuriais atvejais jis taip pat gali būti pritaikytas įvairiems skyriams. Im'ya skyriai polagaє kvadratinėse šventyklose. Konfigūracijos failo nusikaltimų skyriai gali būti keičiami globaliai – smirdžiai neįtraukiami į tą pačią sekciją ir visada paimami, kai įkeliamas konfigūracijos failas. Tarsi išnaudojamas vienas skyrius, її imamasi pokyčių ir globalių pokyčių. Tarsi keičiant šerdį, kaip globaliai keičiant, kaip keičiant sekcijas, tada besikeičiančios sekcijos laimės. Jei vis tiek įvardinsite du pakeitimus vienos sekcijos viduryje, tada bus poilsis. Aukščiau pateiktoje programoje yra du skyriai – Klientas ir Duomenų bazė, išskyrus visuotinius pakeitimus puslapio pavadinimas, bodyBgColor, tableBgColor ir rowBgColor.

    Norint užfiksuoti pakeitimo ar skyriaus prasmę, prieš šiuos pavadinimus reikia įdėti tašką. Šiuo metu duomenų konfigūracijos failo nuskaityti negalima. Aplikacijoje įtraukėme susietą Duomenų bazės skiltį, kad nebuvo įmanoma atpažinti to vardo slaptažodžio, kad būtų galima jį įvesti norint atkurti duomenų bazę.

    (PHP 4, PHP 5, PHP 7)

    str_replace- Pakeiskite viską, įveskite eilutę, paprašykite eilutės, pakeiskite

    apibūdinimas

    Ši funkcija pasuka eilutę arba masyvą, o visi temos paieškos įrašai pakeičiami pakeisti .

    Paprastai nereikia lankstyti taisyklių norint paklausti / pakeisti (pavyzdžiui, įprastas virazi), funkcijų pasirinkimas yra trumpesnis preg_replace().

    Parametrų sąrašas

    Kaip ieškoti ir pakeisti – masyvai, tada str_replace() vicorist skin reikšmė iš atskiro masyvo, skirta paieškai ir keitimui temoje. Jei pakeitimo masyve yra mažiau elementų, sumažinkite paieškoje , tada pakeiskite trūkstamų reikšmių eilutę, bus tuščia eilutė. Jei paieška yra masyvas, o pakeitimas yra eilutė, pakeiskite tą eilutę odos elemento eilutėmis paieškos masyve. Zvorotny vppadok not maє sensu.

    Kadangi paieška ir keitimas yra masyvai, jų elementai bus apdorojami nuo pirmo iki paskutinio.

    Shukane reiškia, kad žinotumėte, kaip adata(galva). Dėl beasmenių reikšmių, kurios juokauja, galite laimėti masyvą.

    Pakeiskite

    Pakeisti reikšmė bus ieškoma pakeitimo reikšmės paieškai. Norėdami gauti turtingas vertes, galite pasukti masyvą.

    Tema

    Eilutė arba masyvas, kuriame atliekama paieška ir keitimas, taip pat paieška šieno kupetą(Stig sina).

    Jei objektas yra masyvas, pakeitimo paieška bus užvedama virš subjekto odos elemento, o funkcijos rezultatas bus masyvas.

    Jei jis bus perduotas, bus nustatytas atliktų pakeitimų skaičius.

    Reiškia, jie pasisuka

    Ši funkcija pasuka eilutę arba masyvą su pakeitimo reikšmėmis.

    Taikyti

    Užpakalis #1 str_replace()

    // pritraukti
    $bodytag = str_replace("%body%" , "juodas" , " " );

    // nada: Hll Wrld f PHP
    $balsiai = array("a" , "e" , "i" , "o" , "u" , "A" , "E" , "I" , "O" , "U" );
    $onlyconsonants = str_replace ($balsiai , "" , "Sveikas, PHP pasaulis" );

    // viliojantis: kiekvieną dieną turėtumėte valgyti picą, alų ir ledus
    $frazė = „Kiekvieną dieną turėtumėte valgyti vaisių, daržovių ir skaidulų“.;
    $sveikas = array("vaisiai", "daržovės", "ląsteliena");
    $ skanus = array("pica", "alus", "ledai");

    $nauja frazė = str_pakeisti($sveikas, $skanus, $frazė);

    // Viltis: 2
    $str = str_pakeisti("ll", "", "gera, molly!", $count);
    echo $count;
    ?>

    2 užpakalis Taikykite galimus triukus str_replace()

    // Pakeisti tvarką
    $str = "1 eilutė 2 eilutė 3 eilutė 4 eilutė n";
    $order = masyvas("\r\n", "\n", "\r");
    $pakeisti = "
    " ;

    // Atkurkite nugarėlę \r\n, kad vėl atšauktumėte jų trynimą.
    echo $newstr = str_pakeisti ($tvarka, $pakeisti, $str);

    // Rodyti F, nes A pakeičiamas B, tada B – C ir t.t.
    // Dėl to E bus pakeistas F, o pakeitimo fragmentai pasislinks į dešinę.
    $paieška = masyvas("A", "B", "C", "D", "E");
    $pakeisti = masyvas("B", "C", "D", "E", "F");
    $subject = "A";
    echo str_replace($paieška, $pakeisti, $tema);

    // Veislė: obuoliniai lazdyno žirneliai (dėl nurodytų priežasčių)
    $ raidės = array("aš", "pro");
    $vaisiai = array("obuoliai", "žirniai");
    $text = "Aš kalbu apie";
    $išvestis = str_pakeisti($raidžiai, $vaisiai, $tekstas);
    echo $išvestis;
    ?>

    Pastabos

    Pagarba: Ši funkcija yra saugi dviejų formų duomenų apdorojimui.

    Apsauga

    Pagarba norint pakeisti

    toks jakas str_replace() Jei pakeisite levoruchą, tada, jei bus atlikti keli keli pakeitimai, ankstesnę vertę galėsite pakeisti kita. Pažvelkite į užpakalį šioje pusėje.

    Pagarba:

    Ši funkcija yra didžiosios ir mažosios raidės. Pergalė str_place() pakeisti, nejautrus didžiosioms ir mažosioms raidėms.

    Pagarba: PHP 7.0.0 64 bitų platformose neturi laisvos vietos eilučių ilgiams, 32 bitų sistemose ir ankstesnėse PHP versijose eilutės negali būti didesnės nei 2 GB (2147483647 baitai).

    Sintaksė

    Chotirma gali būti priskirta įvairiais būdais:

    • pavienės letenos
    • siūbuojančias letenas
    • nowdoc sintaksė (pradedant PHP 5.3.0)

    Vienos kojos

    Lengviausias būdas pažymėti eilutę yra sudėti її į atskiras kojeles (simbolis " ).

    Norėdami laimėti vieną pėdą eilutės viduryje, pasviruoju brūkšniu її pasviruoju brūkšniu ( \ ). Būtina pačiam parašyti pabėgimo brūkšnį, dubliuoti jogą ( \\ ). Visi kiti nepagarbaus pasvirojo brūkšnio rašybos variantai bus interpretuojami kaip pagrindiniai simboliai: tai reiškia, kad bandysite laimėti kitas valdančias sekas, todėl \r arba \n, jie bus vertinami kaip bet kokio ypatingo elgesio pakaitalas.

    aidas "tse paprasta eilutė";

    aidas "Taigi galite įterpti eilėmis
    nauja eilutės simbolio ašis, taigi
    viskas gerai"
    ;

    // Žiūrėti: Yakos Arnold sako: "Aš grįšiu"
    aidas „Kartą Arnoldas pasakė: „Aš grįšiu“;

    aidas "Ar ištrynėte C:\\*.*?";

    // Žiūrėti: ar matėte C:\*.*?
    echo "Ar ištrynėte C:\*.*?" ;

    // Rodyti: Tse nebus paleista: nauja eilutė
    aidas "Tse nebus atleista: nauja eilė";

    // Rodymas: pakeiskite $expand ir $arba neišskleiskite
    aidas „Keisti $išplėsti taip pat $arba neplėsti“;
    ?>

    Podvini letenos

    Kaip eilutė yra išdėstyta apatinėse vielos kojose ("), PHP atpažįsta kitą specialiųjų simbolių seką:

    Raktų sekos
    Seka Vertė
    \n nauja eilutė (LF arba 0x0A (10) ASCII)
    \r vežimėlio sukimas (CR arba 0x0D (13) į ASCII)
    \t horizontalios lentelės (HT arba 0x09 (9) ASCII)
    \v vertikalus skirtukas (VT arba 0x0B (11) ASCII) (nuo PHP 5.2.5)
    \e pabėgimo simbolis (ESC arba 0x1B (27) ASCII) (nuo PHP 5.4.4)
    \f šoninis tiekimas (FF arba 0x0C (12) į ASCII) (nuo PHP 5.2.5)
    \\ ryžių iešmo
    \$ dolerio ženklas
    \" pėda
    \{1,3} simbolių seka, atitinkanti įprastą aštuntainių skaičių sistemos simbolį, kurios imitacijos yra pertvarkytos, kad tilptų į baitą (tobto "\400" === "\000")
    \x(1,2) simbolių seka, atitinkanti įprastą šešiolikos skaičių sistemos simbolį
    \u(+) simbolių seka, atitinkanti įprastą Unicode simbolio atitiktį, kad ji atitiktų UTF-8 failą (pridėta PHP 7.0.0)

    Kaip iš eilės, padėta į vieną leteną, ekranizacija, ar tai būtų vivedės simbolis, yra ir pati ekranizacija. Prieš PHP 5.1.1, pasvirasis brūkšnys \($var) nedraugauti.

    Heredoc

    Trečias būdas pasirinkti eilutę yra pasirinkti heredoc sintaksę: <<< . Po kito operatoriaus reikia nurodyti identifikatorių, tada eilutės vertimą. Po to pati eilutė, o tada tas pats identifikatorius, kuris uždaro įdėklą.

    Eilė kaltas pradėti nuo identifikatoriaus kreivės tobto. Vіn kaltas, kad stovėjo pirmoje eilučių eilėje. Be to, identifikatoriui taikomos tos pačios pavadinimo taisyklės, kaip ir kitoms PHP žymoms: leidžiama naudoti tik raidinius ir skaitinius simbolius ir sėdynės ženklą, o skaitmenys nėra kalti (sėdimos vietos ženklas leidžiamas).

    Uvaga

    Dar svarbiau pažymėti, kad eilutė su identifikatoriumi, kuri užsidaro, nėra kalta dėl kitų simbolių keršto, dėl to, kad kaltas taškas su kuo ( ; ). Ce reiškia, kad identifikatorius nekaltas ir kad neįmanoma naudoti kasdienių spragų ar lentelės požymių iki taškelio ar po jo. Taip pat svarbu suprasti, kad pirmasis simbolis prieš uždaromą identifikatorių yra naujos eilutės simbolis, jūsų operacinės sistemos reikšmė. Pavyzdžiui, UNIX sistemose, įskaitant „MacOS“, \n. Kai identifikatoriaus kreivė uždaroma, taip pat gali prasidėti nauja eilutė.

    Kadangi pažeidžiama ši taisyklė, kad identifikatoriaus uždarymas nėra „valymas“, svarbu, kad uždarymo identifikatorius būtų kasdien ir PHP tęstų šią paiešką. Bet kokiu atveju, šiuo atveju neteisingas identifikatorius nebus rastas, tačiau jis atleis analizę su eilutės numeriu scenarijaus pabaigoje.

    1 atvejis Klaidinga sintaksė

    klasė foo (
    viešas $baras =<<baras
    EOT;
    // įrašas prieš identifikatorių, kuris uždaromas, negalioja
    }
    ?>

    Stock #2 Teisingos sintaksės atsargos

    klasė foo (
    viešas $baras =<<baras
    EOT;
    }
    ?>

    Heredoc negali būti blogas klasės inicijavimui. Pradedant nuo PHP 5.3 versijos, mainai plečiasi tik heredoc, todėl jūs galite pasirūpinti savo pakeitimais.

    Heredoko tekstas elgiasi taip, kaip eilė ties apatinėmis letenomis, su kuriomis jos nesikabina. Tai reiškia, kad čia nereikia naršyti letenų, bet jūs, kaip ir anksčiau, galite spėlioti klavišų seką. Pakeitimai apdorojami, bet jei šio dokumento viduryje yra sulankstytų pakeitimų, reikia elgtis taip pat pagarbiai, kaip ir dirbant eilėmis.

    Užpakalis #3

    $str =<<eilutės pavyzdys,
    koks šprotas iš eilės,
    su nuoroda į heredoc sintaksę.
    EOD;

    Klasė foo
    {
    var $foo;
    var$baras;

    Funkcija __construct()
    {
    $this -> foo = "foo";
    $this ->
    }
    }

    $foo = newfoo();
    $name = "Immerekas" ;

    aidas<<Mano vardas „$name“. Aš kitoks $foo -> foo .
    Dabar esu viwoju
    ($foo -> baras [1]) .
    Galite įvesti didžiąją raidę "A": \x41
    EOT;
    ?>

    Mano vardas "Imerek". Aš esu Foo draugas. Dabar aš wiwoju Bar2. Galite naudoti didžiąją raidę „A“: A

    Taip pat galite pakoreguoti heredoc sintaksę, kad duomenys būtų perduodami funkcijos argumentais:

    Nuo 5.3.0 versijos tapo įmanoma įdiegti statinius pakeitimus ir klasės konstantas naudojant heredoc sintaksę:

    Užpakalis #5

    // Statiniai pokyčiai
    functionfoo()
    {
    statinė $bar =<<Nieko čia nėra...
    etiketė;
    }

    // Pastovumas/dominavimas klasei
    klasė foo
    {
    const BAR =<<Vikoristannya konstantų užpakalis
    FOOBAR;

    Vieša $ bazė =<<Viktorijos lauko užpakalis
    FOOBAR;
    }
    ?>

    Pradedant nuo PHP 5.3.0, Heredoc identifikatorių taip pat galima pašalinti siūbuojančiomis kojomis:

    Dabardoc

    Nowdoc - tas pats eilėms pavienių kojų, tas pats heredoc eilėms apverstomis kojomis. Nowdoc panašus į heredoc, bet viduryje nepriima kasdienių pakaitalų. Šis dizainas idealiai tinka perduoti PHP kodą ar kitus puikius teksto blokus be ekrano. Somy vynas turi trochą, panašų į SGML konstrukciją tim, scho voidlyaє blokuoti tekstą, o ne užduotis apdoroti.

    Dabardoc <<< , kuri yra pergalinga heredoce, tačiau po jos esantis identifikatorius yra vienoje letenoje, pavyzdžiui, <<<"EOT" . Jūs žinote, ką daryti su heredoc identifikatoriais, taip pat ir su nowdoc, ypač tiems, kurie eina į identifikatorių, kuris užsidaro.

    Stock #7 Stock of vikoristannya nowdoc

    aidas<<<"EOD"
    užpakalio tekstas
    pasiskolina šprotą eilių,
    pagalbos dėl nowdoc sintaksės. „Zvorotni slishi zavzhd“ yra tiesiogine prasme pasukti,
    pavyzdžiui, \\ ta \".
    EOD;

    Rezultatas

    Teksto, kuriame pasiskolintas nedidelis skaičius eilučių, pavyzdys nowdoc sintaksės pagalbai. Zvorotnі slіshі zavzhdi yra suprantami pažodžiui, pavyzdžiui, \ i \".

    Butt #8 Nowdoc eilutės citavimo pavyzdys su kintamaisiais

    /* Didesnis sulankstomas užpakalis su pakaitalais. */
    klasė foo
    {
    viešas $foo;
    viešas $baras;

    Funkcija __construct()
    {
    $this -> foo = "foo";
    $this -> bar = array("Bar1", "Bar2", "Bar3");
    }
    }

    $foo = newfoo();
    $name = "Immerekas" ;

    aidas<<<"EOT"
    Mano vardas „$name“. Aš kitoks $foo->foo.
    Dabar aš kitoks ($foo->bar).
    Ne jūs kaltas, kad atsinešate didelį „A“: \x41
    EOT;
    ?>

    Rezultatas

    Mano vardas „$name“. Aš kitoks $foo->foo. Dabar aš kitoks ($foo->bar). Ne jūs kaltas, kad atsinešate didelį „A“: \x41

    Užpakalis #9

    klasė foo (
    viešas $baras =<<<"EOT"
    baras
    EOT;
    }
    ?>

    Pagarba:

    „Nowdoc“ palaikymas buvo pridėtas prie PHP 5.3.0.

    Obrobka zminnyh

    Tarsi eilė atsiranda po kojomis, ar heredoko pagalba apdorojami jos viduryje esantys pokyčiai.

    Naudoju dviejų tipų sintaksę: paprastą ir sulankstomą. Paprasta sintaksė yra paprastesnė ir patogesnė. Vin suteikia galimybę keisti pokytį, masyvo reikšmę ( masyvas) arba objekto galia ( objektas) su minimaliu zusil.

    Lankstymo sintaksė gali būti naudojama garbanotoms arkoms, todėl galite pajusti virazą.

    Paprasta sintaksė

    Kaip vertėjas sukuria dolerio ženklą ( $ ), vynai užpildyti tiek daug simbolių, galima teisingai suformuluoti pokyčio pavadinimą. Jei norite tiksliai įvardyti vardo pabaigą, pakeitimo pavadinimą įdėkite į garbanotą lanką.

    $sultys="obuolių";

    echo "Jis išgėrė šiek tiek $ sulčių sulčių." . PHP_EOL;

    // Neteisingai. „s“ – pagrindinis pakeitimo pavadinimo simbolis ir pavadinimo $sultys pakeitimas.
    echo "Jis gėrė sultis iš $ sulčių." ;

    // Teisingai. Griežtai liepė pakeisti pavadinimo pabaigą lanko pagalbai:
    echo "Jis gėrė sultis iš $( sulčių ) s." ;
    ?>

    Rezultatas

    Jis išgėrė obuolių sulčių. Jis gėrė šiek tiek sulčių, pagamintų iš. Jis gėrė sultis iš obuolių.

    Panašiai masyvo elementą galima išplėsti ( masyvas) arba objekto galia ( objektas). Indeksuose masyvas turi kvadratinį lanką, kuris kreivi ( ] ) nurodo susitikimo su indeksu pabaigą. Objekto autoritetams nustatomos pačios taisyklės, kaip paprasti pakeitimai.

    Stock #10 Paprastos sintaksės atsargos

    define("KOOLAID", "koolaid1");
    $sultys = array("obuolių" , "apelsinų" , "koolaid1" => "violetinė" );

    echo "Jis išgėrė $ sulčių [ 0 ] sulčių." . PHP_EOL;
    echo "Jis išgėrė $ sulčių [ 1 ] sulčių." . PHP_EOL;
    echo "Jis išgėrė šiek tiek $ sulčių [ koolaid1 ] sulčių." . PHP_EOL;

    klasės žmonės (
    viešas $džonas = "Jonas Smitas" ;
    vieša $jane = "Džeinė Smit" ;
    viešasis $robertas = "Robertas Paulsenas";

    Viešas $kalvis = "Smith";
    }

    $žmonės = nauji žmonės();

    echo " $žmonės -> Džonas išgėrė $sulčių [ 0 ] sulčių." . PHP_EOL;
    echo " $žmonės -> Džonas tada pasveikino $žmones -> Jane." . PHP_EOL;
    echo " $žmonės -> jono "žmona pasveikino $žmones -> robertą." . PHP_EOL ;
    echo " $žmonės -> Robertas pasveikino 2 $žmones -> kalvius." ; // Nedirbk
    ?>

    Rezultatas

    Jis išgėrė obuolių sulčių. Jis išgėrė šiek tiek apelsinų sulčių. Jis išgėrė purpurinių sulčių. John Smith gėrė deaki obuolių sultis. Džonas Smitas pasisveikino su Džeine Smit. Johno Smitho žmona pasveikino Robertą Paulseną, o Robertas Paulsenas – abu.

    Pridėtas PHP 7.1.0 palaikymas neigiamas skaitiniai indeksai

    Stock #11 Neigiami skaitiniai indeksai

    $string = "eilutė";
    aidas "Simbolis su indeksu -2 senas$string[-2].", PHP_EOL;
    $string[-3] = "o";
    aidas „Pakeitus simbolį -3 pozicijoje į „o“, gaunama įžeidžianti eilutė:$string." , PHP_EOL ;
    ?>

    Rezultatas

    Simbolis іz іndex -2 dorіvnyuє n. Pakeiskite simbolį, esantį -3 pozicijoje, į "o", duoda įžeidžiančią eilutę: stipri

    Jei norite ką nors sulankstyti, naudokite sulankstomą sintaksę.

    Sulankstoma (garbanota) sintaksė

    Vynu sulankstomu vadinamas ne tas, kuris svarbus protui, o tas, kuris leidžia pergalingai sulankstoma kalba.

    Nesvarbu, ar tai būtų skaliarinis pokytis, masyvo elementas ar objekto galia, rodoma eilėje, gali būti atvaizdų eilutėje su sintaksė. Tiesiog parašykite virazą taip, kaip pozą iš eilės, o tada įdėkite jogą { і } . Oskilki { Negalite turėti ekranų, kurių sintaksė gali būti atpažįstama tik tada, kai $ sekti be pertraukos { . Pergalė {\$ , piktnaudžiauti {$ . Dekіlka aiškinamieji pavyzdžiai:

    // Rodyti visus atleidimus
    error_reporting (E_ALL);

    $ puiku = "puiku" ;

    // Nepraktikuokite, žr.: Tse (puiku)
    echo "ce($puikus)";

    // Praktika, žr.: Puiku
    echo "ce($puikus)";

    // Procesas
    aidas „Tsey aikštės pločio( $kvadratas -> plotis ) 00 centimetrų.";

    // Pratsiyuє, raktai, padėjimas į letenas, praktika tik su garbanotų rankų sintaksė
    echo "Ar veikia: ($ arr["raktas"])";

    // Procesas
    echo "Sukurti: ($arr[4][3])";

    // Kodėl tai negerai ir kodėl jūs pozuojate $foo
    // Eilutės. Kitaip tariant, tse jak ir anksčiau dirbsi,
    // ale shards PHP back to back foo konstanta, tse vikliche
    // Atleiskite E_NOTICE (neapibrėžta konstanta).
    aidas "Tse neteisinga:($arr[foo][3])";

    // Praktika. Kai vikoristanny turtingas masyvas viduryje
    // eilės vikarinių arkų
    echo "Ar veikia: ($ arr ["foo"] [3])";

    // Praktika.
    echo "Ar veikia: ". $arr["foo"][3];

    aidas "Tse tezh pracyuє:($obj->reikšmės[3]->vardas)";

    aidas „Vardo pakeitimo vertė$vardas: ($($vardas))";

    aidas "Vardo pakeitimo reikšmė, tarsi būtų įjungta getName() funkcija:($( getName ())) ";

    aidas "Pakeiskite vardo reikšmę pasukdami \$object->getName():($( $objektas -> getName ())) ";

    // Nedirbkite, rodykite: Kad ir ką paverstumėte getName(): (getName())
    aidas "Kas paverčia getName(): (getName())";
    ?>

    Šios sintaksės pagalba taip pat yra prieiga prie eilutės viduryje esančio objekto galių.

    klasė foo (
    var $bar = "Aš esu baras." ;
    }

    $foo = newfoo();
    $bar = "baras";
    $baz = array("foo", "bar", "baz", "quux");
    echo "($foo -> $bar)\n";
    echo "($foo -> ($baz[1]))\n";
    ?>

    Rezultatas

    Aš esu baras. Aš esu baras.

    Pagarba:

    Funkcijos, metodų vikiai, statiniai klasių pokyčiai, taip pat klasės konstantos viduryje {$} , pradedant nuo 5 PHP versijos. Tačiau nurodyta reikšmė bus pakeista, nes ji bus pakeista tame pačiame kontekste, kokia tvarka ji nenurodyta. Pavienių garbanotų lankelių pasirinkimas ( {} ) nėra praktiškas norint pasiekti funkcijų, metodų, klasių konstantų ar statinių pokyčių klases vertes.

    // Rodyti visus atleidimus
    error_reporting (E_ALL);

    klasės alus (
    const gaivusis gėrimas = "rootbeer";
    viešas statinis $ale = "ipa";
    }

    $rootbeer = "A&W";
    $ipa = "Aleksandras Keitas";

    // Nespausdinti: aš norėčiau A ir W
    echo "noriu bi ($( beers :: softdrink )) \n" ;

    // Tse tezh pratsyuє, ekranas: Norėčiau Aleksandro Keito "s
    echo "Aš noriu būti ($( beers :: $ale )) \n" ;
    ?>

    Prieiga prie simbolio iš eilės, kurį keičia joga

    Simboliai eilutėse gali būti susukti ir modifikuoti, priskiriant juos prie eilutės ausies, pradedant nuo nulio, kvadratinėmis svirtimis po eilutės, pvz., $str . Pagalvokite apie qiєї ženklo eilutę kaip apie simbolių masyvą. Jei reikia pašalinti arba pakeisti daugiau nei 1 simbolį, galite pakoreguoti funkcijas substr()і substr_replace().

    Pagarba: Pradedant nuo PHP 7.1.0, pridedamos neigiamos reikšmės. Smarvė klausia usunennya nuo eilės galo. Anksčiau neigiamas įvaikinimas buvo vadinamas malone E_NOTICE pagal skaitymo valandą (sukant tuščią eilutę) arba E_ĮSPĖJIMASįrašymo valandai (eilės užpildymas nekeičiant).

    Pagarba: Prieš simbolį iš eilės taip pat galite ieškoti papildomų garbanotų lankų, pavyzdžiui, $str(42) .

    Uvaga

    Bandydami įrašyti zsuv už eilutės ribų, pridėkite eilutę su tarpais prie pirmosios pamainos. Nė vienas tipis nebus paverstas visuma. Netinkamas įskaitymo tipas, vadinamas malonės atleidimu E_ĮSPĖJIMAS. Pirmasis eilutės simbolis perrašomas. Pradedant nuo PHP 7.1.0, tuščios eilutės priskyrimas reikalauja mirtino atleidimo. Anksčiau šiuo metu paspausdami nulinį baitą (NULL).

    Uvaga

    PHP eilutės yra vidiniai baitų masyvai. Dėl to prieiga arba pamainų eilutės keitimas nėra saugus didelių baitų kodavimo požiūriu ir gali būti keičiamas tik vieno baito kodavimo eilutėse, pvz., ISO-8859-1. .

    Pagarba: Pradedant nuo PHP 7.1.0, tuščio indekso pakeitimas sukėlė mirtiną malonę, anksčiau tokia tvarka jis pavirto į masyvą be persiuntimo.

    Užpakalis #12

    // Pašalinamas pirmosios eilutės simbolis
    $str = "Tai yra testas." ;
    $pirmas = $str[0];

    // Pašalinamas trečiasis eilutės simbolis
    $trečias = $str[2];

    // Likusios eilutės simbolio pašalinimas
    $str = "Tai vis dar bandymas." ;
    $paskutinis = $str[strlen($str) - 1];

    // Pakeiskite likusios eilutės simbolį
    $str = "Pažvelk į jūrą" ;
    $str [strlen ($str) - 1] = "e";

    ?>

    Pradedant nuo PHP 5.4, zsuv iš eilės turi būti nustatytas arba sveikuoju skaičiumi, arba iš eilės, siekiant atkeršyti už skaičius, kitaip jis bus matomas į priekį. Anksčiau zsuv, užduotys iš eilės mintyse "foo", nedelsdamas pavirto 0 .

    Butt #13 Vidminnosti mizh PHP 5.3 ir PHP 5.4

    $str = "abc";

    Var_dump($str["1"]);
    var_dump(isset($str["1"]));

    Var_dump($str["1.0"]);
    var_dump(isset($str["1.0"]));

    Var_dump($str["x"]);
    var_dump(isset($str["x"]));

    Var_dump($str["1x"]);
    var_dump(isset($str["1x"]));
    ?>

    „Vėjonannya kogo butt“ rezultatas PHP 5.3 versijoje:

    string(1) "b" bool(true) string(1) "b" bool(true) string(1) "a" bool(true) string(1) "b" bool(true)

    Šio pavyzdžio įvedimo PHP 5.4 rezultatas:

    string(1) "b" bool(true) Įspėjimas: Neteisėtas eilutės poslinkis "1.0" /tmp/t.php 7 eilutėje string(1) "b" bool(false) Įspėjimas: Neteisėtas eilutės poslinkis "x" / tmp/t.php 9 eilutėje string(1) "a" bool(false) string(1) "b" bool(false)

    Pagarba:

    Bandymas pasiekti įvairių tipų (su šiek tiek masyvų ar objektų, kurie įdiegia naujas sąsajas) pagalbos arba {} pasukite judesį NULL.

    Pagarba:

    PHP 5.5 pridėjo palaikymą prieigai prie simbolių eilutiniuose literaluose, kad būtų lengviau sintaksėje arba {} .

    Eilučių modifikavimui yra daug rudos spalvos funkcijų.

    Pagrindinės funkcijos aprašytos skyriuje apie eilučių funkcijas, o išplėstinei paieškai ir pakeitimui – Perl-sum įprastų kintamųjų funkcijos.

    Pertvarkymas iš eilės

    Reikšmė gali būti paversta eilute dėl papildomos pagalbos (eilutė), bet funkcijos strval(). Virazah, de needy eilutėje, transformacija yra automatinė. Tse vіdbuvaєtsya, jei vikoristovuєte funkcijas aidas arba spausdinti priešingu atveju, jei pokyčio reikšmė iš eilės yra lygi. Skaityti keramikos skirstymą Tipai ir Manipuliacijos su tipais yra suprantamiau. stebisi taip settype ().

    Masivi visada virsta eile "masyvas", todėl negalite rodyti masyve ( masyvas), vikoristas aidas arba spausdinti, sužinoti, už ką atkeršyti. Pažvelgti per okremy elementą, vikoristovyte schos akimirką echo $arr["foo"]. Stebėtis apačioje, kaip įsivaizduoti / pažvelgti į visą vietą.

    Konvertavimui pakeisti tipą "Objektas" y tipo styga stebuklingas metodas __toString yra patvirtintas.

    Vertė NULL visada virsta tuščia eile.

    Kaip galima būtų bachiti aukštesnė, tiesiogiai transformuota į eilę masyvų, objektų, tačiau ištekliai nesuteikia tos pačios pagrindinės informacijos apie prasmę, kriminalinius їх tipus. Geriausias būdas pamatyti tobulinimo vertę – laimėti funkciją print_r()і var_dump().

    Didesnes PHP reikšmes galima pertvarkyti, kad sutaupytumėte nuosekliai. Šis metodas vadinamas serializavimu ir gali būti naudojamas papildomoms funkcijoms atlikti serializuoti ().

    Eilučių pertvarkymas skaičiuje

    Kadangi eilutė atpažįstama kaip skaitinė reikšmė, gauta to tipo reikšmė nustatoma taip, kaip parodyta toliau.

    Kad nebūtų atkeršyti už vieną iš simbolių „.“, „e“ arba „E“, skaičiaus reikšmė įterpiama tarp sveikųjų skaičių ( PHP_INT_MAX), eilutė bus atpažinta kaip sveikas skaičius ( sveikasis skaičius). Reshti vipadkiv jis įvedamas skaičiumi su slankiuoju kableliu ( plūdė).

    Reikšmė priskiriama eilutės burbuolės daliai. Jei eilutė prasideda nuo teisingos skaitinės reikšmės, reikšmė bus atšaukta. Priešingu atveju reikšmė bus 0 (nulis). Verne skaitinė reikšmė - tse vienas ar daugiau skaitmenų (kurie gali pakeisti keliolika taškų), už priekinio ženklo su artėjančiu žingsnio indikatoriumi neobov'yazkovy. Žingsnio indikatorius yra „e“ arba „E“ su vienu ar daugiau skaitmenų.

    $foo = 1 + "10,5"; // $foo nėra plūdė (11.5)
    $foo = 1 + "-1.3e3"; // $foo neplaukia (-1299)
    $foo = 1 + "bob-1.3e3"; // $foo nėra sveikas skaičius (1)
    $foo = 1 + "bob3"; // $foo nėra sveikas skaičius (1)
    $foo = 1 + "10 mažų kiaulių"; // $foo nėra sveikasis skaičius (11)
    $foo = 4 + "10,2 paršiukų"; // $foo nėra plūdė (14.2)
    $foo = "10,0 kiaulių" + 1; // $foo nėra float(11)
    $foo = "10,0 kiaulių" + 1,0; // $foo nėra float(11)
    ?>

    Reportažas apie divų transformaciją. žr. strtod(3) Unix dokumentaciją.

    Jei norite protestuoti, ar taikydami šį padalijimą, nukopijuokite ir įklijuokite jį ir tą įžeidžiančią eilutę, kad matytumėte tai, ką matote:

    echo "\$foo== $foo ; įveskite: " . gettype ($ foo). “
    \n" ;
    ?>

    Netikrinkite, kad pakeistumėte simbolio kodą, perrašydami jogą ant tikslo (kaip galite, pavyzdžiui, ant C). Norėdami konvertuoti simbolius į jų ASCII kodus ir atgal, naudokite funkcijas ord ()і chr().

    Eilutės tipo įgyvendinimo detalės

    prieš 7 metus

    Dokumentuose neminima, bet baigiamasis kabliataškis heredoc pabaigoje interpretuojamas kaip tikras kabliataškis ir kaip toks, kaip ir prieš sintaksės klaidas.

    $foo =<<abcd
    GALAS;
    ?>

    Tai nereiškia:

    foo (<<abcd
    GALAS;
    );
    // sintaksės klaida, netikėta ";"
    ?>

    Be kabliataškio, bet gerai:

    foo (<<abcd
    GALAS
    );
    ?>

    prieš 3 metus

    Galite susukti eilutę kaip simbolių masyvą (pvz., C)

    $a = "Eilutės masyvo testas";

    var_dump($a);
    // Grąžina eilutę(17) "Eilutės masyvo testas"

    var_dump($a);
    // Grąžinama eilutė(1) "S"

    // -- Su masyvo atidavimu --
    var_dump((masyvas)$a);
    // Grąžina masyvą(1) ( => string(17) "Eilutės masyvo testas")

    var_dump((masyvas)$a);
    // Grąžinama eilutė(17) "S"

    Norihiori

    prieš 15 metų

    Galite pagreitinti sudėtingą sintaksę, kad eilutės viduryje paleistumėte galios objektą IR metodo objektą. Pavyzdžiui...
    klasės testas (
    viešasis $ vienas = 1;
    viešoji funkcija antra()(
    grąžinimas 2;
    }
    }
    $testas = naujas Testas();
    echo "foo($test -> one) bar($test -> two())";
    ?>
    Išves „foo 1 bar 2“.

    Tačiau negalite prašyti visų kainų savo vardų srityje. Klasės konstantos ir statinės savybės / metodai neveikia, nes sudėtinga sintaksė ieško "$".
    klasės testas (
    const VIENAS = 1;
    }
    echo "foo (Test::ONE) bar";
    ?>
    Bus išvesta „foo (Test::one) bar“. Dėl konstantų ir statistikos reikia nutraukti eilutę.

    prieš 3 metus

    Atkreipkite dėmesį, kad pagal "Eilutės konvertavimą į skaičius":

    If("123abc" == 123) aidas "(intstr == int) neteisingai patikrina kaip teisingą.";

    // Vienas taškas lygus skaičiui, eilutė neteisingai konvertuojama iš intstr į int, o tai sutampa su testo numeriu.

    // Tiesa visiems sąlyginiams sakiniams, pvz., if ir switch sakiniams (tikriausiai ir while ciklams)!

    // Tai reiškia, kokia didelė rizika, jei tai testavimas/pergalė/užduotis vartotojo įvestis, jei tikimasi ir tikrinamas tik sveikasis skaičius.

    // Atrodo, kad vienintelis pataisymas yra tas, kad 123 eilutė būtų „123“, todėl konversija neįvyksta.

    ?>

    prieš 6 metus

    Pirmieji nuliai eilutėse nėra (mažiausiai nustebinti) nelaikomi aštuntainiais.
    Apsvarstykite:
    $x = "0123" + 0;
    $y=0123+0;
    echo "x є $ x, y є $ y"; //spausdina "x yra 123, y yra 83"
    kitaip tariant:
    * Pirmieji nuliai skaitiniuose literaluose šaltinio kode є interpretuojami kaip "aštuontainė", plg. strtol ().
    * Pirmieji nuliai eilutėse (pvz., vartotojo pateikti duomenys), jei (netiesiogiai arba aiškiai) perkeliami į sveikąjį skaičių є ignoruojami, і laikomi dešimtainiais, žr. strtod().

    prieš 10 metų

    Čia yra paprastas dvigubų kabučių eilučių fiksavimas, o heredocs – savavališkos išraiškos sulenktųjų skliaustų sintaksėje, įskaitant konstantas ir kitus funkcijų iškvietimus:

    // Nulaužimo deklaracija
    function_expr ($v) (grąžinti $v ; )
    $_expr = "_expr";

    // Mūsų žaidimų aikštelė
    define("qwe" , "asd");
    apibrėžti("zxc", 5 );

    $a= 3 ;
    $b= 4 ;

    funkcija c($a, $b) (grįžti$a+ $b; }

    // Naudojimas
    aidas"prieš{ $_expr(1 + 2 )} paskelbti\n"; // išveda "pre 3 post"
    aidas"prieš{ $_expr(qwe)} paskelbti\n"; // išveda "pre asd post"
    aidas"prieš{ $_expr(c($a, $b)+ zxc* 2 )} paskelbti\n"; // išveda "prieš 17 įrašą"

    // Bendroji sintaksė yra ($_expr(...))
    ?>

    Prieš 2 metus

    Manau, kad būtų naudinga pakomentuoti, kad informacija bent jau yra dešinėje PHP svetainės pusėje.

    Norėdami patikrinti, ar bandote pašalinti dvipusį ryšį su tam tikru rakto raktu, galite pateikti T_ENCAPSED_AND_WHITESPACE klaidą. Kіlka Atsižvelgiant tse jak vienas gražiausių klaidų pranešimų.

    Tokia išraiška kaip:

    $ vaisius=masyvas(
    "a"=> "obuolys",
    "b"=> bananas,
    //ir kt
    );

    spausdinti "Tai yra$ vaisius[ "a"]; // T_ENCAPSED_AND_WHITESPACE
    ?>

    pavieniui subyrės į gabalus.

    Galite tai išspręsti taip:

    spausdinti"Tai yra$ vaisius[ a] " ; // atšaukti raktą
    spausdinti"Tai yra${ vaisiai[ "a"]} " ; // Sudėtinga sintaksė
    spausdinti"Tai yra{ $ vaisius[ "a"]} " ; // Sudėtingas sintaksės variantas
    ?>

    Asmeniškai teikiu pirmenybę likusiai variacijai, nes ji yra natūralesnė ir artimesnė tam, kokia būtų išraiška už eilutės ribų.

    Neaišku (mano nuomone, lygiomis teisėmis), jei PHP man leidžia pasirinkti vieną iš mažiausių nuorodų išraiškos viduryje, bet galiu ant uvazі, o jei tai valanda, sobbit faktų citatos, jei tai nėra eilutės reikšmės dalis – 10 eilutė jau yra išanalizuota, kabutės tiesiog trukdo… ?

    Prieš 2 metus

    Abu turėtų veikti :(

    klasėtestavimas{
    viešas statinis
    $var= "statinis";
    visuomenės const VAR =
    "konst";

    viešoji funkcija pasakykite Sveiki, Statiškas() {
    aidas
    Sveiki:{ $tai:: $var} " ;
    }

    viešoji funkcija pasakykite SveikiConst() {
    aidas
    Sveiki:{ $tai::VAR)" ; //Išnagrinėjimo klaida: sintaksės klaida, netikėta ")", laukiama "["
    }
    }

    $obj= naujastestavimas();
    $obj-> pasakykite Sveiki, Statiškas();
    $obj-> pasakykite SveikiConst();

    prieš 3 metus

    Kažkas, ką patyriau, neabejotinai kažkam padės. . .
    Mano redaktoriuje sintaksė paryškins HTML ir $commentą:

    $html =<<<"EOD"
    $komentuoti
    EOD;

    Pagalbos tsієї rodo tą pačią spalvą:

    $html =<<$komentuoti
    EOD;

    todėl dirbti su juo daug lengviau

    prieš 11 metų

    Norėdami išreikšti savo mintis, negalite skaityti ankstesnės informacijos apie savo duomenis;)

    Be to, visos eilutės gali būti nustatytos skaičiais (teste ("$a" > "$b")), naudojami gauti skaičiai, kitu atveju FULL eilutės lyginamos po simbolius:

    var_dump("1.22" > "01.23" ); // bool (false)
    var_dump("1.22.00" > "01.23.00" ); // bool (tiesa)
    var_dump("1-22-00" > "01-23-00" ); // bool (tiesa)
    var_dump((plūdė)"1.22.00" > (plūduriuoti)"01.23.00" ); // bool (false)
    ?>

    sumaišytas preg_replace(mišrus raštas, mišrus pakaitalas, mišrus tema [, int limit])

    Ieškokite temos eilutės zbіgіv іz šablono šablono ir pakeiskite їх pakeitimu. Pavyzdžiui, jei nurodytas ribinis parametras, jis nepaisys limito įvesties šablono; Jei apriboti praleidimus arba kitaip -1, visi šablono įvestis bus pakeisti.

    Pakeisti galima naudojant \n arba (nuo PHP 4.0.4) $n , o kita parinktis yra trumpesnė. Oda bus pakeista postyliu, kuris atitiks n "nnoї, sukrautas į apvalius postiebo lankus. .

    Jei pakeisite šabloną į variantą, nusiųskite jį į pokaukes, galite kaltinti situaciją, jei už kaukės yra skaičius. Per tokį laiką užrašas \\n atleis: išsiųsti pirmąją antrinę kaukę, po kurios seka skaičius 1, parašyti kaip \\11, o tai bus interpretuojama kaip vienuoliktos antrinės kaukės prašymas. Tai galite naudoti nesuprantamai, tarsi paspartintumėte \ $ (1) 1 konstravimą, kuris rodomas raidės izoliacijoje ant pirmosios kaukės ir skaičiaus 1.

    Kurio pavyzdžio rezultatas bus:

    2003 m. balandžio 1 d

    Jei funkcijos laikas buvo aptiktas modelio klaida, subjekto reikšmės pakeitimas bus pasuktas, priešingu atveju bus pasuktas numatytasis subjekto tekstas.

    Pirmieji trys funkcijos parametrai preg_replace() gali būti vienmačiai masyvai. Kritimo metu, kaip masyvas vicorous keys, masyvo analizės metu smarvė bus paimta eilės tvarka, tokiu būdu, kad smarvė masyve bus išrūšiuota. Masyvo raktų nurodymas šablonui ir pakeitimui nėra privalomas. Tačiau jūs visi tie patys vikoristovuvaty indeksai, šablonų ir eilučių nustatymui, dalyvaujate pakeitimo, vikoristovyte funkcija ksort() odos priežiūrai.


    2 pavyzdys. Keli masyvai su skaitmeniniais indeksais kaip funkcijos argumentais preg_replace()

    $string = „Greita rudoji lapė peršoko per tinginį šunį“.;$patterns [ 0 ] = "/greitai/";
    $ šablonai[1] = "/ruda/";
    $patterns[2] = "/lapė/"; $replacements[ 2 ] = "meška" ;
    $pakeitimai[1] = "juoda";
    $pakeitimai [ 0 ] = "lėtas" ;preg_replace ($pakeitimai , $pakeitimai , $styga );
    ?>

    Rezultatas:

    Rezultatas:

    Lėtas juodasis lokys klaidžioja virš atsilikusio šuns.

    Pavyzdžiui, temos parametras yra masyvas, ieškokite šio šablono pakaitalo odos elementams. Pasuktas rezultatas taip pat bus masyvas.

    Be to, modelio ir pakeitimo parametrai yra masyvai, preg_replace() pagal herojaus pagalbą iš abiejų masyvų pagal elementų porą ir vicorist їх operacijai, prašyti ir pakeisti. Jei pakaitiniame masyve yra daugiau elementų, žemesnis raštas, pakeičiami kasdieniai elementai, pakeičiamos tuščios eilutės. Rašto atveju, kadangi raštas yra masyvas, o pakeitimas vyksta iš eilės, modelio masyvo odos elementu bus ieškoma šablono pakeitimo (šablonas bus naudojamas naudojant visus masyvo elementus , tada pakeitimo eilutė bus pataisyta). Variantas, jei raštas yra eilėje, o pakeitimas yra masyvas, tai nėra prasmės.

    Modifikatorius /e pakeičia funkcijos elgseną preg_replace() Tokiu būdu pakeitimo parametras pakeitus reikiamus pakaitalus yra interpretuojamas kaip PHP kodas ir tik po to modifikuojamas pakeitimui. Pergalės modifikatorius, būkite atsargūs: pakaitinis parametras yra kaltas dėl teisingo PHP kodo, kitaip iš eilės atkeršysite už savaitės funkciją preg_replace(), Winicne sintaksė pardon


    3 pavyzdys. Dekilka šablonų pakeitimas

    $patterns = masyvas( "/(19|20)(\d(2))-(\d(1,2))-(\d(1,2))/",
    "/^\s*((\w+))\s*=/");
    $pakeisti = masyvas("\3/\4/\1\2", "$\1 =");
    echo preg_replace ($patterns, $pakeisti, "(pradžios data) = 1999-5-27");
    ?>

    Tsey butt vivede:

    Konvertuokite visas HTML žymas į didžiąsias raides


    5 pavyzdys. Konvertuokite HTML į tekstą

    // $document išvestyje gali būti HTML dokumentas.
    // Reikia pašalinti visas HTML žymas, javascript skyrius,
    // Simbolių pavyzdžiai. Taip pat būtina pakeisti aktus
    // HTML objektai su jų atitikmenimis.
    $search = masyvas( ""]*?>.*?"si", // Peržiūrėti javaScript
    ""<[\/\!]*?[^<>]*?>"si", // Peržiūrėkite HTML žymas
    ""([\r\n])[\s]+"" , // Peržiūrėkite pavyzdinius simbolius
    ""&(quot|#34);"i" , // Pakeiskite HTML objektus
    ""&(amp|#38);"i" ,
    ""&(lt|#60);"i" ,
    ""&(gt|#62);"i" ,
    ""&(nbsp|#160);"i" ,
    ""&(iexcl|#161);"i" ,
    ""&(cent|#162);"i" ,
    ""&(pound|#163);"i" ,
    ""&(kopija|#169);"i" ,
    ""(\d+);"e"); // Interpretuoti kaip php kodas$pakeisti = array("",
    "" ,
    "\\1" ,
    "\"" ,
    "&" ,
    "<" ,
    ">" ,
    " " ,
    chr (161),
    chr (162),
    chr (163),
    chr (169),
    "chr(\\1)" ); $tekstas = preg_replace($paieška, $pakeisti, $dokumentas);
    ?>

    Likusią valandos dalį diskutuojant apie PHP kalbą Habré svetainėje atsiras galimybė kurti sulankstomas sistemas, kurios gali nedžiuginti. Tačiau peržiūrėjęs daugiau nei tuziną žinomiausių žiniatinklio sistemų (Zend Framework, Adept, CakePHP, CodeIgniter, LIMB, Symfony, MZZ ir kt.), radau platų zivuvannyam asortimentą, rodomą kai kuriuose elementarių dalykų trūkumo šaltiniuose. optimizavimas.

    Siekiant, kad ši tema būtų labiau techniškai orientuota, rezultatai sudaromi griežtesne forma, kuri gali padėti lengviau suprasti.

    Otzhe, eime ... Užduotis yra paprasta: atlikti eksperimentus, kaip lyginti eilių eiles vienoje ir po kojomis. Iš esmės tiekimo grandinė bus aktuali ilgą laiką, susijusi su PHP eilučių apdorojimo ypatumais.

    Yra keletas straipsnių su pagrindiniu scenarijų optimizavimu tiek rusų, tiek kitomis kalbomis. Mažai kalbama apie eilutes, bet priskiriamas eilučių ties blauzdomis "analizavimas" tiems simboliams pakeisti (gydytojas, kaip ir oficialioje dokumentacijoje). Remiantis tuo, logiška manyti, kad roboto letenų eilučių skaičius bus didesnis, ta pati operacija su eilėmis vienoje letenoje.

    Yra bent vienas būdas PHP eilutes formuoti naudojant sprintf funkciją. Logiška manyti, kad šis metodas turėtų būti „standartinis“ naudojant greito paspaudimo funkciją ir analizuojant eilutę viduryje.

    Dar viena papildoma pastaba, prieš tai pateiksiu jums testo scenarijaus kodą: reikia apgauti 2 galimus robotų variantus eilėmis ties apatinėmis letenomis: patobulinti paprastą ir „srieginį“ kodavimo stilių. Tiems, kurie keičiasi stovėti ant burbuolės iš eilės, pagarba ne varto, pavieniui - smarvė tik užpakaliai:
    $string = "$_SERVER["HTTP_HOST"] – ne Uljanovsko srities administracija.
    і
    $string = "($_SERVER["HTTP_HOST"]) – ne Uljanovsko srities administracija.

    Testas numeris vienas.
    Na, visų pirma, sulaužyti visi įspėjimai – atėjo valanda parodyti darbo rezultatus. Gali būti žinomas testerio išėjimo kodas.

    Ekrano kopijos rodo, kad mano hipotezė nepasitvirtino. Vienas dalykas, kurį reikia pažymėti, buvo pripažinimas apie robotą eilėmis per sprintf. Svarbiausios buvo funkcijos, kurias galima dirbti su užpakalinėmis kojomis.

    Po nebanalios obmirkovuvannya situacijos paaiškinimas atėjo savaime: viskas, kas yra dešinėje toje, kurioje buvo naudojama atskaitos eilutė, kurioje buvo atlikti pakeitimai, yra per trumpa: analizatoriaus praėjimas išilgai tokios eilutės yra per trumpas. nenaudingas dešinėje. Tačiau čia galima pastebėti, kad savaiminis pakeitimo pakeitimas iš eilės suteikia pirmenybę paslydusiam stiliui.
    Šiuo atveju yra jungimo metodo trūkumas: duomenų įsipareigojimai, kuriuos reikėtų įterpti, peržiūrėti sutarčių įsipareigojimus. Žvaigždės paimtos iš važtaraščio, pasiskaityti galite jau žinomoje habratopikoje.

    Tačiau jūs turite patvirtinti šias mintis. Kam man reikėjo dar vieno testo su pasikeitimais galimybe atspėti tokio (man) nesuvokiamo elgesio priežastis. Galbūt penktoje versijoje buvo šiek tiek daugiau pakoreguotas (pripažįstu, penktoje php versijoje aš atlikau tik 1 testą: apeiti masyvų elementus).

    Testas numeris du.
    Kita hipotezė: nuleisti atskaitos eilutę, kad galbūt padidėtų darbo valandų skaičius ir funkcijos-testuotojai, sujungti su suformuotomis eilėmis ties apatinėmis kojomis, panašiai kaip rezultatas 1-ame teste. Tokia situacija teoriškai. , turi būti saugomas ir išbandytas. Mums reikia atlikti eilučių analizavimą ir daugiau valandų, dėl to nudažyti. Situacija su eilučių jungimu pavienėmis letenomis, manau, gausite maždaug tokį patį rezultatą kaip ir pirmajame teste, kuris suteiks nedidelį kabučių_3() funkcijos dalies pakeitimą visos darbo valandai. scenarijus (bet ne produktyvumo padidėjimas).

    Visnovka, kuri yra tik teigiama ir patvirtina hipotezę. Šiek tiek padidinus nuorodos eilutę, labai norisi sumažinti swidcode funkcijas robotams su judančiomis kojomis ir sprintf.

    Eilučių eilės nuleidimas pavienėmis letenomis taip pasireiškė: pirmam bandymui prireikė 36,75 % laiko, kitam – funkcija kabutės_3() užtruko 33,76 % scenarijaus laiko.

    Praktinė vertė.
    Kalbant mano paprastais žodžiais, abstrahuojantis nuo duomenų, galite dirbti su ūsais: kuo daugiau eilučių, kurioje reikia atlikti pakeitimą, tuo lengviau, kad operacija-sujungimas yra greitesnis, tuo žemesnė gyvatė pažastyse. Savanoriai gali išbandyti reikiamus įterpimo parametrus (pakeitimų skaičių, atskaitos eilės ilgį, pakaitinių eilių ilgį), kad smirdantys būtų patenkinti nakties valandų tolygumu.

    Axis, vlasne, ir viskas. Tik dar reikia pridurti, kad užprogramuotas dribnitsa negauna (nenoriu sakyti "taupymas ant sirniki" (c) Adelf) tiems, kurie mėgsta sakyti. Žinodami taip subtiliai ir priimdami tai iki pagarbos, galite parašyti kodą, kuris bus optimizuotas visiems;)

    PS:
    Testai buvo atlikti naudojant Zend Studio For Eclipse 6.0.0 (debugger + Profiler).
    PHP 5.2.5 versija
    Debian Linux OS

    PPS:
    Radžio, kad galėtumėte pasidalinti šių testų rezultatais. Manau, geriau leisti objektyviai įvertinti to chi ir kito pakeitimo būdo pasirinkimo poreikį eilėmis. Taip pat būsiu sveikas maketo ir dizaino stiliaus kritikas.

    Sandėliavimas