PHP խաբելու թերթիկ

PHP-Cheat-Sheet-PDFPHP- ի մեր խաբեությունների թերթիկը նպատակ ունի օգնել յուրաքանչյուրին, ով փորձում է տիրապետել կամ բարելավել PHP- ի իրենց գիտելիքները: Ծրագրավորման լեզուն վեբ զարգացման մեջ ամենատարածվածներից է: Այն գտնվում է WordPress- ի, աշխարհի ամենատարածված CMS- ի սրտում և ստեղծում է այլ հարթակների հիմքը, ինչպիսիք են Joomla- ն և Drupal- ը: (Մի կարոտեք երեքի համեմատությունը)


Դրանից բացի, PHP- ն բաց կոդ է և, հետևաբար, անվճար օգտագործման համար: 1995 թվականից ի վեր այն թողել է մի քանի թողարկում: Վերջին տարբերակը ՝ PHP 7.2, դուրս է եկել 2017-ի վերջին.

PHP- ը սերվերի կողմնակի լեզու է, այսինքն `այն կատարում է սերվերի վրա, ոչ թե օգտագործողի զննարկիչում (ի տարբերություն, օրինակ, JavaScript- ի): PHP սցենարները ստեղծում են HTML, որն այնուհետև փոխանցվում է զննարկիչին մեկնաբանության համար: Հետևաբար, օգտագործողը չի տեսնում ծածկագիրն ինքնին, այլ միայն արդյունքը.

php խաբել թերթիկ
Հեղինակ ՝ GgiaEsquema-proxy-internet.svg: Randomicc [CC BY-SA 3.0], Վիքիպահեստից ՝

Ծրագրավորման լեզուն համեմատաբար հեշտ է սովորել սկսնակների համար, բայց նաև առաջարկում է շատ առաջադեմ հնարավորություններ վետերան ծրագրավորողների համար.

Այդ իսկ պատճառով, հետևյալ PHP խաբեության թերթիկը ձեզ համար հարմար է, անկախ նրանից, թե որտեղ եք գտնվում ձեր ճանապարհորդության մեջ: Այն ընդգրկում է PHP- ի ամենակարևոր հասկացությունները և գործառույթները և գործում է որպես արագ հղման ուղեցույց նրանց համար, ովքեր օգտագործում են PHP- ն վեբ զարգացման համար.

Մենք շատ բան ունենք ծածկելու, այնպես որ եկեք մտնենք դրա մեջ: Եթե ​​դա ձեզ համար բավարար չէ, մենք ունենք նաև խաբել թերթեր HTML- ի, CSS- ի և jQuery- ի, ինչպես նաև վերոհիշյալ JavaScript- ի համար.

Contents

PHP խաբելու թերթիկ

  • Ներբեռնման հղում

PHP խաբեբան – հիմունքները

Մենք սկսում ենք հիմունքները `ինչպես PHP- ն ֆայլով հայտարարել, գրել մեկնաբանություններ և ելքային տվյալներ.

Ներառյալ PHP- ն ֆայլում

PHP ֆայլերը ավարտվում են .php. Բացի PHP- ից, դրանք կարող են պարունակել տեքստ, HTML, CSS և JavaScript: Որպեսզի զննարկիչը ճանաչի PHP- ն, դուք պետք է այն փակեք փակագծերում. և ?>. Հետևաբար, կարող եք PHP- ն իրականացնել մի էջում.

Գրող մեկնաբանություններ

Շատ այլ լեզուների նման, PHP- ն ունի նաև մեկնաբանություններ ավելացնելու հնարավորություն: Սա կարևոր է մարդկային ընթերցողների համար ձեր ծածկագիրը նշելու համար, բայց այնպես, որ զննարկիչը չի փորձում իրականացնել: PHP- ում դրա համար մի քանի եղանակ ունեք.

  • // - Նշում է մեկնաբանություններ, որոնք միայն մեկ տող են
  • # - Մեկ տող մեկնաբանություններ թողարկման մեկ այլ եղանակ
  • / *...* / - Ամեն ինչ միջև / * և * / չի իրականացվում, գործում է նաև մի քանի տողերով

Մեկնաբանությունների օգտագործման սովորական օրինակ է WordPress թեմաների վերնագրերը.

/ *
Թեման անվանումը ՝ քսանյոթ տասնյոթ
Թեմա URI ՝ https://wordpress.org/themes/twentyseventeen/
Հեղինակ ՝ WordPress թիմ
Հեղինակ URI. Https://wordpress.org/
Նկարագրություն. Քսանյոթ տասնյոթը ձեր կայքը կյանքի է կոչում վերնագրով տեսանյութով և ընկղմամբ նկարազարդ պատկերներով: Բիզնես կայքերի վրա կենտրոնանալով, այն պարունակում է առաջին բաժնի բազմաթիվ բաժիններ, ինչպես նաև ֆայլեր, նավիգացիա և սոցիալական ընտրացանկեր, պատկերանշան և այլն: Անհատականացրեք դրա ասիմետրիկ ցանցը սովորական գունային սխեմայով և ցուցափեղկով ցուցադրեք ձեր մուլտիմեդիա բովանդակությունը ՝ պոստ ձևաչափերով: 2017-ի մեր նախնական թեման հիանալի է աշխատում շատ լեզուներով, ցանկացած կարողությունների և ցանկացած սարքի համար.
Տարբերակ ՝ 1.5
Արտոնագիր. GNU- ի ընդհանուր հանրային արտոնագիր v2 կամ ավելի ուշ
Արտոնագիր URI. Http://www.gnu.org/licenses/gpl-2.0.html
Տեքստի տիրույթ ՝ քսանհինգ տասնյակ
Պիտակները `մեկ-սյունակ, երկ-սյունակ, աջակողմյան սլաք, ճկուն վերնագիր, մատչելիության պատրաստ, հարմարեցված գույներ, հարմարեցված վերնագիր, մաքսային-ընտրացանկ, պատվերով-պատկերանշան, խմբագրիչի ոճով, պատկերազարդ պատկերներով, ոստայնի հարմարանքներով ֆայլեր, post- ձևաչափեր, rtl լեզվով օժանդակություն, կպչուն գրություն, թեման-ընտրանքներ, թել-մեկնաբանություններ, թարգմանությունների պատրաստ

Այս թեման, ինչպես WordPress- ը, արտոնագրված է GPL- ի ներքո.
Օգտագործեք այն, որպեսզի ինչ-որ բան զվարճանա, զվարճացեք և կիսեք ուրիշների հետ ձեր սովորածը.
* /

Արտադրող տվյալներ

PHP- ում տվյալները սովորաբար ստացվում են ՝ օգտագործելով էխո կամ տպել. Օրինակ ՝ այս բլոգի գրառման վերնագիրը կարող է ցուցադրվել այսպիսի էջում.

PHP խաբելու թերթիկ«;

?>

Երկու հրամաններ էխո և տպել գրեթե նույնն են: Միակ տարբերությունն այն է, որ նախկինը չունի վերադարձման արժեք և կարող է վերցնել մի քանի պարամետր, մինչդեռ վերջինն ունի 1-ի վերադարձման արժեք և կարող է միայն մեկ փաստարկ վերցնել.

Կարևոր նշում. Ինչպես PHP- ի բոլոր մյուս հրամաններ, գործառույթներ էխո և տպել գործի զգայուն չեն: Դա նշանակում է, որ երբ գրում ես ԷՉՈ, Էքհո, էԽՈ կամ ցանկացած այլ տատանում, նրանք կշարունակեն աշխատել: Ինչպես դուք կսովորեք հետագա, դա ամենևին չի վերաբերում ամեն ինչի.

PHP գործառույթները գրելը

Գործառույթները կոդերի սովորաբար օգտագործվող կտորների դյուրանցումներ են: Դրանք ծրագրավորումը շատ ավելի հեշտացնում են, քանի որ պարտադիր չէ վերաօգտագործել երկար կոդ հատվածներ: Փոխարենը, դուք դրանք ստեղծում եք մեկ անգամ և օգտագործում եք դյուրանցումները, երբ դրանք ձեզ հարկավոր են.

Հնարավոր է ստեղծել ձեր սեփական PHP գործառույթները, բայց ծրագրաշարերի լեզվով ներմուծված շատերն էլ կան: PHP- ի խաբեբայությունների այս թերթի մեծ մասը նվիրված է դրան.

Գործառույթ ստեղծելու հիմնական շարահյուսը.

գործառույթ NameOfTheFunction ()

// Տեղադրել PHP կոդը այստեղ

}

Արագ բացատրություն. Առաջին մասը անվանումի գործառույթ է (հիշեցում. Ֆունկցիաների անունները գործի զգայուն չեն): Դրանից հետո գանգուր փակագծերի միջև ամեն ինչ այն է, ինչն անում է գործառույթը, երբ կանչվում է.

Փոփոխականներ և կայունություններ

Ծրագրավորման այլ լեզուների մեծ մասի նման, PHP- ն թույլ է տալիս աշխատել փոփոխականների և կայունների հետ: Սրանք կոդերի կտորներ են, որոնք պահպանում են տարբեր տեսակի տեղեկատվություն.

Փոփոխականների սահմանում

Փոփոխականների հետ որևէ բան անելու համար նախ պետք է դրանք սահմանել: PHP- ում նշում եք փոփոխական ՝ օգտագործելով $ ստորագրեք և հանձնեք դրա արժեքը `օգտագործելով =. Տիպիկ օրինակ.

