Ինչ ծրագրեր են բացում php ֆայլերը: Ի՞նչ է PHP ֆայլի ընդլայնումը: Ինչ է անհրաժեշտ PHP-ն HTML-ով աշխատելու համար

Պատասխանները:

Պավել Էլագին.
Ինչու՞ եք ներբեռնել ֆայլը, եթե չգիտեք, թե ինչպես բացել այն:

Ակսել.
Սա php լեզվի ֆայլն է, որն օգտագործվում է վեբ սերվերների վրա: Եթե ​​չգիտեք, թե դա ինչ է, ապա հավատացեք ինձ, իմաստ չունի այն գործարկել:

առաջ:
Internet Explorer«ohm կամ ցանկացած այլ ինտերնետ բրաուզեր: PHP-ն դինամիկ ինտերնետ էջերի ձևաչափ է:

Շուրովիկ.
Ավաղ, դա ուղղակի սցենար է։ Ակնհայտ է, որ ծրագիրը, որով դուք ինչ-որ բան եք ներբեռնել, չկարողացավ ճիշտ մշակել սցենարը և ներբեռնեց այս սցենարը ձեր փնտրած ֆայլի փոխարեն: Փորձեք նորից ներբեռնել այն, ինչ փնտրում եք, բայց այլ կերպ:

ՏՈՒ-154:
Սա սերվերի կողմի սցենար է: Այսինքն, դուք սխալ բան եք ներբեռնել. դուք պետք է ներբեռնեիք այս սցենարի կողմից ստեղծված արդյունքը:

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

Spider:
Կախված նրանից, թե ինչպես և որտեղից եք ներբեռնել, եթե FTP-ի միջոցով, թե սերվերից, որը չի աջակցում PHP-ին, ապա սա PHP լեզվով սկրիպտ է (կամ մաս): Այնուհետև կարող եք այն բացել ցանկացած խմբագրիչով, օրինակ՝ Notepad-ով։ Եթե ​​սերվերից է, որն աջակցում է PHP-ին, ապա սա սովորական էջ է, որը ստեղծվել է այս սցենարով: Հետո՝ ցանկացած բրաուզեր

kle:
Երբեմն ներբեռնողները սխալներ են թույլ տալիս և ֆայլերին ճիշտ անվանում չեն տալիս: Եթե ​​Internet Explorer-ը ցույց է տալիս աղբ (ավելի լավ է չբացել մի քանի հարյուր կիլոբայթից մեծ ֆայլեր), իմաստ ունի փորձել բացել դրանք WinRAR-ով։ Վատագույն դեպքում, ընդլայնումը վերագրեք .exe-ին (եթե չեք վախենում այն ​​գործարկել ձեր համակարգչում, չգիտեք ինչ):

Therodactel:
Հարգելի պարոնայք, նորից մտածեք հարցի իմաստի մասին։ Այն սահմանվում է մի մարդու կողմից, ով լիովին հեռու է WEB սերվերներից: Ես պարզապես փորձեցի ներբեռնել որևէ ծրագիր կամ խաղ հղումից, և բրաուզերը ներբեռնումը տեղափոխեց ճոճաթոռին։ Անջատել բրաուզերի ներբեռնիչի ինտեգրումը: Կամ ներբեռնեք նույն հղումը՝ օգտագործելով այլ բրաուզեր: Անշուշտ, դուք կհասնեք Rapida-ի կամ Deposit-ի ներբեռնման էջին կամ նման բան:

Այս հոդվածում մենք կսովորենք, թե ինչ են .php ֆայլերը, ինչպես բացել դրանք և ինչպես աշխատել դրանց հետ:

PHP ֆայլերը ֆայլեր են աղբյուր կոդը PHP, որը պարունակում է հիպերտեքստային նախապրոցեսորային կոդը: Նրանք հաճախ օգտագործվում են որպես վեբ էջի ֆայլեր, որոնք ստեղծում են HTML սերվերի վրա տեղակայված PHP շարժիչից:

PHP շարժիչը ստեղծում է HTML բովանդակություն այն կոդից, որը մենք տեսնում ենք բրաուզերում: Քանի որ ծրագրի կոդը գործարկվում է սերվերում, երբ մենք գնում ենք PHP էջ, մենք մուտք ենք ստանում ոչ թե ինքնին կոդը, այլ միայն սերվերի ստեղծած HTML բովանդակությունը:

Նշում

Որոշ PHP սկզբնաղբյուր ֆայլեր օգտագործում են այլ ընդլայնում, օրինակ՝ PHTML, PHP3, PHP4, PHP5, PHP7 կամ PHPS:

Ինչպես բացել PHP ֆայլերը

PHP ֆայլերը տեքստային փաստաթղթեր են, ուստի դրանք կարող են բացվել ցանկացած տեքստային խմբագրիչի կամ բրաուզերի միջոցով: Վիրահատարանում Windows համակարգՀարց չի լինի, թե ինչպես բացել PHP ֆայլ: Դրա համար կարող եք օգտագործել Notepad-ի խմբագրիչը: Բայց PHP կոդ գրելիս հարմար է, երբ շարահյուսությունն ընդգծված է, ուստի ավելի լավ է նախապատվությունը տալ մասնագիտացված խմբագրին։