Մի քանի կարևոր կետ.

  • Փոփոխականները պետք է սկսվեն տառով կամ ընդգծմամբ (_) և կարող է բաղկացած լինել միայն ալֆա-թվային նիշերից
  • PHP- ի փոփոխականները գործի նկատմամբ զգայուն են, դա նշանակում է $ myVar և $ myvar նույնը չեն
  • Եթե ​​ձեր փոփոխականը բաղկացած է ավելի քան մեկ բառից կամ գրեք այն $ my_variable կամ $ myVariable

Տվյալների տեսակները

Փոփոխականները կարող են վերցնել տվյալների տարբեր տեսակներ.

  • Հետաքրքրություններ - Տոկոսները ոչ տասնորդական թվեր են `-2,147,483,648-ի և, 147,483,647-ի միջև: Նրանք պետք է ունենան առնվազն մեկ նիշ և տասնորդական միավոր: Այն կարող է լինել տասնորդական, վեցանկյուն կամ օկտալ.
  • Լողում է - Սա անվանումն է տասնորդական կետով կամ արտահայտիչ ձևով.
  • Տողեր - Սա պարզապես նշանակում է տեքստ, որի մասին մենք մանրամասն կխոսենք ստորև.
  • Բուլյան արժեքներ - Նշանակում է իրական / կեղծ հայտարարություններ.
  • Զանգվածներ - Զանգույցները փոփոխական են, որոնք պահում են մի քանի արժեքներ: Նրանց մասին մանրամասն կխոսենք ստորև.
  • Օբեկտներ - Օբեկտները պահպանում են ինչպես տվյալները, այնպես էլ տեղեկատվությունը, թե ինչպես մշակել դրանք.
  • Ռեսուրսներ - Սրանք PHP- ից դուրս գործառույթների և ռեսուրսների հղումներ են.
  • ԴԱՏԱՐԿ - Փոփոխական, որը NULL է, որևէ արժեք չունի.

Անհրաժեշտ չէ որոշակի ձևով PHP փոփոխականներ հայտարարել: Նրանք ավտոմատ կերպով վերցնում են իրենց պարունակած տվյալների տեսակը.

Փոփոխական շրջանակ

Փոփոխականները կարող են հասանելի լինել տարբեր ոլորտներում ՝ նկատի ունենալով սցենարի այն մասը, որին կարող եք մուտք ունենալ: Սա կարող է լինել համաշխարհային, տեղական և ստատիկ.

Գործառույթից դուրս հայտարարված ցանկացած փոփոխական հասանելի է աշխարհում: Դա նշանակում է, որ դրան կարելի է մուտք գործել նաև որևէ գործառույթից դուրս.

Եթե ​​գործառույթի ներսում փոփոխական եք հայտարարում, ապա դա կլինի տեղական շրջանակ: Հետևանքն այն է, որ դրան կարելի է հասնել միայն այդ գործառույթի շրջանակներում.

Դրա շուրջը տեղական փոփոխականն ավելացնելն է համաշխարհային. Այդ եղանակով, այն դառնում է համաշխարհային շրջանակի մաս.

գործառույթ myFunction ()
գլոբալ $ a, $ b;
$ b = $ a - $ b;
}

Երկու դեպքում էլ փոփոխականը դառնում է մաս $ GLOBALS ներքևում նշված փոփոխական.

Վերջապես, հնարավոր է նաև ավելացնել ստատիկ տեղական փոփոխականի դիմաց: Այդ կերպ այն չի ջնջվի գործառույթի ավարտից հետո և կարող է օգտագործվել նորից.

Նախանշված փոփոխականներ

PHP- ն ունի նաև մի շարք լռելյայն փոփոխականներ, որոնք կոչվում են գերգլոբալներ. Դա այն է, որ դրանք մատչելի են ցանկացած վայրից ՝ անկախ շրջանակից.

  • $ GLOBALS - Օգտագործվում է PHP սցենարի ցանկացած այլ վայրից գլոբալ փոփոխականներին մուտք գործելու համար
  • $ _SERVER - Պարունակում է տեղեկատվություն վերնագրերի տեղակայման վայրերի, ուղիների և գրությունների մասին
  • $ _ GET - Կարող են հավաքել տվյալներ, որոնք ուղարկվել են URL- ով կամ ներկայացվել են HTML ձևով
  • $ _POST - Օգտագործվում է HTML ձևից տվյալներ հավաքելու և փոփոխականներ փոխանցելու համար
  • $ _REQUEST - Նաև հավաքում է տվյալները HTML ձևաթուղթ ներկայացնելուց հետո

Փոփոխական գործառույթների գործառույթներ

Դրանից բացի, փոփոխականների հետ աշխատելու համար կա մի ամբողջ շարք գործառույթներ.

  • բոլվալ - Օգտագործվում է փոփոխականի boolean արժեքը ստանալու համար
  • debug_zval_dump - Արդյունքում է ներքին zend արժեքի լարային ներկայացումը
  • դատարկ - Ստուգում է փոփոխականը դատարկ է, թե ոչ
  • floatval - Ստացեք փոփոխականի float արժեքը (երկբևեռ ևս մեկ հնարավորություն)
  • get_defined_vars - Վերադարձնում է սահմանված բոլոր փոփոխականությունների շարքը
  • get_resource_type - Վերադարձնում է ռեսուրսի տեսակը
  • ստացող - Վերականգնում է փոփոխական տեսակը
  • ներմուծում - Ներմուծեք GET / POST / Cookie փոփոխականները համաշխարհային տիրույթում
  • ինտվալ - Գտեք փոփոխականի ամբողջ թիվը
  • is_array- ն է - Ստուգում է, թե արդյոք փոփոխականը զանգված է
  • is_bool - Պարզում է ՝ փոփոխականը բոլա՞կ է
  • is_callable - Ստուգեք `կարող եք անվանել փոփոխականի բովանդակությունը որպես գործառույթ
  • is_countable - Ստուգեք, արդյոք փոփոխականի պարունակությունը հաշվարկվա՞ծ է
  • is_float - Պարզեք, թե արդյոք փոփոխականի տեսակը float է, այլընտրանքները. is_double և is_real- ը
  • is_int - Ստուգեք, թե արդյոք փոփոխականի տեսակը ամբողջ թիվ է, is_integer և is_long նույնպես աշխատում է
  • is_iterable - Ստուգեք, որ փոփոխականի բովանդակությունը կրկնվող արժեք է
  • is_null - Ստուգում է, թե արդյոք փոփոխականի արժեքը NULL է
  • is_numeric - Պարզեք, արդյոք փոփոխականը համարն է կամ թվային տողը
  • is_object է - Որոշում է `փոփոխականը օբյեկտ է
  • is_resource - Ստուգեք, թե արդյոք փոփոխականը ռեսուրս է
  • is_scalar - Թեստեր, եթե փոփոխականը սալալ է
  • is_string - Պարզեք ՝ փոփոխականի տեսակը տող է
  • թողարկել - Որոշեք, թե արդյոք փոփոխական է սահմանված, և NULL չէ
  • print_r - Տրամադրում է մարդու կողմից ընթերցվող տեղեկատվություն փոփոխականի մասին
  • սերիալիզացնել - Առաջացնում է պահեստավորված արժեքի ներկայացուցչություն
  • հավաքածու - Սահմանում է փոփոխականի տեսակը
  • շեղ - Վերականգնում է փոփոխականի լարային արժեքը
  • չօգտագործել - Ստեղծում է PHP արժեք պահված ներկայացուցչությունից
  • անկարգություն - Unsets փոփոխական է
  • var_dump - Քանդում է փոփոխականի մասին տեղեկատվությունը
  • var_export - Արդյունք է տալիս կամ վերադարձնում է փոփոխականի տողի ներկայացուցչությունը, որը հնարավոր է վերլուծել

Հաստատուններ

Բացի փոփոխականներից, կարող եք նաև սահմանել հաստատուններ, որոնք նույնպես պահպանում են արժեքներ: Ի տարբերություն փոփոխականների, դրանց արժեքը չի կարող փոփոխվել, այն փակված է.

PHP- ում կարող եք սահմանել հաստատուն.

սահմանել (անուն, արժեք, ճշմարիտ / կեղծ)

Առաջինը անունն է, երկրորդը `հաստատունի արժեքը, իսկ երրորդը` պարամետրը, թե արդյոք նրա անունը պետք է լինի զգայուն (դեֆոլտ է կեղծ).

Կոնստանտները օգտակար են, քանի որ դրանք թույլ են տալիս փոխել արժեքը մի ամբողջ սցենարի համար մեկ վայրում `փոխարենը փոխարինելու դրա յուրաքանչյուր օրինակը: Դրանք նաև գլոբալ բնույթ են կրում, ինչը նշանակում է, որ նրանց հասանելի է ցանկացած վայրից.

Օգտագործողի կողմից սահմանված հաստատուններից բացի, կան նաև մի շարք լռելյայն PHP հաստատուններ.

  • __LINE__ - Նշում է ընթացիկ տողի քանակը ֆայլում
  • __FILE__ - Ֆայլի ամբողջական ճանապարհն ու անունն է
  • __DIR__ - Ֆայլի տեղեկատու
  • __FUNCTION__ - Գործառույթի անվանումը
  • __CLASS__ - Դասի անուն, ներառում է հայտարարագրման անուն-տարածքը
  • __TRAIT__ - Առանձնահատկություն, ներառում է նաև անվանման վայր
  • __METHOD__ - Դասի մեթոդի անվանումը
  • __NAMESPACE__ - Ներկայիս անունների տարածքը

PHP զանգվածներ - խմբավորված արժեքներ

Միջոցները մի փոփոխականում մի քանի արժեքներ կազմակերպելու միջոց են, որպեսզի դրանք օգտագործվեն միասին: Թեև գործառույթները նախատեսված են կոդերի բլոկի համար, զանգվածները նախատեսված են արժեքների համար `տեղեկատվության ավելի մեծ մասերի պահատու.

PHP- ում կան տարբեր տեսակի զանգվածներ.

  • Ինդեքսավորված զանգվածներ - զանգվածներ, որոնք ունեն թվային ինդեքս
  • Ասոցիատիվ զանգվածներ - զանգվածներ, որտեղ նշված են ստեղները
  • Բազմաստիճան զանգվածներ - զանգվածներ, որոնք պարունակում են մեկ կամ մի քանի այլ զանգվածներ

PHP- ում զանգվածի հայտարարում

PHP- ում զանգվածները ստեղծվում են զանգված () գործառույթ.

Զանգահարման ստեղները կարող են լինել տողեր կամ ամբողջ թվեր.

Զանգվածի գործառույթները

PHP- ն առաջարկում է զանգվածային կանխադրված գործառույթներ զանգվածների հետ աշխատելու համար.

  • array_change_key_case - Զանգվածի բոլոր բանալիները մեծատառ կամ փոքրատառ փոխում են
  • array_chunk - Զանգվածը բաժանում է կտորների
  • array_column - Աղյուսակում վերցնում է արժեքները մեկ սյունակից
  • array_combine - Միավորում ստեղները մեկ զանգվածից և արժեքները մյուսից նոր զանգված
  • array_count_values - Հաշվում է զանգվածի բոլոր արժեքները
  • array_diff - Համադրում է զանգվածները, վերադարձնում է տարբերությունը (միայն արժեքները)
  • array_diff_assoc - Համեմատում է զանգվածները, վերադարձնում է տարբերությունը (արժեքները և ստեղները)
  • array_diff_key - Համեմատում է զանգվածները, վերադարձնում է տարբերությունը (միայն ստեղները)
  • array_diff_uassoc - Համեմատում է զանգվածները (ստեղները և արժեքները) օգտագործողի հետադարձ կապի գործառույթի միջոցով
  • array_diff_ukey - Համեմատում է զանգվածները (միայն ստեղները) օգտագործողի հետադարձ կապի գործառույթի միջոցով
  • array_fill - Լրացնում է մի շարք արժեքներով
  • array_fill_keys - Լրացնում է զանգված արժեքներով, նշելով ստեղները
  • array_filter - Զանգվածի տարրերը զտում է հետադարձ կապի գործառույթի միջոցով
  • array_flip - Զանգվածի բոլոր բանալիները փոխանակում են իրենց հարակից արժեքների հետ
  • array_intersect - Համեմատեք զանգվածները և վերադարձեք նրանց հանդիպումները (միայն արժեքները)
  • array_intersect_assoc - Համեմատեք զանգվածները և վերադարձեք նրանց համընկնումները (ստեղներ և արժեքներ)
  • array_intersect_key - Համեմատեք զանգվածները և վերադարձեք նրանց հանդիպումները (միայն ստեղները)
  • array_intersect_uassoc - Համեմատեք զանգվածները `օգտագործողի կողմից սահմանված հետադարձ կապի գործառույթի միջոցով (ստեղներ և արժեքներ)
  • array_intersect_ukey - Համեմատեք զանգվածները `օգտագործողի կողմից սահմանված հետադարձ կապի գործառույթի միջոցով (միայն ստեղները)
  • array_key_exists - Ստուգում է, եթե նշված բանալին առկա է զանգվածում, այլընտրանքային. key_exists
  • array_keys - Վերադարձնում է բոլոր ստեղները կամ բանալիների ենթաբազմությունը զանգվածում
  • array_map - Դիմում է հետադարձ կապի տվյալ զանգվածի տարրերի վրա
  • array_merge - Միավորել մի քանի կամ մի շարք
  • array_merge_recursive - Հետադարձորեն միավորեք մեկ կամ մի քանի զանգվածներ
  • array_multisort - Բազմաթիվ կամ բազմաչափ զանգվածների տեսակները
  • array_pad - Զանգվածի մեջ տեղադրում է նշված քանակի կետերը (նշված արժեքով)
  • array_pop - Զանգվածի վերջից ջնջում է մի տարր
  • array_product - Հաշվարկեք բոլոր արժեքների արտադրանքը զանգվածում
  • array_push - Հաղորդեք զանգվածի ավարտին մեկ կամ մի քանի տարր
  • array_rand - Ընտրեք զանգվածից մեկ կամ մի քանի պատահական գրառում
  • array_reduce - Նվազեցրեք զանգվածը մեկ տող ՝ օգտագործողի կողմից սահմանված գործառույթ օգտագործելով
  • array_replace - Առաջին զանգվածի տարրերը փոխարինում է հետևյալ շարքերից արժեքներով
  • array_replace_recursive - Ռեկուրսիվորեն փոխարինում է տարրերը հետագա զանգվածներից առաջին զանգված
  • array_reverse - Հակադարձ կարգով վերադարձնում է զանգվածը
  • array_search - Փնտրում է զանգվածը տվյալ արժեքի համար և հաջողության դեպքում վերադարձնում է առաջին բանալին
  • array_shift - Տեղափոխում է տարրը զանգվածի սկզբից
  • array_slice - Արդյունահանվում է զանգվածի մի կտոր
  • array_splice - Հեռացնում է զանգվածի մի մասը և փոխարինում այն
  • array_sum - Հաշվարկեք արժեքների գումարը զանգվածում
  • array_udiff - Համեմատեք զանգվածները և վերադարձնեք տարբերությունը օգտագործողի գործառույթի միջոցով (միայն արժեքները)
  • array_udiff_assoc - Համեմատեք զանգվածները և վերադարձնեք տարբերությունը `օգտագործելով լռելյայն և օգտագործողի գործառույթը (ստեղներ և արժեքներ)
  • array_udiff_uassoc - Համեմատեք զանգվածները և վերադարձնեք տարբերությունը `օգտագործելով երկու օգտագործողի գործառույթներ (արժեքներ և ստեղներ)
  • array_uintersect - Համեմատեք զանգվածները և հանդիպումները վերադարձնեք օգտվողի գործառույթի միջոցով (միայն արժեքները)
  • array_uintersect_assoc - Համեմատեք զանգվածները և հանդիպումները վերադարձնեք լռելյայն օգտագործողի գործառույթի միջոցով (ստեղներ և արժեքներ)
  • array_uintersect_uassoc - Համեմատեք զանգվածները և հանդիպումները վերադարձնեք օգտագործողի երկու գործառույթների միջոցով (ստեղներ և արժեքներ)
  • array_unique - Հեռացնում է կրկնօրինակ արժեքները զանգվածից
  • array_unshift - Զանգվածի սկզբում ավելացնում է մեկ կամ մի քանի տարր
  • array_values - Վերադարձնում է զանգվածի բոլոր արժեքները
  • array_walk - Կիրառում է օգտագործողի գործառույթը զանգվածի յուրաքանչյուր տարրում
  • array_walk_recursive - Ռեկուրսիվորեն կիրառվում է օգտագործողի գործառույթը զանգվածի յուրաքանչյուր տարրի վրա
  • զինանոց - Տեսակավորեք ասոցիատիվ զանգված `իջնելու կարգով` ըստ արժեքի
  • ասորտ - Տեսակավորեք ասոցիատիվ զանգվածը աճման կարգով `ըստ արժեքի
  • կոմպակտ - Ստեղծեք զանգված, որը պարունակում է փոփոխականներ և դրանց արժեքները
  • հաշվել - Հաշվեք բոլոր տարրերը զանգվածում, այլընտրանքորեն օգտագործեք չափս
  • ընթացիկ - Վերադարձնում է առկա տարրը զանգվածում, այլընտրանքային տարբերակն է պոզ
  • յուրաքանչյուրը - Վերադարձեք ստեղնաշարի և արժեքի զույգը զանգվածից
  • վերջ - Ներքին ցուցիչը դասավորեք զանգվածի վերջին տարրին
  • քաղվածք - Զանգվածից փոփոխականներ ներմուծեք ներկայիս խորհրդանիշային աղյուսակում
  • in_array - Ստուգում է, եթե մի շարք գոյություն ունի զանգվածում
  • բանալի - Ողջակում է բանալին զանգվածից
  • krsort - Հակադարձ կարգով դասավորելով ասոցիատիվ զանգված
  • կսորտ - Առանձնացնելով ասոցիատիվ զանգված
  • ցուցակ - Հանձնարարում է փոփոխականներին, կարծես զանգված
  • natcasesort - Տեսակավորում է զանգված ՝ օգտագործելով «բնական կարգի» ալգորիթմ ՝ գործից անկախ
  • նատսորտ - Տեսակավորել զանգված ՝ օգտագործելով «բնական կարգ» ալգորիթմ
  • հաջորդը - Առաջարկեք զանգվածի ներքին ցուցիչը
  • նախորդ - Տեղափոխեք ներքին զանգվածի սլաքը դեպի ետ
  • միջակայքը - Մի շարք տարրերից ստեղծում է զանգված
  • վերակայել - Ներքին զանգվածի ցուցիչը դրեք իր առաջին տարրին
  • rsort - Աղյուսակը հակառակ կարգով դասավորեք
  • խորամանկել - Փոխարկել զանգվածը
  • տեսակավորել - Տեսակավորված ինդեքսավորված զանգված ՝ աճման կարգով
  • uasort - Տեսակավորում է զանգված ՝ օգտագործողի կողմից սահմանված համեմատության գործառույթով
  • uksort - Կազմեք ստեղները ըստ ստեղների, օգտագործողի կողմից որոշված ​​համեմատության գործառույթի միջոցով
  • usort - Դասակարգեք զանգվածը ըստ արժեքների ՝ օգտագործողի կողմից սահմանված համեմատական ​​գործառույթ օգտագործելով