Notepad ++ - անվճար տեքստի խմբագիրշարահյուսական ընդգծմամբ։ Ահա ևս մի քանի խմբագրիչներ PHP-ի համար՝ Adobe Dreamweaver, Eclipse PHP Development Tools, Zend Studio, phpDesigner, EditPlus և WeBuilder: Այս ծրագրերը կարող են խմբագրել PHP ֆայլերը, բայց չեն կարող գործարկել կոդը: Սա պահանջում է այլ հավելվածներ, ինչպիսիք են Apache Web Server-ը:

Նշում

Որոշ PHP ֆայլեր իրականում կարող են լինել մուլտիմեդիա ֆայլեր կամ պատկերներ, որոնց անվան մեջ պատահաբար ներառված է .PHP ընդլայնում:

Նման դեպքում փոխեք ֆայլի ընդլայնումը նախքան PHP-ն բացելը ցանկալի ծրագիր. Եթե ​​դա MP4 ֆայլ է, ապա այն պետք է բացվի վիդեո նվագարկչի մեջ:

Ինչպես փոխարկել PHP ֆայլը

Հետազոտել jason_encode փաստաթղթերը PHP.net-ում՝ սովորելու, թե ինչպես փոխարկել PHP զանգվածներ Javascript-ով - JSON ձևաչափի կոդը ( JavaScript օբյեկտի նշում) Այս փոխարկումը հնարավոր է միայն PHP 5.2 և ավելի բարձր տարբերակներում:

PHP ֆայլերը չեն կարող փոխակերպվել մուլտիմեդիա ձևաչափի, ինչպիսիք են MP4 կամ JPG: Եթե ​​Ձեզ անհրաժեշտ է ֆայլ ներբեռնել, և դուք գիտեք, որ այս ֆայլը պատկեր կամ տեսանյութ է, ապա պարզապես փոխեք դրա ընդլայնումը PHP-ից մինչև ցանկալի ձևաչափը՝ MP4 կամ JPG:

Նշում

Վերանվանելիս դուք չեք փոխակերպում ֆայլը, այլ հնարավորություն եք տալիս այն բացել հարմար ծրագիր. Նախքան PHP ֆայլը բրաուզերում բացելը, դուք պետք է հասկանաք, որ կարող եք իրական փոխակերպում կատարել՝ օգտագործելով փոխակերպման գործիքները:

Ինչ է անհրաժեշտ PHP-ն HTML-ով աշխատելու համար

HTML ֆայլում ներկառուցված PHP կոդը ճանաչվում է որպես PHP և ոչ որպես HTML, եթե այն կցված է հետևյալ պիտակներում.

< ?php [код PHP] ?>

HTML ֆայլում հղում ստեղծելու համար PHP ֆայլ, օգտագործեք ստորև նշված կոդը, որում footer.php-ի փոխարեն մուտքագրեք ձեր ֆայլի անունը.

< ?php include "footer.php";?>

Երբեմն վեբ էջն օգտագործում է PHP՝ հղում անելով URL-ին, որտեղ լռելյայն PHP ֆայլը կոչվում է index.php: Այն կարող է նման բան թվալ.

http://www.examplesite.com/index.php.

Լրացուցիչ տեղեկություններ PHP-ի մասին

Պաշտոնական կայք տրված լեզունծրագրավորում - PHP.net. Եթե ​​ցանկանում եք ավելին իմանալ PHP-ի հետ աշխատելու մասին, կարող եք ծանոթանալ ամբողջական փաստաթղթերին: W3Schools-ը նույնպես լավ ռեսուրս է:

PHP-ի առաջին տարբերակը թողարկվել է 1995 թվականին և կոչվում էր Personal Home Page Tools ( անձնական էջեր ստեղծելու գործիքներ) կամ PHP գործիքներ:

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

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

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

Եթե ​​ձեր համակարգիչը ունի հակավիրուսային ծրագիր Կարող է սկանավորեք համակարգչի բոլոր ֆայլերը, ինչպես նաև յուրաքանչյուր ֆայլ առանձին. Դուք կարող եք սկանավորել ցանկացած ֆայլ՝ աջ սեղմելով ֆայլի վրա և ընտրելով համապատասխան տարբերակը՝ ֆայլը վիրուսների համար սկանավորելու համար:

Օրինակ, այս նկարում. ֆայլ my-file.php, ապա պետք է աջ սեղմել այս ֆայլի վրա և ֆայլի ընտրացանկում ընտրել տարբերակը «Սկան AVG-ով». Ընտրելիս տրված պարամետր AVG հակավիրուսը կբացվի և կսկսի սկանավորում տրված ֆայլըվիրուսների առկայության համար.