PHP տողեր

Ծրագրավորման մեջ ՝ խոսքի տողեր ոչ այլ ինչ են, քան տեքստը: Ինչպես մենք ավելի վաղ կարգավորել ենք, դրանք փոփոխականների համար նույնպես ճիշտ արժեք են.

Տողերի սահմանում

PHP- ում տողերը որոշելու մի քանի եղանակ կա.

  • Միայնակ գնանշումներ - Սա ամենապարզ ձևն է: Պարզապես փաթեթավորեք ձեր տեքստը ' մարկերները և PHP- ն այն կկարգավորեն որպես տող.
  • Կրկնակի գնանշումներ - Որպես այլընտրանք կարող եք օգտագործել ». Երբ դա անես, հնարավոր է օգտագործել ստորևից խուսափող նիշերը հատուկ նիշեր ցուցադրելու համար.
  • հերեդոկ - Սկսեք լար <<< և նույնականացուցիչ, ապա լարը շարադրեք նոր տողում: Փակեք այն մեկ այլ տողում `կրկնելով նույնացուցիչը. հերեդոկ իրեն պահում է երկչոտ տողերի նման.
  • այժմդոկ - Ինչ է հերեդոկ նախատեսված է երկչոտ շարքերի համար, բայց միայնակ գնանշումների համար: Այն աշխատում է նույն կերպ և վերացնում փախուստի նիշերի անհրաժեշտությունը.

Նշում. Տողերը կարող են պարունակել փոփոխականներ, զանգվածներ և առարկաներ.

Փախուստի կերպարներ

  • \ n - Linefeed
  • \ ռ - Փոխադրման վերադարձ
  • \ տ - Հորիզոնական ներդիր
  • \ v - Ուղղահայաց ներդիր
  • \ ե - Փախուստ
  • \ զ - Ձևաթուղթ
  • \\ - հետընթաց
  • \ $ - դոլարի նշան
  • / ' - Միակ մեջբերում
  • \ " - Կրկնակի մեջբերում
  • \ [0-7] {1,3 - Բնութագիրը օկտիկական նոտացիայի մեջ
  • \ x [0-9A-Fa-f] {1,2} - Նիշերը hexadecimal նոտայում
  • \ u {[0-9A-Fa-f] + - լարային ՝ որպես UTF-8 ներկայացուցչություն

Լարային գործառույթները

  • addcslashes () - Վերադարձնում է հետին սլաքներով տողը նշված նիշերի առջև
  • հավելումներ () - Վերադարձնում է թրթռումներով շարքին նիշերի դիմաց, որոնք պետք է խուսափել
  • bin2hex () - ASCII նիշի տողը վերածում է վեցանկյուն արժեքների
  • կտրել () - Հեռացնում է տարածությունը կամ այլ նիշ տողի աջ ծայրից
  • chr () - Վերադարձնում է նիշ `նշված ASCII արժեքից
  • chunk_split () - Լարը բաժանում է մի շարք ավելի փոքր մասերի
  • convert_cyr_string () - Կիրիլլիկ կերպարից մեկ այլ շարքը վերածում է տողի
  • convert_uudecode () - վերծանում է uuencoded տողը
  • convert_uuencode () - ծածկագրում է տողը uuencode- ով օգտագործելով
  • count_chars () - Վերադարձնում է տողի հերոսների մասին տեղեկատվությունը
  • crc32 () - Հաշվարկում է 32 բիթանոց CRC տողի համար
  • ծպտյալ () - Վերադարձնում է խառատ լար
  • էխո () - Արդյունք է տալիս մեկ կամ մի քանի տող
  • պայթել () - Կտրում է շարքը դեպի զանգված
  • fprintf () - Գրում է ձևավորված տողը նշված ելքային հոսքին
  • get_html_translation_table () - Վերադարձնում է թարգմանության աղյուսակը, որն օգտագործվում է htmlspecialchars () և htmlentities ()
  • hebrev () - Եբրայերեն տեքստը վերափոխում է տեսողական տեքստի
  • hebrevc () - Եբրայերեն տեքստը վերածում է տեսողական տեքստի և իրականացնում HTML տողի ընդմիջումները
  • hex2bin () - Թարգմանեք hexadecimal արժեքները ASCII նիշերին
  • html_entity_decode () - HTML սուբյեկտներին վերածում է նիշերի
  • htmlentities () - Նիշերը վերածում է HTML սուբյեկտների
  • htmlspecialchars_decode () - Հատուկ HTML սուբյեկտները վերափոխում է նիշերի
  • htmlspecialchars () - Նախանշված նիշերը փոխանցում է HTML սուբյեկտներին
  • պայթել () - Վերադարձնում է շարքը զանգվածի տարրերից ՝ նույնը միանալ ()
  • lcfirst () - Փոփոխում է տողի առաջին նիշը փոքրատառով
  • levenshtein () - Հաշվում է Լեվենշտեյնի հեռավորությունը երկու տողի միջև
  • localeconv () - Վերադարձնում է տեղեկությունները տեղանքի համար թվային և դրամական ձևաչափման վերաբերյալ
  • ltrim () - Հեռացնում է տողերի ձախ կողմում գտնվող տարածքները կամ այլ նիշ
  • md5 () - Հաշվում է տողի MD5 հեշը և վերադարձնում այն
  • md5_file () - Հաշվում է ֆայլի MD5 հեշը
  • մետաֆոն () - Ապահովում է տողի մետաֆոնային բանալին
  • money_format () - Վերադարձնում է լարը որպես արժույթի լար
  • nl_langinfo () - Տվյալ տեղացիների մասին տեղեկատվություն է տալիս
  • nl2br () - Տեղադրում է տողի HTML նոր տողերի ընդմիջում
  • number_format () - Ձևաչափում է մի շարք, ներառյալ խմբավորված հազարավորները
  • կարգ () - Վերադարձնում է տողի առաջին նիշի ASCII արժեքը
  • parse_str () - Մի տողը փոխում է փոփոխականների
  • տպել () - Արդյունք է տալիս մեկ կամ մի քանի տող
  • printf () - Արդյունքավորում է ձևափոխված լար
  • quoted_printable_decode () - Գնանշված-տպվող տողը վերափոխում է 8-բիթանոց երկուական
  • quoted_printable_encode () - Անցնում է 8-բիթանոց լարից դեպի մեջբերումով տպագրվող լար
  • քվիտետա () - Հետադարձ կապով տող է վերադարձնում մետաքսառատները
  • rtrim () - Շերտի աջ կողմի շերտեր և այլ կերպարներ
  • դասակարգում () - Տեղադրում է տեղանքի մասին տեղեկությունները
  • sha1 () - Հաշվարկում է տողի SHA-1 հեշը
  • sha1_file () - Նույնը անում է ֆայլի համար
  • similar_text () - Որոշում է երկու տողի միջև նմանությունը
  • soundex () - Հաշվում է տողի ձայնային բանալին
  • սպրինտ () - Վերադարձնում է ձևափոխված լար
  • sscanf () - Պարունակում է տողից մուտքագրումը `ըստ սահմանված ձևաչափի
  • str_getcsv () - Parses է CSV տողը զանգվածի մեջ
  • str_ireplace () - Նշված նիշերը տողի մեջ փոխարինում է փոխարինված փոխարինող գործերով (գործի աննկատելի)
  • str_pad () - Ծածկում է լարային տողը դեպի որոշակի երկարություն
  • str_repeat () - Կրկնում է մի շարք նախադրված մի քանի անգամ
  • str_replace () - Փոխում է նշված նիշը տողի մեջ (գործի նկատմամբ զգայուն)
  • str_rot13 () - Կատարում է ROT13 կոդավորումը տողի վրա
  • str_shuffle () - Պատահականորեն փոխում է նիշերը տողի մեջ
  • str_split () - տողերը բաժանում է զանգվածների
  • str_word_count () - Վերադարձնում է բառերի քանակը տողում
  • strcasecmp () - Երկու տողի պարապ-աննկատելի համեմատություն
  • strcmp () - Երկուական անվտանգ լարային համեմատություն (գործի զգայուն)
  • զամբյուղ () - Համեմատում է երկու տողի ՝ տեղանքի հիման վրա
  • strcspn () - Վերադարձնում է տողի մեջ հայտնաբերված նիշերի քանակը `նախքան նշված նիշերի առաջացումը
  • strip_tags () - Հեռացնում է HTML և PHP պիտակները տողից
  • ժապավեններ () - Հակառակ addcslashes ()
  • ժապավեններ () - Հակառակ հավելումներ ()
  • ստրիպոս () - Գտնում է տողի մեջ ենթաբազմության առաջին առաջացման դիրքը (գործը անզգայուն է)
  • stristr () - Գործազուրկ տարբերակ strstr ()
  • խստացնել () - Վերադարձնում է տողի երկարությունը
  • strnatcasecmp () - «բնական կարգի» ալգորիթմի օգտագործմամբ երկու տողի դեպքերի աննկատելի համեմատություն
  • strnatcmp () - Նույնը, ինչպես վերը նշված, բայց գործի զգայուն
  • strncasecmp () - Նիշերի սահմանված քանակի համեմատություն (դեպքի աննկատելի)
  • strncmp () - Նույնը, ինչպես վերը, բայց գործի զգայուն
  • strpbrk () - Որոնում է որևէ շարք նիշերի տող
  • տողեր () - վերադարձնում է տողի մեջ ենթաբողոնի առաջին առաջացման դիրքը (գործի զգայուն)
  • շտրիխ () - Գտնում է տողի վերջին դեպքը մեկ շարքի մեջ
  • strrev () - Լարում է տողը
  • strripos () - գտնում է լարային ենթաշերտի վերջին դեպքի դիրքը (գործը անզգայուն է)
  • ստրոպրոս () - Նույնը strripos () բայց գործի զգայուն
  • strspn () - Նիշերի քանակը տողի մեջ, որտեղ նշված ցուցակից միայն նիշեր ունեն
  • strstr () - Տողերի առաջին դեպքի համար մեկ այլ պարանի ներսում առաջին դեպքի զգայուն որոնում
  • strtok () - Լարը բաժանում է փոքր կտորների
  • strtolower () - Փոքր տողի բոլոր նիշերը վերածում է փոքրատառի
  • strtoupper () - Նույնը, բայց մեծատառ տառերի համար
  • strtr () - Թարգմանում է որոշակի նիշ տողի, այլընտրանքային. սղոց ()
  • սուբստր () - Վերադարձնում է տողի որոշակի մասը
  • substr_compare () - Համեմատում է երկու տող `նշված մեկնարկի դիրքից մինչև որոշակի երկարություն, ըստ ցանկության, զգայուն
  • substr_count () - Հաշվում է մի քանի անգամ, երբ սուբստրիսը տեղի է ունենում տողի մեջ
  • substr_replace () - Ենթակայքը փոխարինում է մեկ այլ բանի հետ
  • զարդարանք () - Հեռացնում է տարածությունը կամ տառի երկու կողմերից մյուս նիշերը
  • ucfirst () - Տողի առաջին նիշը վերածում է մեծատառի
  • ucwords () - Յուրաքանչյուր բառի առաջին նիշը տողի մեջ վերածում է մեծատառի
  • vfprintf () - Գրում է ձևավորված տողը նշված ելքային հոսքին
  • vprintf () - Արդյունքավորում է ձևափոխված լար
  • vsprintf () - Գրում է ձևափոխված տողի փոփոխականին
  • բառապաշար () - Մի տողը կարճացնում է տվյալ թվով նիշերի

PHP օպերատորներ

Օպերատորները թույլ են տալիս իրականացնել գործողություններ արժեքներով, զանգվածներով և փոփոխականներով: Կան մի քանի տարբեր տեսակներ.

Թվաբանության օպերատորներ

Ձեր ստանդարտ մաթեմատիկական օպերատորները.

  • + - լրացում
  • - - Քաշում
  • * - Բազմապատկում
  • / - բաժին
  • % - Մոդուլո (մնացածի արժեքի մնացած մասը)
  • ** - onentուցադրում

Նշանակման օպերատորներ

Բացի ստանդարտ առաջադրանքի օպերատորից (=), Դուք նաև ունեք հետևյալ տարբերակները.

  • += - a + = b նույնն է, ինչ a = a + b
  • -= - a - = b նույնն է, ինչ a = a - b
  • * = - a * = b նույնն է, ինչ a = a * b
  • / = - a / = b նույնն է, ինչ a = a / b
  • % = - a% = b նույնն է, ինչ a = a% b

Համեմատության օպերատորներ

  • == - հավասար
  • === - Նույնական
  • != - Հավասար չէ
  • <> - Հավասար չէ
  • !== - Նույնական չէ
  • < - Ավելի քիչ քան
  • > - ավելի մեծ, քան
  • <= - պակաս կամ հավասար
  • > = - Ավելի մեծ կամ հավասար
  • <=> - պակաս, հավասար, կամ ավելի մեծ, քան

Տրամաբանական օպերատորներ

  • և - Եվ
  • կամ - Կամ
  • xor - Բացառիկ կամ
  • ! - Ոչ
  • && - Եվ
  • || - Կամ

Bitwise օպերատորներ

  • & - Եվ
  • | - Կամ (ներառական կամ)
  • ^ - Xor (բացառիկ կամ)
  • ~ - Ոչ
  • << - հերթափոխը մնացել է
  • >> - Փոխեք աջ

Սխալների կառավարման օպերատոր

Դուք կարող եք օգտագործել @ նշան ՝ սխալների մասին հաղորդագրություններ առաջ բերելու կանխարգելման համար: Դա հաճախ կարևոր է անվտանգության նկատառումներից ելնելով, օրինակ ՝ գաղտնի տեղեկությունները անվտանգ պահելու համար.

Կատարման օպերատոր

PHP- ն աջակցում է կատարման մեկ օպերատորին, ինչը ` `` (հետադարձներ): Սրանք միայնակ գնանշաններ չեն: PHP- ն կփորձի կատարել հետևի մասերի պարունակությունը որպես shell հրահանգ.