Երբեմն կարող է առաջանալ սխալ սխալ տեղադրում ծրագրային ապահովում , որը կարող է պայմանավորված լինել տեղադրման գործընթացում առաջացած խնդրի պատճառով: Դա կարող է խանգարել ձեր օպերացիոն համակարգին կապեք ձեր PHP ֆայլը ճիշտ հավելվածին ծրագրային գործիք , ազդելով այսպես կոչված «Ֆայլերի ընդլայնման ասոցիացիաներ».

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


Խորհուրդ.Փորձեք թարմացնել Microsoft Notepad-ը Վերջին տարբերակըհամոզվելու համար, որ տեղադրված են վերջին պատչերն ու թարմացումները:


Սա կարող է թվալ չափազանց ակնհայտ, բայց հաճախ PHP ֆայլն ինքնին կարող է խնդիր առաջացնել. Եթե ​​դուք ֆայլ եք ստացել հավելվածի միջոցով Էլկամ ներբեռնել եք այն վեբկայքից, և ներբեռնման գործընթացը ընդհատվել է (օրինակ՝ հոսանքի անջատումը կամ այլ պատճառ), ֆայլը կարող է վնասված լինել. Հնարավորության դեպքում փորձեք ստանալ PHP ֆայլի թարմ պատճեն և փորձեք նորից բացել այն:


Զգուշորեն.Վնասված ֆայլը կարող է լրացուցիչ վնաս պատճառել նախկինին կամ գոյություն ունեցողին չարամիտ ծրագիրձեր համակարգչի վրա, ուստի շատ կարևոր է, որ ձեր համակարգչում մշտապես գործող արդիական հակավիրուս ունենաք:


Եթե ​​ձեր PHP ֆայլը կապված ձեր համակարգչի սարքավորման հետՁեզ անհրաժեշտ ֆայլը բացելու համար թարմացնել սարքի դրայվերներըկապված այս սարքավորման հետ:

Այս խնդիրը սովորաբար կապված է մեդիա ֆայլերի տեսակների հետ, որոնք կախված են համակարգչի ներսում սարքաշարի հաջող բացումից, օրինակ. ձայնային քարտկամ վիդեո քարտեր. Օրինակ, եթե դուք փորձում եք բացել աուդիո ֆայլ, բայց չեք կարող բացել այն, ձեզ կարող է անհրաժեշտ լինել թարմացնել ձայնային քարտի դրայվերները.


Խորհուրդ.Եթե ​​երբ փորձում եք բացել PHP ֆայլ, դուք ստանում եք .SYS ֆայլի հետ կապված սխալի հաղորդագրություն, խնդիրը հավանաբար կարող է լինել կապված է կոռումպացված կամ հնացած սարքի վարորդների հետորոնք պետք է թարմացվեն: Այս գործընթացըկարելի է մեղմել՝ օգտագործելով վարորդների թարմացման ծրագրակազմը, ինչպիսին է DriverDoc-ը:


Եթե ​​քայլերը չլուծեցին խնդիրըև դուք դեռ դժվարանում եք բացել PHP ֆայլերը, դա կարող է պայմանավորված լինել մատչելիության բացակայություն համակարգի ռեսուրսները . PHP ֆայլերի որոշ տարբերակներ կարող են պահանջել զգալի քանակությամբ ռեսուրսներ (օրինակ՝ հիշողություն/RAM, հաշվողական հզորություն) ձեր համակարգչում ճիշտ բացելու համար: Այս խնդիրը բավականին հաճախ է առաջանում, եթե դուք օգտագործում եք բավականին հին համակարգիչ: Սարքավորումներև միևնույն ժամանակ շատ ավելի նոր օպերացիոն համակարգ:

Այս խնդիրը կարող է առաջանալ, երբ համակարգիչը դժվարանում է կատարել առաջադրանքը, քանի որ օպերացիոն համակարգ(և գործող այլ ծառայություններ ֆոն) կարող է սպառում է չափազանց շատ ռեսուրսներ PHP ֆայլը բացելու համար. Փորձեք փակել ձեր համակարգչի բոլոր հավելվածները՝ նախքան PHP Source Code File-ը բացելը: Ազատելով ձեր համակարգչում առկա բոլոր ռեսուրսները՝ դուք կապահովեք լավագույն պայմանները PHP ֆայլը բացելու փորձի համար:


Եթե ​​դու ավարտեց վերը նշված բոլոր քայլերըև ձեր PHP ֆայլը դեռ չի բացվի, գուցե անհրաժեշտ լինի գործարկել ապարատային արդիականացում. Շատ դեպքերում, նույնիսկ ավելի հին ապարատային տարբերակների դեպքում, վերամշակման հզորությունը շատերի համար դեռ կարող է լինել ավելի քան բավարար մաքսային հավելվածներ(եթե դուք շատ պրոցեսորային աշխատանք չեք կատարում, ինչպիսիք են 3D-արտադրումը, ֆինանսական/գիտական ​​մոդելավորումը կամ մեդիա ինտենսիվ աշխատանք): Այսպիսով, հավանական է, որ ձեր համակարգիչը բավարար հիշողություն չունի(ավելի հաճախ կոչվում է «RAM» կամ RAM) ֆայլի բաց առաջադրանքը կատարելու համար:

Եկեք դիտարկենք php ընդլայնման հետ կապված տարբեր իրավիճակներ: Ընդհանուր առմամբ, նման ֆայլը կարելի է հեշտությամբ բացել նոթատետրում, բայց դա միշտ չէ, որ տեղեկատվական կլինի: Եթե ​​սա PHP լեզվով ծրագրավորողի աշխատանքի արդյունքն է, ապա մենք կստանանք սկզբնաղբյուր ֆայլը սկրիպտներով, կատարման հրամաններով։ Եթե ​​ինտերնետից ինչ-որ բան եք ներբեռնել՝ ֆիլմ, երաժշտություն կամ վեբ էջ, կարող եք նաև ստանալ PHP ֆայլ:

PHP փաստաթուղթ բացելու երկու եղանակ

Փորձենք առաջին դեպքում բացել .php ընդլայնմամբ ֆայլ (կոդով ֆայլը)։ Անհնար է գործարկել կամ դիտել ֆայլի կատարման արդյունքը առանց սերվերի: Բայց սա էլ մեծ խնդիր չէ։ Սերվերի տեղադրումը դժվարություններ կառաջացնի նույնիսկ սկսնակ ծրագրավորողների համար: Հրահանգ:

  1. Մենք տեղադրում ենք Denver փաթեթը համակարգչի վրա՝ տեղական սերվեր և այլ գործիքներ հարմար շահագործում PHP սկրիպտներով օֆլայն, ընդհանրապես առանց ակտիվ ինտերնետ հասանելիության: Այն կարելի է ներբեռնել պաշտոնական ժողովից։
  2. Այնուհետև մենք վերցնում ենք մեր ֆայլը, եկեք այն անվանենք filename.php և տեղադրում ենք վեբ սերվերի թղթապանակում:
  3. և տողում մուտքագրեք ֆայլի ուղին:
  4. Մենք դիտում ենք կոդի կատարման արդյունքը:

Մանրամասն հրահանգի երկրորդ և երրորդ պարբերության մասին։ Մենք հետևում ենք «C:\WebServers\home» գրացուցակին, այստեղ լռելյայն կա մի թղթապանակ, որը կոչվում է «test»: Այժմ ձեր հայեցողությամբ. կարող եք ընտրել այս թղթապանակը, կարող եք ստեղծել ձեր սեփականը այստեղ (օրինակ՝ 123): Գնացեք թղթապանակ և ստեղծեք մեկ ուրիշը, որը կոչվում է «www»: Այժմ մենք դրա մեջ ենք դնում մեր «filename.php» ֆայլը: Ֆայլի ամբողջական ուղին կլինի՝ «C:\WebServers\home\123(or test)\www\filename.php»:

Արժե ուշադրություն դարձնել այն փաստին, որ դուք անպայման պետք է www թղթապանակ ստեղծեք, չպետք է բաց թողնեք այս կետը:

Գործարկեք Denver-ը, օգտագործելով Run կոճակը: Դուք պետք է տեսնեք մակագրություն սև հրամանի տողի պատուհանում, որտեղ նշվում է, որ 123-ը (թեստ) ավելացվել է: Եթե ​​տարբերակում տեղական սերվերՍրբապատկերներ չկան, այնուհետև մենք դրանք փնտրում ենք «C:\WebServers\denwer\utils\»:

Denver-ը տեղադրելուց հետո չպետք է փոխեք լռելյայն կարգավորումները, ամեն ինչ արդեն կարգաբերված և կազմաձևված է, ներառված են Magic, GD, FDPF և այլ մոդուլներ:

Եթե ​​դուք կապ չունեք ծրագրերի մշակման հետ և ունեք ֆայլ .php ընդլայնմամբ, երաժշտություն, ապա ազատ զգալ փորձեք բացել այն Notepad-ում։ Դուք կարող եք սխալ ստանալ: Այս դեպքում անջատեք ներբեռնման կառավարիչը և նորից փորձեք: Այլ դեպքերում, մեծ հավանականությամբ, բրաուզերում կբացվի կայքի պահպանված էջը, որտեղից սկսել եք ներբեռնել ֆիլմը/երաժշտությունը և այլն։ Նրանք. ձեր պահած բովանդակությունը ուղղակիորեն ներբեռնելու փոխարեն HDDէջն ինքնին։

Ծրագրեր տարբեր ՕՀ-ում PHP ֆայլերի հետ աշխատելու համար

առավելապես պարզ ձևով php փաստաթուղթ դիտելու համար նշանակում է բացել այն Notepad-ում, ինչպես նշվեց ավելի վաղ:

Windows-ում php ֆայլը կարող է բացվել հետևյալ ծրագրերում.

  • Տետր;
  • PHPEdit;
  • նոթատետր ++;
  • Microsoft wordpad;
  • EditPlus;
  • Ցանկացած տեքստային խմբագիր;

PhpEdit- մասնագիտական ​​ծրագիր, որի միջոցով կարող եք ոչ միայն բացել, այլև ստեղծել ամբողջ նախագծեր PHP-ում։

Խորհուրդ ենք տալիս հատուկ ուշադրություն դարձնել Նոթատետր++ որը բավականին հարմար է, երբ մենք խոսում ենքծրագրերի և սցենարների սկզբնական կոդեր խմբագրելու մասին։ Եթե ​​դուք բացում եք PHP ֆայլ Notepad ++-ում, շարահյուսությունն ավտոմատ կերպով կճանաչվի և կնշվի, կա կոդի բլոկները փլուզելու և ընդլայնելու հնարավորություն, հարմար որոնում և առաջադեմ փոխարինման գործառույթ՝ հիմնված կանոնավոր արտահայտություններ- հեռու է այս խմբագրիչի տրամադրած օգտակար ընտրանքների լիարժեք ֆունկցիոնալությունից:

Mac-ում բացեք՝

  • Bare Bones Software BBEdit;
  • TextEdit;
  • TextMate;
  • Մեկ այլ տեքստային խմբագիր, որը հարմար է ձեզ համար:
  • gedit;
  • կապույտ ձուկ;
  • Eclipse PHP մշակման գործիքներ;
  • Ցանկացած տեքստային խմբագիր:

Այսպիսով, մենք դիտարկել ենք մի քանի տարբերակ, թե ինչպես բացել ֆայլը PHP ընդլայնմամբ: Առաջին դեպքում դուք հնարավորություն կունենաք ծանոթանալ նման սցենարի աշխատանքի արդյունքին, երկրորդը հարմար է փոփոխություններ կատարելու և սցենարի կոդը ինքնին խմբագրելու համար։

Այս հոդվածը 2007 թվականի նոյեմբերի 16-ով թվագրված հոդվածի վերահրատարակությունն է իմ բլոգից, որի հղումը կարելի է գտնել իմ սեփական պրոֆիլում, բայց քանի որ պատահում է, որ այս թեման դեռ շատերին է հետաքրքրում, և ոչ այնքան։ վաղուց ես կարդացել էի զեկույց այս թեմայով PHPConf կոնֆերանսում ... ընդհանրապես - դատեք ինքներդ:

Ներածություն

Վերջերս համացանցի միջոցով տեսանյութերի հեռարձակման տեխնոլոգիան ավելի ու ավելի տարածված է դարձել՝ առանց մեդիա բովանդակությունը օգտատիրոջ մեքենա ներբեռնելու անհրաժեշտության՝ անմիջապես դիտարկիչից դիտելու միջոցով: Այսպիսով, դուք կարող եք դիտել բավականին մեծ թվով տարբեր վիդեո ձևաչափեր, սակայն դա պահանջում է օգտագործողի կողմից որոշակի փլագինների առկայությունը: Ակնհայտ է, որ ամենատարածված նման պլագինը ֆլեշ նվագարկիչ(լավ, լավ, լավ. ճշգրիտ լինելու համար, այն, իհարկե, չի կարող ինքնուրույն վիդեո նվագարկել, բայց դա հեշտացնում է հավելված ստեղծելը, որը կարող է վիդեո բովանդակություն նվագարկել): Այս մոտեցման վառ օրինակն է youtube.com. Ես կփորձեմ ձեզ պատմել, թե ինչպես ինքնուրույն կազմակերպել ֆլեշ վիդեո հեռարձակումներ ձեր վեբ էջում և ինչ մոտեցումներ կան այս խնդրին:


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

1. FLV ֆորմատի մասին

Այսպիսով, ֆլեշ նվագարկիչնվագարկում է տեսանյութ FLV ձևաչափով, չի հասկանում այլ ձևաչափեր:
Դուք կարող եք ավելին կարդալ հենց ձևաչափի մասին, օրինակ՝ այստեղ՝ en.wikipedia.org/wiki/FLV, ինչպես նաև, իհարկե, արտադրող Adobe-ի կայքում։ ֆլեշ նվագարկիչ. Այս զեկույցի նպատակների համար մենք ձևաչափի մանրամասն իմացության կարիք չենք ունենա, իսկ դրանք, որոնք անհրաժեշտ կլինեն, տրված են ստորև:
FLV ֆայլը բաղկացած է վերնագրից և հենց ֆիլմից:
Վերնագիրը պարունակում է որոշակի մետա-ինֆորմացիա ֆիլմի մասին՝ տևողություն, չափ և այլն, և այլն: Իրականում, մեզ կհետաքրքրի այս մետատեղեկատվության մեջ միայն մեկ հանգամանք, այն է, որ այն պարունակում է տվյալներ ֆիլմի հիմնական կադրերի (դրանց դիրքերի) մասին։ ժամանակի և բայթի մասշտաբով): Մետա-ինֆորմացիան ինքնին կամայական բնադրման ասոցիատիվ զանգված է, որը սերիականացված է AMF ձևաչափով, որը ֆլեշ հավելվածների մշակման ընդունված ստանդարտներից մեկն է:
Նշում PHP-ի համար կան մի քանի գրադարաններ, որոնք թույլ են տալիս (ապ)սերիալիզացնել AMF-ից:

2. Ինչպես հեռարձակել FLV ֆայլերը վեբ էջերում

Հեռարձակումը հաջող համարելու համար պետք է կատարվի երկու պայման՝ սերվերը հաջողությամբ ցուցադրել է բովանդակությունը, և հաճախորդը դիտել է այն ոչ պակաս հաջողությամբ։ Համապատասխանաբար, պահանջվում է հավելվածի երկու մաս՝ սերվեր և հաճախորդ։ Գործում է որպես հաճախորդ ֆլեշ- հավելված, որը կարող է վիդեո հոսք նվագարկել նշված URL-ից: Նման ծրագրերը շատ են, և մենք դրանց վրա չենք անդրադառնա այստեղ։ Եկեք խոսենք սերվերի կողմից: Այսպիսով, ինչ են հնարավոր ուղիներըիրականացում?

2.1. ներբեռնել - ներբեռնել

Սա ամենահեշտ ճանապարհն է։ Այն պահանջում է պարզ հաճախորդ, որը պարզապես խնդրում է վիդեո հոսք տվյալ URL-ում և նվագարկում այն: Սերվերին անհրաժեշտ է միայն մշակել HTTP հարցումը և վերադարձնել համապատասխան բովանդակությունը: Հատուկ ծրագրաշարի կարիք չկա:
«Այդ դեպքում ինչո՞ւ կան այլ ճանապարհներ»: - Նման հարց դժվար է չտալ։ Այնուամենայնիվ, այս մեթոդով ամեն ինչ այնքան էլ հարթ չէ… Փաստն այն է, որ եթե այն հիանալի է մինչև 2-3 րոպե տևողությամբ փոքր տեսանյութեր ցուցադրելու համար, ապա հարմար չէ նման երկար ֆիլմեր ցուցադրել. օգտատերը ֆիլմի ցանկացած հատված դիտելու համար անհրաժեշտ է, որ այս հատվածն արդեն ներբեռնված լինի իր համակարգչում: Այսինքն, լինելով ֆիլմի սկզբում, մենք չենք կարող ժմչփի «սլայդերը» տեղափոխել վերջ և դիտել վերջնագրերը։ Այս մեթոդը նաև որևէ հնարավորություն չի տալիս վիդեո բովանդակությունը ներբեռնումից պաշտպանելու համար:

2.2. Streaming - հոսքային տեսանյութ

Այս մեթոդը, թերեւս, ամենաառաջադեմն է: Կա հոսքի կամայական տեղ վերադառնալու հնարավորություն, որոշակի բովանդակության պաշտպանության մեխանիզմներ (անկեղծ ասած, այդ մեխանիզմները միայն դժվարացնում են բովանդակություն ստանալը՝ փաստորեն պաշտպանված լինելով միայն անպիտան կոտրիչից): Մեկ այլ օգտակար հատկություն է «ուղիղ» վիդեո հեռարձակումների կազմակերպումը։ Եթե ​​ուղիղ հեռարձակումների կարիք ունեք, պետք է սթրիմ անել, այլ ելք չունեք։
Դե, նույն հարցն է առաջանում, ինչ հետ նախորդ ճանապարհը«եթե հոսքը այդքան լավն է, ապա ինչու՞ կան այլ ուղիներ»: Սթրիմինգը լավ է, բայց ոչ բոլորը կարող են դա թույլ տալ: Մեդիա սերվերի համար (օրինակ՝ «Flash Media Server») դուք պետք է վճարեք կոկիկ գումար: Այնուամենայնիվ, կան նաև բաց կոդով լուծումներ, օրինակ. ffserver(որը, սակայն, այնքան էլ չի ընկնում զեկույցի թեմայի տակ, քանի որ չգիտի, թե ինչպես հեռարձակել ֆայլերը), ինչպես նաև Կարմիր 5որը գրված է Javaև, հետևաբար, նաև հարմար չէ բոլորի համար:

2.3. HTTP հոսք (HTTP-ով վիդեո հոսքի նմանակում)