Բարձրացման / անկման օպերատորներ

  • ++$ v - Մեկը մեծացնում է փոփոխականը, այնուհետև վերադարձնում այն
  • $ v++ - Վերադարձնում է փոփոխական, այնուհետև այն մեկով ավելացնում է
  • --$ v - Փոփոխում է փոփոխականը մեկ առ մեկ, այն վերադառնում է այնուհետև
  • $ v-- - Վերադարձնում է փոփոխականը, ապա մեկ-մեկ կրճատում այն

Լարային օպերատորներ

  • . - Օգտագործվում է համատեղել (նշանակում է համատեղել) փաստարկները
  • .= - Օգտագործվում էր ձախ կողմի վեճի աջ կողմում բերված փաստարկին հավելելու համար

Loop- ը PHP- ում

Հանգույցները շատ տարածված են ծրագրավորման մեջ: Դրանք թույլ են տալիս գործարկել նույն բլոկի ծածկագրով ՝ տարբեր պայմաններում: PHP- ն ունի մի քանի տարբեր.

Loop- ի համար

Այս տիպը կրկնակի անգամ անցնում է կոդով բլոկի ՝

համար (սկզբնական հաշվարկային արժեք; վերջացրած հակադարձ արժեք; ավելացում, որով կարելի է ավելացնել) {
// կոդը կատարելու համար գնում է այստեղ
}

Foreach Loop- ը

Օգտագործելով մի հանգույց նախաբազկություն յուրաքանչյուր տարրով անցնում է զանգվածով.

foreach ($ InsertYourArrayName որպես $ արժեք) {
// կոդը կատարելու համար գնում է այստեղ
}

Մինչև օղակը

Կոդի բլոկով անցնելը, քանի դեռ նշված պայմանն իրական է.

մինչդեռ (պայման, որը պետք է կիրառվի) {
// կոդը կատարելու համար գնում է այստեղ
}

Կատարեք… Մինչև օղակը

PHP- ի վերջնական հանգույցը միանգամից վարում է ծածկագրի կոճակը, այնուհետև կրկնում է հանգույցը այնքան ժամանակ, քանի դեռ տվյալ պայմանը ճշմարիտ է.

անել {
// կոդը կատարելու համար գնում է այստեղ;
} while (պայման, որը պետք է կիրառվի);

Պայմանական հայտարարություններ

Եթե ​​/ այլ հայտարարությունները նման են հանգույցներին: Դրանք հայտարարագիր են կոդավորման համար, միայն որոշակի հանգամանքներում: Դուք ունեք մի քանի տարբերակ.

Եթե ​​հայտարարություն

Կատարում է ծածկագիր, եթե մի պայման ճիշտ է.

եթե (պայման) {
// ծածկագիրը `պայմանը բավարարելու դեպքում կատարելու համար
}

Եթե… էլի

Գործում է մի կտոր կոդ, եթե պայմանը ճշմարիտ է, իսկ մեկ այլ `եթե ոչ.

եթե (պայման) {
// ծածկագիրը `պայմանը բավարարելու դեպքում կատարելու համար
} ուրիշ
// ծածկագիրը `պայմանը չկատարելու դեպքում կատարելու համար
}

Եթե… էլիեֆ… էլի

Երկուից ավելի պայմանների դեպքում իրականացնում է տարբեր ծածկագրեր.

եթե (պայման) {
// ծածկագիրը `պայմանը բավարարելու դեպքում կատարելու համար
} otherif (պայման)
// ծածկագիր ՝ այս պայմանը բավարարելու դեպքում կատարելու համար
} ուրիշ
// ծածկագիր `կատարելու համար, եթե պայմաններից ոչ մեկը բավարարված չէ
}

Փոխել հայտարարությունը

Կատարելու համար ընտրում է ծածկագրի մի քանի բլոկներից մեկը.

անջատիչ (n)
դեպք x:
կոդ ՝ եթե n = x կատարելու համար;
ընդմիջում;
դեպք y:
կոդ ՝ եթե n = y կատարելու համար;
ընդմիջում;
դեպք z:
ծածկագիր ՝ եթե n = z;
ընդմիջում;

// անհրաժեշտության դեպքում ավելացնել ավելի շատ դեպքեր

կանխադրված:
կոդը կատարելու համար, եթե n վերը նշվածներից ոչ մեկը չեն.
}

Ձևաթղթերի հետ աշխատել PHP- ում

PHP- ն հաճախ օգտագործվում է վեբ ձևերի կառավարման համար: Մասնավորապես, վերը նշվածը $ _ GET և $ _POST օգնեք հավաքել ձևաթղթով ուղարկված տվյալները: Երկուսն էլ կարողանում են մուտքերից վերցնել արժեքներ, սակայն դրանց օգտագործումը տարբերվում է.

Օգտագործելով GET vs POST

GET- ը հավաքում է տվյալները URL պարամետրերի միջոցով: Դա նշանակում է, որ բոլոր փոփոխական անունները և դրանց արժեքները պարունակվում են էջի հասցեում.

Դրա առավելությունն այն է, որ դուք կարողանում եք էջանշել տեղեկատվությունը: Հիշեք, որ դա նաև նշանակում է, որ տեղեկատվությունը տեսանելի է բոլորի համար: Այդ պատճառով GET- ը հարմար չէ այնպիսի զգայուն տեղեկատվության համար, ինչպիսիք են գաղտնաբառերը: Այն նաև սահմանափակում է տվյալների քանակը, որոնք կարող են ուղարկվել մոտ 2000 նիշով.

POST- ը, մյուս կողմից, օգտագործում է HTTP POST մեթոդը փոփոխականներին փոխանցելու համար: Սա տվյալներն անտեսանելի է դարձնում երրորդ անձանց համար, քանի որ այն ուղարկվում է HTTP մարմնում: Դուք չեք հասցնում այն ​​էջանշել.

POST- ի հետ սահմանափակումներ չկան այն քանակի վերաբերյալ, որը կարող եք ուղարկել: Դրանից բացի, այն նաև ունի առաջադեմ ֆունկցիոնալություն, ուստի նախընտրելի է մշակողների կողմից.

Անվտանգության ձև