Անվանումից կարելի է կռահել, որ երրորդ մեթոդը առաջին երկուսի համակցությունն է։ Որոշակի մոտավորությամբ կարելի է ենթադրել, որ դա այդպես է։ Ինչպես արդեն նշել ենք, 1-ին մեթոդի (ներբեռնման) մեծ թերությունը ֆիլմում կամայական տեղ վերադառնալու անհնարինությունն է։ HTTP հոսքում այս խնդիրը լուծվում է հետևյալ կերպ. երբ վերադառնում ենք մի վայր, որը դեռ չի ներբեռնվել օգտատիրոջ մեքենա, ընթացիկ ներբեռնումն ավարտվում է և նոր հարցում է ուղարկվում սերվերին, որը պարունակում է ցուցիչ, թե որտեղ է գտնվում ֆիլմը: ներբեռնումը պետք է սկսվի: Այստեղ կան որոշակի նրբություններ, որոնց մասին ավելի մանրամասն կանդրադառնանք հաջորդ գլխում։ Ինչ վերաբերում է այս մոտեցման առավելություններին ու թերություններին... Իմ կարծիքով, ֆայլերի թարգմանության համար սա լավագույն տարբերակն է։ Այն բավականաչափ պարզ է, որպեսզի իրականացվի ցանկացած լեզվով (գրված է PHP-ի կամ Ruby-ի նման, կամ կազմված է C-ի նման), այնպես որ դուք կարող եք որոշել, թե որն օգտագործել՝ ելնելով ձեր զարգացման արագության պահանջներից, ստացված հավելվածի արագությունից և այլ ծրագրերից: Նաև սովորական արագ վեբ սերվերների համար, ինչպիսիք են ՆգինքսԵվ Lighttpdկան FLV ֆայլեր թարգմանելու պատրաստի մոդուլներ, որոնք գրված են C-ով և շատ արագ են աշխատում։
Ես կանդրադառնամ այս մեթոդին մի փոքր ավելի մանրամասն ...

3.Http հոսք

Այսպիսով, եկեք ավելի սերտ նայենք ֆլեշ տեսանյութի հեռարձակման տարբերակին՝ օգտագործելով Http-streaming: Ինչպես արդեն ասացիք, կամայական վայրից ֆիլմ խաղալու համար հաճախորդը HTTP հարցում է ուղարկում սերվերին, որը պարունակում է այն վայրի «կոորդինատը», որտեղից պետք է ելքի վիդեո հոսքը: լավ, օրինակ՝ localhost/flv/film.php?start=XXXXXX . Ի՞նչ է սա կոորդինատը: Սա ընդամենը բայթերի թիվն է, որից սկսվում է ցանկալի շրջանակը: Ի դեպ, դուք միշտ պետք է սկսեք նվագարկել FLV ֆայլը առանցքային շրջանակից:
«Սակայն, թույլ տվեք! Ինչպե՞ս է հաճախորդը իմանում այս բայթի համարը, որից սկսվում է շրջանակը: և նաև անպայման բանալի.
Ես պատասխանում եմ. Հիշեք, սկզբում, երբ ես հակիրճ խոսեցի այն մասին, թե ինչ է FLV ֆայլ, ես նշեցի մետա տեղեկատվությունը, որը պարունակվում է վերնագրում: Այս մետա-տեղեկատվությունը պարունակում է տվյալներ ֆիլմի հիմնական կադրերի մասին (դրանց դիրքերը ժամանակի և բայթի մասշտաբով): Այսպիսով, հաճախորդը միշտ կարող է գտնել օգտվողի պահանջած հոսքի դիրքին ամենամոտ հիմնական շրջանակը և այն թարգմանել բայթերի, որոնք ուղարկվում են սերվեր:
Իսկ ինչ վերաբերում է սերվերին: Դե, փաստորեն, նրա խնդիրն այժմ նվազագույն է՝ մշակել հարցումը, կարդալ պարամետրի արժեքը (մեր դեպքում դա $_GET["start"] փոփոխականն է) և դուրս բերել պահանջվող վիդեո ֆայլը՝ սկսած պահանջվող բայթից։ Ամեն ինչ մոտավորապես այսպես է. Գրեթե, բայց ոչ այնքան։ FLV ֆայլը պետք է պարունակի վերնագիր: Եթե ​​օգտատիրոջ պահանջած բայթը զրոյական չէ, ապա նախքան ֆայլի բովանդակությունը տալը, սկսած այս բայթից, պետք է տեղադրեք հնարավոր ամենափոքր վերնագիրը (անկեղծ ասած, ես մանրամասն չհասկացա, թե դա ինչ է, բայց ես. գուշակեք, որ սա դատարկ զանգված կամ օբյեկտ է, որը սերիականացված է AMF-ով և նախածանցով «FLV»):

3.1. Պատրաստի լուծումներ. lighttpd, nginx+http_flv_module, flv4php.