Ամենակարևոր խնդիրը, երբ խոսքը վերաբերում է վեբ ձևերին, անվտանգությունն է: Եթե ​​պատշաճ կերպով տեղադրված չէ, դրանք խոցելի են խաչաձև գրոհների դեմ: Հակերները սցենարներ են ավելացնում չապահովված վեբ ձևերի վրա `դրանք օգտագործելու համար իրենց սեփական նպատակներով.

PHP- ն առաջարկում է նաև այդ հարձակումները խափանելու համար գործիքներ, մասնավորապես.

  • htmlspecialchars ()
  • զարդարանք ()
  • ժապավեններ ()

Դուք կնկատեք, որ մենք հանդիպեցինք այս բոլոր գործառույթներին տողերի վերաբերյալ նախորդ բաժնում: Երբ դրանք ընդգրկում եք ձևի տվյալները հավաքող սցենարում, կարող եք արդյունավետորեն խզել գործառույթների համար անհրաժեշտ նիշերի վնասակար գրությունները, դրանք դարձնելով անօգուտ.

Պահանջվող դաշտերը, սխալի հաղորդագրությունները և տվյալների վավերացումը

Դրանից բացի, PHP- ն ի վիճակի է սահմանել պահանջվող դաշտերը (դուք չեք կարող ներկայացնել ձևը, առանց դրանք լրացնելու), սխալների վերաբերյալ հաղորդագրություններ ցուցադրել, եթե որոշ տեղեկություններ բացակայում են և վավերացնել տվյալները: Մենք արդեն խոսել ենք դրա համար անհրաժեշտ գործիքների մասին.

Օրինակ, դուք կարող եք պարզապես սահմանել փոփոխականներ ձեր ձևի դաշտերի համար և օգտագործել դրանք դատարկ () գործառույթ `ստուգելու, թե արդյոք դրանք ունեն արժեքներ: Դրանից հետո ստեղծեք պարզ, եթե և այլ հայտարարություն `ուղարկված տվյալները ուղարկելու կամ սխալի հաղորդագրություն ուղարկելու համար.

Հաջորդ քայլը ներկայացված տվյալների ստուգման համար վավերականության ստուգումն է: Դրա համար PHP- ն առաջարկում է մի շարք զտիչներ, ինչպիսիք են FILTER_VALIDATE_EMAIL համոզվելու, որ ներկայացված էլ.փոստի հասցեն ունի ճիշտ ձևաչափ.

PHP զտիչներ

Զտիչները օգտագործվում են անապահով աղբյուրներից ստացվող տվյալների վավերացման և զտման համար: Ինչպես նշվեց, ընդհանուր օրինակ է օգտագործողի մուտքը: PHP- ն դրա համար առաջարկում է մի շարք զտիչ գործառույթներ և կայունություններ.

Զտիչի գործառույթները

  • filter_has_var () - Ստուգում է, եթե առկա է նշված տիպի փոփոխական
  • filter_id () - Վերադարձնում է նշված ֆիլտրին պատկանող նույնականացումը
  • filter_input () - Վերականգնում է նշված արտաքին փոփոխականը անունով և ըստ ցանկության զտում այն
  • filter_input_array () - Քաշում է արտաքին փոփոխականներին և ըստ ցանկության զտում դրանք
  • filter_list () - Վերադարձնում է բոլոր աջակցվող ֆիլտրերի ցուցակը
  • filter_var_array () - Ստանում է բազմաթիվ փոփոխականներ և ըստ ցանկության զտում է դրանք
  • filter_var () - Զտում է փոփոխական, նշված ֆիլտրով

Զտիչ կայունություն

  • FILTER_VALIDATE_BOOLEAN - Վավերացնում է բոուլան
  • FILTER_VALIDATE_EMAIL - Վավերացնում է էլ. Փոստի հասցեն
  • FILTER_VALIDATE_FLOAT - Հաստատում է բոց
  • FILTER_VALIDATE_INT - Ստուգում է ամբողջ թիվ
  • FILTER_VALIDATE_IP - Վավերացնում է IP հասցեն
  • FILTER_VALIDATE_REGEXP - Հաստատում է հերթական արտահայտությունը
  • FILTER_VALIDATE_URL - Վավերացնում է URL- ն
  • FILTER_SANITIZE_EMAIL - Հեռացնում է բոլոր ապօրինի նիշերը էլեկտրոնային փոստի հասցեից
  • FILTER_SANITIZE_EN CodeED - Հեռացնում / կոդավորում է հատուկ նիշերը
  • FILTER_SANITIZE_MAGIC_QUOTES - կիրառում է հավելումներ ()
  • FILTER_SANITIZE_NUMBER_FLOAT - Հեռացնում է բոլոր նիշերը, բացառությամբ թվանշաններից, + - և., EE
  • FILTER_SANITIZE_NUMBER_INT - Ազատվում է բոլոր նիշերից, բացի թվերից և + -
  • FILTER_SANITIZE_SPECIAL_CHARS - Հեռացնում է հատուկ նիշերը
  • FILTER_SANITIZE_FULL_SPECIAL_CHARS - Հատուկ նիշերը վերածում է HTML սուբյեկտների
  • FILTER_SANITIZE_STRING - Հեռացնում է պիտակները / հատուկ նիշերը տողից, այլընտրանքային. FILTER_SANITIZE_STRIPPED
  • FILTER_SANITIZE_URL - Բոլոր անօրինական նիշերը հանում է URL- ից
  • FILTER_UNSAFE_RAW - Ոչինչ, ըստ ցանկության, ժապավեն / կոդավորելու հատուկ նիշ
  • FILTER_CALLBACK - Զանգահարեք օգտվողի կողմից սահմանված գործառույթ ՝ տվյալների զտման համար

HTTP գործառույթները PHP- ում

PHP- ն ունի նաև գործառույթ ՝ զննարկիչից վեբ սերվերից ուղարկված տվյալները շահարկելու համար.

HTTP գործառույթներ

  • վերնագիր () - Հում HTTP վերնագիր է ուղարկում զննարկիչին
  • headers_list () - Պատասխանների վերնագրերի ցանկ, որոնք պատրաստ են ուղարկել (կամ արդեն ուղարկված)
  • headers_sent () - Ստուգում է, թե և որտեղ են ուղարկվել HTTP վերնագրերը
  • setcookie () - Սահմանում է այն cookie- ն, որը պետք է ուղարկվի HTTP- ի մնացած վերնագրերի հետ միասին
  • setrawcookie () - Սահմանում է մի cookie (առանց URL կոդավորման), որը պետք է ուղարկվի միասին

MySQL- ի հետ աշխատելը

Շատ հարթակներ, որոնք հիմնված են PHP- ի հետ, ֆոնին աշխատում են MySQL տվյալների բազայի հետ: Այդ պատճառով կարևոր է ծանոթանալ այն գործառույթներին, որոնք թույլ են տալիս աշխատել նրանց հետ.

MySQL գործառույթները

  • mysqli_affected_rows () - Նախորդ MySQL գործողության ընթացքում տուժած տողերի քանակը
  • mysqli_autocommit () - Միացրեք կամ անջատեք տվյալների ինքնուրույն կատարման տվյալների բազայի փոփոխությունները
  • mysqli_change_user () - Փոխում է տվյալ տվյալների բազայի միացման օգտագործողը
  • mysqli_character_set_name () - Տվյալների բազայի միացման համար սահմանված լռելյայն նիշ
  • mysqli_close () - Փակում է տվյալների շտեմարանի բաց կապը
  • mysqli_commit () - Կատարում է ընթացիկ գործարքը
  • mysqli_connect_errno () - Անցյալ կապի սխալի մասին սխալի ծածկագիրը
  • mysqli_connect_error () - Սխալի նկարագրությունը կապի վերջին սխալից
  • mysqli_connect () - Բացում է նոր կապ MySQL սերվերի հետ
  • mysqli_data_seek () - Արդյունքի սլաքը կամայական շարքով տեղափոխում է արդյունքի հավաքածու
  • mysqli_debug () - Կատարում է վրիպազերծման գործողություններ
  • mysqli_dump_debug_info () - Տեղեկությունները կարգաբերելու համար տեղեկամատյանները գցում են մատյան
  • mysqli_errno () - Վերջին գործառույթի զանգի վերջին սխալի վերջին կոդն է
  • mysqli_error_list () - Վերջին գործառույթի զանգի սխալների ցուցակ
  • mysqli_error () - Վերջին սխալի վերջին նկարագրությունը վերջին գործառույթի զանգի համար
  • mysqli_fetch_all () - Հետևում է բոլոր արդյունքների շարքերը որպես զանգված
  • mysqli_fetch_array () - Արդյունքում շարադրում է որպես ասոցիատիվ, թվային զանգված կամ երկուսն էլ
  • mysqli_fetch_assoc () - Կազմում է արդյունքի շարքը ՝ որպես ասոցիատիվ զանգված
  • mysqli_fetch_field_direct () - Մետատվյալներ ՝ մեկ դաշտի համար որպես օբյեկտ
  • mysqli_fetch_field () - Հաջորդ դաշտը `որպես օբյեկտ, դրված արդյունքի մեջ
  • mysqli_fetch_fields () - Մի շարք օբյեկտների, որոնք ներկայացնում են դաշտերը արդյունքների սահմանված կարգով
  • mysqli_fetch_lights () - Ընթացիկ շարքի սյունների երկարությունները արդյունքի հավաքածուի մեջ
  • mysqli_fetch_object () - Արդյունքի ներկա շարքը `որպես օբյեկտ
  • mysqli_fetch_row () - Ձևավորում է արդյունքների հավաքածուի մեկ շարքը և վերադարձնում այն ​​որպես թվարկված զանգված
  • mysqli_field_count () - Ամենավերջին հարցման համար սյունակների քանակը
  • mysqli_field_seek () - Դաշտի կուրսորը դնում է տվյալ դաշտի օֆսեթին
  • mysqli_field_tell () - Դաշտի կուրսորի դիրքը
  • mysqli_free_result () - Ազատում է արդյունքի հետ կապված հիշողությունը
  • mysqli_get_charset () - Նիշերի սահմանված օբյեկտ
  • mysqli_get_client_info () - MySQL հաճախորդի գրադարանի տարբերակը
  • mysqli_get_client_stats () - Վերադարձնում է հաճախորդի յուրաքանչյուր գործընթացի վիճակագրությունը
  • mysqli_get_client_version () - MySQL հաճախորդի գրադարանի տարբերակը ՝ որպես ամբողջական
  • mysqli_get_connection_stats () - Վիճակագրություն `հաճախորդի կապի վերաբերյալ
  • mysqli_get_host_info () - MySQL սերվերի հյուրընկալողի անունը և կապի տեսակը
  • mysqli_get_proto_info () - MySQL արձանագրության տարբերակը
  • mysqli_get_server_info () - Վերադարձնում է MySQL սերվերի տարբերակը
  • mysqli_get_server_version () - MySQL սերվերի տարբերակը ՝ որպես ամբողջական
  • mysqli_info () - Վերադարձնում է վերջերս կատարված հարցման վերաբերյալ տեղեկատվությունը
  • mysqli_init () - Նախաձեռնացնում է MySQLi- ը և վերադարձնում է օգտագործման համար ռեսուրս mysqli_real_connect ()
  • mysqli_insert_id () - Վերադարձնում է վերջին հարցումի մեջ օգտագործված ինքնաբերաբար ստեղծված ID- ն
  • mysqli_kill () - Հարցնում է սերվերին սպանել MySQL շարանը
  • mysqli_more_results () - Ստուգում է, եթե ավելի շատ արդյունքներ կան բազմաշերտ հարցման արդյունքում
  • mysqli_multi_query () - Կատարում է տվյալների բազայում մեկ կամ մի քանի հարցումներ
  • mysqli_next_result () - Պատրաստում է դրված հաջորդ արդյունքը mysqli_multi_query ()
  • mysqli_num_fields () - Արդյունքների հավաքածուի դաշտերի քանակը
  • mysqli_num_rows () - Տողերի քանակը արդյունքների շարքում
  • mysqli_options () - Սահմանում է կապի լրացուցիչ ընտրանքներ և ազդում վարքի վրա կապի համար
  • mysqli_ping () - Pանկում է սերվերի միացում կամ փորձում է նորից միանալ, եթե այն նվազել է
  • mysqli_prepare () - Պատրաստման համար պատրաստում է SQL հայտարարություն
  • mysqli_query () - Կատարում է հարցում ընդդեմ տվյալների բազայի
  • mysqli_real_connect () - Բացում է նոր կապ MySQL սերվերի հետ
  • mysqli_real_escape_string () - Փախչում է հատուկ նիշերի շարքում `SQL հայտարարության մեջ օգտագործելու համար
  • mysqli_real_query () - Կատարում է SQL հարցում
  • mysqli_reap_async_query () - Վերադարձնում է արդյունքը async հարցումից
  • mysqli_refresh () - Թարմացնում է աղյուսակները կամ պահոցները կամ վերագործարկում է կրկնօրինակման սերվերի տեղեկատվությունը
  • mysqli_rollback () - Վերադարձնում է տվյալների բազայի ընթացիկ գործարքը
  • mysqli_select_db () - Փոխում է կապի կանխադրված տվյալների բազան
  • mysqli_set_charset () - Սահմանում է կանխադրված հաճախորդի բնույթի հավաքածուն
  • mysqli_set_local_infile_default () - Unsets- ի կողմից օգտագործողի կողմից սահմանված բեռնաթափիչ ՝ LOAD LOCAL INFILE հրամանի համար
  • mysqli_set_local_infile_handler () - Զանգի հետադարձման գործառույթ է սահմանում LOAD DATA LOCAL INFILE հրամանի համար
  • mysqli_sqlstate () - Վերադարձնում է SQLSTATE սխալի կոդը վերջին MySQL գործողության համար
  • mysqli_ssl_set () - Ստեղծում է անվտանգ կապեր ՝ օգտագործելով SSL
  • mysqli_stat () - Ներկայիս համակարգի կարգավիճակը
  • mysqli_stmt_init () - Նախաձեռնում է հայտարարությունը և վերադարձնում օգտագործման համար առարկա mysqli_stmt_prepare ()
  • mysqli_store_result () - Փոխանցում է վերջին հարցումից ստացված արդյունքը
  • mysqli_thread_id () - Ընթացիկ կապի համար թեմայի ID
  • mysqli_thread_safe () - Վերադառնում է, եթե հաճախորդի գրադարանը կազմված է որպես թելի անվտանգ
  • mysqli_use_result () - նախաձեռնում է վերջին հարցումից ստացված արդյունքի ստացումը mysqli_real_query ()
  • mysqli_warning_count () - Միացման վերջին հարցումից նախազգուշացումների քանակը

Ամսաթիվը և ժամանակը

Իհարկե, PHP- ի գործառույթները ամսաթվի և ժամանակի համար չպետք է բացակայում են PHP- ի խաբեությունների որևէ թերթից.

Ամսաթիվ / ժամ գործառույթներ

  • չեկ () - Ստուգում է Գրիգորյան ամսաթվի վավերականությունը
  • date_add () - Ամսվա օբյեկտին ավելացնում է մի շարք օրեր, ամիսներ, տարիներ, ժամեր, րոպեներ և վայրկյաններ
  • date_create_from_format () - Վերադարձնում է ձևափոխված DateTime օբյեկտ
  • date_create () - Ստեղծում է DateTime նոր օբյեկտ
  • date_date_set () - Նոր ամսաթիվ է սահմանում
  • date_default_timezone_get () - Վերադարձնում է բոլոր գործառույթների կողմից օգտագործված լռելյայն ժամային գոտին
  • date_default_timezone_set () - Սահմանում է լռելյայն ժամային գոտին
  • date_diff () - Հաշվում է երկու ամսաթվերի տարբերությունը
  • date_format () - Վերադարձնում է որոշակի ձևաչափի համաձայն ձևափոխված ամսաթիվը
  • date_get_last_errors () - Վերադարձնում է ամսաթվերի տողի մեջ հայտնաբերված նախազգուշացումները կամ սխալները
  • date_interval_create_from_date_string () - Կազմում է DateInterval տողի համեմատական ​​մասերից
  • date_interval_format () - Ձևավորում է ընդմիջում
  • date_isodate_set () - Ամսաթիվ է սահմանում ISO 8601 ստանդարտների համաձայն
  • date_modify () - Փոփոխում է ժամանակացույցը
  • date_offset_get () - Վերադարձնում է ժամային գոտու փոխհատուցումը
  • date_parse_from_format () - Վերադարձնում է զանգված ՝ մանրամասն ամսաթվով, մանրամասներով ՝ ըստ սահմանված ձևաչափի
  • date_parse () - Վերադարձնում է զանգված ՝ մանրամասնելով որոշակի ամսաթվի մասին
  • date_sub () - Ենթադրում օրերը, ամիսները, տարիները, ժամերը, րոպեներն ու վայրկյանները
  • date_sun_info () - Վերադարձնում է զանգված, որը պարունակում է տեղեկատվություն մայրամուտի / արևածագի և մթնշաղի մեկնարկի / ավարտի մասին `նշված օրվա և վայրի համար
  • date_sunrise () - Արևածագի ժամը `նախատեսված օրվա և վայրի համար
  • date_sunset () - մայրամուտի ժամը որոշակի օրվա և գտնվելու վայրի համար
  • date_time_set () - Սահմանում է ժամանակը
  • date_timestamp_get () - Վերադարձնում է Unix- ի ժամանակացույցը
  • date_timestamp_set () - Սահմանում է ամսաթիվը և ժամանակը `հիմնվելով Unix- ի ժամանակացույցի վրա
  • date_timezone_get () - Վերադարձնում է տրված DateTime օբյեկտի ժամային գոտին
  • date_timezone_set () - Սահմանում է DateTime օբյեկտի ժամային գոտին
  • ամսաթիվը () - Ձևաչափում է տեղական ամսաթիվը և ժամանակը
  • ստանալ () - Ժամանակի դրոշման վայրի կամ ժամանակի մասին տեղեկատվություն կամ տեղական ներկայիս ամսաթիվը / ժամը
  • gettimeofday () - Ներկայիս ժամանակը
  • gmdate () - Ձևավորում է GMT / UTC ամսաթիվը և ժամը
  • gmmktime () - Unix- ի ժամանակային ցուցիչը GMT ամսաթվի համար
  • gmstrftime () - Ձևաչափում է GMT / UTC ամսաթիվը և ժամը `ըստ տեղանքի պարամետրերի
  • իդատ () - Տեղադրում է տեղական ժամանակ / ամսաթիվ `որպես ամբողջական
  • տեղական ժամանակ() - Տեղական ժամանակը
  • microtime () - Ընկերության Unix- ի ներկայիս ժամանակացույցը միկրոէկրաններով
  • mktime () - Unix- ի ժամկետի ամսաթիվը
  • շրջադարձային () - Տեղական պարամետրերի համաձայն ձևավորում է տեղական ժամանակ և / կամ ամսաթիվ
  • strptime () - Պարունակում է ժամանակի / ամսաթվի հետ միասին շրջադարձային ()
  • strtotime () - Անգլերեն տեքստը DateTime- ը վերածում է Unix- ի ժամանակացույցի
  • ժամանակը () - Ներկայիս ժամանակը ՝ որպես Unix- ի ժամանակացույց
  • timezone_abbreviations_list () - Վերադարձնում է զանգված, որը պարունակում է dst, օֆսեթ և ժամանման գոտի անվանումը
  • timezone_identifiers_list () - Ինդեքսավորված զանգված ՝ բոլոր ժամանակային գոտու նույնականիչներով
  • timezone_location_get () - Տեղորոշման տեղեկությունները նշված ժամանակահատվածի համար
  • timezone_name_from_abbr () - Ժամկետային գոտու անունը վերադարձնում է կարճից
  • timezone_name_get () - Ժամանակի գոտու անվանումը
  • timezone_offset_get () - Ժամային գոտին փոխհատուցվում է GMT- ից
  • timezone_open () - Ստեղծում է DateTimeZone նոր օբյեկտ
  • timezone_transitions_get () - Վերադարձնում է ժամանակային գոտու բոլոր անցումները
  • timezone_version_get () - Վերադարձնում է timezonedb- ի տարբերակը

Ամսաթիվը և ժամանակը ձևաչափելը

  • դ - 01-ից 31-ը
  • ժ - 1-ից 31-ը
  • Դ - Երկուշաբթի արևի միջով
  • լ - կիրակիից մինչև շաբաթ օր
  • Ն - 1 (մեկ ամսվա համար) մինչև 7-ը (Sat- ի համար)
  • վ - 0 (Արեգակի համար) 6-ից մինչև (Sat)
  • մ - Ամիսներ ՝ 01-ից 12-ը
  • ն - Ամիսներ ՝ 1-ից 12-ը
  • Ֆ - հունվարից մինչև դեկտեմբեր
  • Մ - հունվարից մինչև դեկտեմբեր
  • Յ - Չորս թվանշան տարի (օրինակ ՝ 2018 թ.)
  • յ - Երկու նիշ տարի (օր. 18)
  • Լ - Սահմանում է ՝ դա թռիչքային տարի է (1 կամ 0)
  • ա - ես և երեկո
  • Ա - Ա.Մ. և Վարչապետ
  • գ - Ժամեր 1-ից 12-ը
  • հ - Ժամեր 01-ից 12-ը
  • Գ - Ժամեր 0-ից 23-ը
  • Հ - Ժամեր 00-ից 23-ը
  • ես - 00-ից 59 րոպե
  • ս - 00-ից 59 վայրկյան

PHP- ի սխալներ

Վերջապես, այն ժամանակների համար, երբ գործերը հարթ չեն ընթանում, և դուք պետք է պարզեք, թե որտեղ է խնդիրը, PHP- ն առաջարկում է նաև գործառույթներ սխալների համար.

Սխալների գործառույթները

  • debug_backtrace () - Օգտագործվում է հետադարձ կապ ստեղծելու համար
  • debug_print_backtrace () - Տպում է հետադարձը
  • error_get_last () - Ստանում է տեղի ունեցած վերջին սխալը
  • error_log () - Սխալային հաղորդագրություն է ուղարկում վեբ սերվերի տեղեկամատյան, ֆայլ կամ փոստային հաշիվ
  • error_reporting () - Նշում է, թե որ PHP սխալներն են հաղորդվում
  • restore_error_handler () - Վերադառնում է նախորդ սխալի բեռնաթափման գործառույթին
  • restore_exception_handler () - Վերադառնում է նախորդ բացառության բեռնաթափմանը
  • set_error_handler () - Սահմանում է օգտագործողի կողմից սահմանված գործառույթը `սցենարի սխալները կարգավորելու համար
  • set_exception_handler () - Սահմանում է օգտագործողի կողմից սահմանված բացառության բեռնաթափման գործառույթը
  • trig_error () - Առաջացնում է օգտվողի մակարդակի սխալի հաղորդագրություն, կարող եք նաև օգտագործել user_error ()

Սխալի կայունություն

  • E_ERROR - atalակատագրական գործի սխալները, որոնք առաջացնում են սցենարի դադարեցում և չեն կարող վերականգնվել
  • E_WARNING - Ոչ ճակատագրական վազքի սխալներ, սցենարի կատարումը շարունակվում է
  • E_PARSE - Կազմել ժամանակի վերլուծության սխալները, պետք է ստեղծվեն միայն վերլուծողի կողմից
  • E_NOTICE - Run-time ծանուցումներ, որոնք ցույց են տալիս հնարավոր սխալ
  • E_CORE_ERROR - Pակատագրական սխալներ PHP- ի նախաստորագրման գործընթացում, ինչպես օրինակ E_ERROR PHP միջուկում
  • E_CORE_WARNING - Ոչ մահացու սխալներ PHP- ի գործարկման ժամանակ, նման է E_WARNING բայց PHP հիմքում
  • E_COMPILE_ERROR - Zend Scripting Engine- ի կողմից առաջ բերված ճակատագրական կազմման ժամանակի սխալները
  • E_COMPILE_WARNING - Zend Scriptting Engine- ի կողմից ոչ ճակատագրական կազմման ժամանակի սխալները
  • E_USER_ERROR - Երկրաշարժ օգտագործողի կողմից առաջ բերված սխալ, որը ծրագրավորողի կողմից սահմանվել է trig_error ()
  • E_USER_WARNING - Ոչ ճակատագրական օգտագործողի կողմից նախազգուշացում
  • E_USER_NOTICE - Օգտագործողի կողմից առաջադրված ծանուցում trig_error ()
  • E_STRICT - PHP- ի առաջարկությունները `ձեր կոդը բարելավելու համար (անհրաժեշտ է միացնել)
  • E_RECOVERABLE_ERROR - Ձեռնարկվող ճակատագրական սխալ, որը բռնել է օգտագործողի կողմից սահմանված բռնակը
  •  E_DEPRECATED - Միացրեք սա ստանալու համար նախազգուշացումներ այն օրենսգրքի վերաբերյալ, որը ապագայում ապացուցված չէ
  • E_USER_DEPRECATED - Օգտագործված նախազգուշացում ՝ արժեզրկված կոդի համար
  • E_ALL - Բոլոր սխալներն ու նախազգուշացումները, բացառությամբ E_STRICT

Եզրակացություն

PHP- ի շուրջ ձեր ճանապարհը իմանալը լավ գաղափար է բոլորի համար, ովքեր հետաքրքրված են վեբ ձևավորմամբ և վեբ ձևավորմամբ: Հատկապես, եթե ցանկանում եք ավելի լավ սուզվել ձեր սեփական վեբ կայքի ստեղծման տեխնիկական ասպեկտների մեջ.

Վերևում գտնվող PHP- ի խաբեության թերթիկը ձեզ ներկայացնում է PHP- ի որոշ կենտրոնական մասերի ակնարկ: Նշեք այն որպես հղում կամ օգտագործեք այն որպես ցատկահարթակ `ծրագրավորման լեզուի մասին ավելին իմանալու համար: Մենք անկեղծորեն հուսով ենք, որ այն գտել եք օգտակար ռեսուրս.

Եթե ​​ունեք որևէ այլ PHP խաբեության թերթիկ, խնդրում եմ մի հապաղեք մեզ տեղյակ պահել ներքևում գտնվող մեկնաբանությունների բաժնում!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map