Http հոսքային աջակցություն, որն իրականացվում է հանրաճանաչ վեբ սերվերներում lighttpdԵվ nginx. Այս լուծումներից օգտվելու դեպքում անհրաժեշտ է միայն FLV ֆայլերը տեղադրել վեբ սերվերի համար հասանելի տեղում, մնացած ամեն ինչ կախված է սերվերից և հաճախորդից, ոչ ծրագրի կոդըՊետք չէ գրել սերվերի կողմից: Հաճախորդը պետք է պահանջի FLV ֆայլեր՝ ավելացնելով GET «start» պարամետրը «y, օրինակ, local-nginx/sample.flv?start=12345 .
Կա նաև անվճար լուծում (գուցե ավելի շատ) հիմնված PHP-ի վրա. flv4php. Դրա մեծ պլյուսն այն է, որ այս նախագիծն ունի պատրաստի նվագարկիչ՝ հաճախորդ՝ HTTP հոսքի համար: Բացասական կողմն այն է, որ այս լուծումը բավականին ծանր է և, ըստ իմ թեստերի աշխատանքային մեքենա, մեծապես բեռնում է պրոցեսորը (տարօրինակ երևույթ, որի համար համարժեք բացատրություն չգտանք, սակայն վտանգից ելնելով շտապեցին հրաժարվել սերվերի մասի օգտագործումից. flv4phpև սահմանափակվեցին նրանցից խաղացող վերցնելով, որը, մեր կարիքներին համապատասխան ձևափոխելուց հետո, սկսեց հավատարմորեն ծառայել մեզ): Մեկ այլ թերություն այն է, որ ֆիլմի առաջին կադրն օգտագործվում է որպես «ոտք» (նկարը, որը օգտատերը տեսնում է էջը նվագարկչի էկրանին բացելիս), և այս պահվածքը հարմարեցված չէ։ Ես ընդունում եմ այն ​​միտքը, որ flv4phpդուք կարող եք կարգավորել այն լավագույն ձևով և ստիպել նրան անել այն, ինչ ձեզ հարկավոր է, և առանց պրոցեսորի վրա բեռնվածության: Այնուամենայնիվ, ստորև բերված PHP կոդի կարճ հատվածը գրեթե նույն բանն է անում, ինչ flv4php- և երաշխավորված է լավ կատարմամբ :)

3.2. Դա արեք ինքներդ, թե չէ ամեն ինչ պարզապես բարդ է թվում:

$start = (int) filter_input (INPUT_GET, «դիրք», FILTER_VALIDATE_INT);
եթե ($start< 0) die("Incorrect request");
// բաց ֆայլ՝ կարդալու համար
$fp = fopen ("sample.flv", "r");
$ fsize = ֆայլի չափ ($ ֆայլ);
եթե ($start > 0)
{
// փնտրել պահանջվող դիրքը
fseek ($ fp, $ start);
// FLV վերնագիր ֆիլմի մասի համար: կախարդանք. վստահիր ինձ ;)
// Վերնագրի կոդը ամբողջությամբ վերցված է flv4php նախագծից
$header = «FLV»: փաթեթ («C», 1) . փաթեթ («C», 5) . փաթեթ («N», 9) . փաթեթ («N», 9);
header ("Content-Length: " . (strlen($header) + $fsize - $start));
echo $header;
) ուրիշ (
header("Content-Length: " . $fsize);
}
while(!feof($fp)) (
տպել (fread ($ fp, 1024));
}
fclose ($ fp);

Ինչպես տեսնում եք, ամեն ինչ չափազանց պարզ է, կարծում եմ, բացատրություններն ավելորդ են։

4. Փոխակերպել FLV-ի այլ ձևաչափերից: Հիմունքներ ffmpeg & mencoder. Մետա տեղեկատվություն և ինչպես այն խցկել FLV ֆայլի մեջ:

Ֆու, մենք գործնականում ավարտեցինք: Այս գլխում ես մի փոքր կխոսեմ այն ​​մասին, թե ինչպես փոխարկել վիդեո բովանդակությունը FLV ձևաչափի և ինչպես մետա տեղեկատվությունը լցնել պատրաստի ֆիլմերի մեջ, որն անհրաժեշտ է HTTP հոսքի համար: Ես չեմ անդրադառնա MS Windows-ի տակ հասանելի ծրագրային ապահովմանը, փոխարենը՝ կենտրոնանալով *nix լուծումների վրա (գաղտնիք չէ, որ վեբ նախագծերի մեծ մասն աշխատում է *nix/Linux/FreeBSD սերվերների վրա, և այս տեղեկատվությունը կարող է օգտակար լինել):
Ամենահայտնի և հզոր նախագծերը. ffmpegԵվ mencoder. Երկու ծրագրերն էլ աշխատում են ներկայումս հայտնի վիդեո ձևաչափերի մեծամասնության հետ, ունեն լայնածավալ կոդեկների տվյալների բազա և/կամ հատուկ կոդեկներ միացնելու հնարավորություն: Երկուսն էլ աշխատում են լավ արագությամբ (սակայն, դուք հասկանում եք, որ վիդեո մշակումը անշնորհակալ գործ է և պահանջում է շատ ռեսուրսներ և ժամանակ):
Գոյություն ունեցող ֆիլմը FLV ձևաչափի փոխարկելու համար հարկավոր է գործարկել հետևյալ հրամանների պես մի բան.
ffmpeg:
$ ffmpeg -i sample.avi sample.flv
(տես փաստաթղթերը ffmpeg -