ПредишенСледващото

Когато се налага да използвате FTP клас?

Този тип клас може да се използва в няколко случая. Чифт сценарии може да бъде:

Автоматизиране на качване на изображения, като галерия, уебсайт клиент (в идеалния случай - във връзка с моя съвет, за да промените размера на изображението);

Направете резервни копия извън площадката, прехвърляне на файл с резервно копие на базата данни от вашия сървър на друг. (Забележка: Не се препоръчва за чувствителна информация, защото FTP - не е много сигурен протокол).

Забележка: Можете лесно да се препъне в затруднения по време на работа с FTP, тъй като различните сървъри, различни конфигурации. Този код е успешно тествана от много FTP сървъри.

Какво е FTP?

FTP: "Стандарт мрежов протокол използва за копиране на файл от един хост на друг."

FTP или File Transfer Protocol - е, по дефиниция, Wikipedia: "Стандарт мрежов протокол използва за копиране на файл от един хост на друг чрез базирани на TCP / IP мрежа, като например Интернет."

В действителност, тя ви позволява да копирате файла (и) от един компютър на друг.

Етап 1 - Получаване

Нека започнем с възможно най-лесно. В основата на новия си проект, създаване на два файла: index.php и ftp_class.php.

Файл, който създава обект и се позовава на необходимите методи - index.php - е основната ни страница. ftp_class.php - това е нашия клас FTP.

В следващата стъпка ще създадем "скелет" на класа. Когато е готов, ще бъде в състояние да отиде по-далеч и да се опита да направи всяка стъпка.

Как се работи с PHP и FTP

Стъпка 2 - Определете класа

Силната на ООП (обектно-ориентираното програмиране (ООП)) е, че тя дава на комплекса кода лесен за използване интерфейс. Създаване на клас - помисли клас шаблон - можете да капсулират (печат) на данните, които е просто жаргон дума за срок, отнасящи се до скривалището на данните. След това можете да използвате този клас отново и отново без да е необходимо да се пренапише части от кода отново. Вместо това трябва само да се обадя подходящи методи (терминът "метод" - е същата като тази функция).

Нека да започнем създаването на вашия FTP клас. Ftp_class.php Отворете файла и добавете следния код. Това е основната класа на скелетната структура, която нарекох "FTPClient".

конструира функция, известна като конструктор, специален метод на класа, те се наричат ​​автоматично при създаване на нов обект, или пример за клас. Обикновено това е едно чудесно място, че е подходящ за добавяне на инициализация; но за днешния цел ние не се нуждаем. Независимо от това, ние ще го сложи тук, за да използвате и в бъдеще.

Моля, имайте предвид, че конструкцията, които използваме двойно подчертаване.

Стъпка 3 - Клас променливи

След това се определят някои променливи или клас свойства.

"Private" префикс определя обхвата на променливата. В този случай, това означава, че достъп до външна променлива клас не е много далече.

Променливата $ ConnectionID ще съдържа сегашната ни връзка. Другите двама съдържа състоянието и съобщенията. $ LoginOk ще бъде полезно да се определи дали ние са свързани правилно.

Стъпка 4 - Напиши просто съобщение

Почти всеки метод наричаме метода с името "logMessage. Това - основното послание манипулатор, което ще ни даде възможност да се съберат всички съобщения, създадени от нашия клас, така че да може да гарантира отговор на потребителя.

Моля, имайте предвид, че ние не се върне (възстановяване) на тези съобщения от техните методи. Вместо това се връщаме вярно или невярно, въз основа на това дали операцията е била успешна личност. Тя има своите предимства, но в допълнение, това не е така подробно какво се случва на потребителя.

Добавете следните два метода, за да може да се определи какво е било успешно.

Този метод отнема променлива съобщение $. Съдържанието на променливата след това се съхранява в масив от клас поради ред: $ това-> messageArray [] = $ съобщение;

От $ messageArray - клас променлива, ние можем да получите достъп до него чрез рекордните $ this->.

Да бъдеш вътре в класа, $ това се отнася до самия обект.

За да се върнете това съобщение, което наричаме getMessages.

Този метод - на открито. Както вече бе споменато, това са отворен / затворен случаи просто се отнасят до действието на полето или променлива, в този случай, метод. В края на метода (или променлива) не може да бъде достъпен извън класа, докато отворения метод (или променлива), колкото е възможно.

Тъй като нашата променлива е затворена, ние се нуждаем от начин за получаване на достъп до нея. Ние правим това, като включите своя клас публичен метод, към който ние сме тогава достъп отвън на класа. Може би се чудите защо не можем просто да messageArray отворен променлива. можете; това просто не е много добра.

Забележка: Мрежата е пълна с примери за товарачи съобщения в пълен цвят, или клас, посветени на тях. Ние работим по една проста реализация на целите на този урок.

Стъпка 5 - Свързване

На този етап трябва да съберем свързване метод. Това ще ни позволи да се свърже с FTP сървъра.

Ние сме посветени на информация: сървъра ($ сървър), потребителско име ($ ftpUser) и паролата ($ ftpPassword), за да се установи връзка.

В първия ред на код отваря връзка с отделен FTP сървър чрез ftp_connect. Ние запази връзката с променлива клас, $ connectionId, както е описано по-горе.
ftp_login код пише ни отделна връзка, прехвърляне на връзката ни номер, потребителско име и парола.

Определете дали връзката е била успешна. След това записва резултатите, наричайки метода просто съобщение манипулатор logMessage () и да премине в дневника линия. Запомнете: за достъп до logMessage (), ние използваме $ това->, тъй като тя е променлива клас.

Как се работи с PHP и FTP

Рамковата YII2. Бързото развитие на съвременни PHP рамки

Изследване на съвременните рамкови уеб програмиране тънкостите използващи YII2

Стъпка 6 - обект Позвънете

Сега, нашата класа работи, ние можем да го тествате! Отворете index.php файл и добавете следния код.

Вие ще трябва достъп до FTP сървъра. Ако искате да инсталирате свой собствен сървър, опитайте Filezilla - безплатно.

Ще забележите, че добавих тук за детайлите на FTP сървъра. В идеалния случай, те ще се съхранява в конфигурационния файл. Променете тях, за да инсталирате вашия FTP.

След определяне на данните за сървърни ние включват клас включва ( "ftp_class.php"). Това означава: да се направи този клас е в наличност в тази страница. Следващият ред създава FTP клас обект и го съхранява в променливата $ ftpObj. $ FtpObj вече ще се използва за достъп до публични методи в рамките на нашия клас. Това се извършва чрез вписване ->, точно както го прави следния ред, наричайки метода $ ftpObj -> свържете и му подава данните на нашия сървър.

Когато класа вече е в сила, че е лесно да се отбележи, че връзката с FTP сървъра - наистина, че няма мозък!

В последната стъпка, която може да приключи връзката за до ако-изречение, както е показано по-долу. След това, ако не може да бъде установена, специален код, не се изпълнява. След това можем да изпрати на потребителя на няколко послания, като "връзката е установена» ( "свързан") или "да се установи връзка провали» ( "провали").

Оказва се, добре, че ни код доста бързо набъбва предложенията IF / друго, ако го добавите към всичките си предизвикателства. Вместо това, аз бих предложил алтернатива, която ще улесни продължаването на работата и да направи код за почистване.

Не забравяйте, ние добавихме методи за манипулатор съобщение? Ако искате да видите публикации, направени клас - полезна за отстраняване на грешки и отговор - можете да добавите следния код, след като всеки повикващия.

Тя показва клас съобщение.

Стъпка 7 - Направете първия си директория

Е, това е време, за да направи нещо полезно. Първият метод, че ние ще създадем, това makeDirmethod. Както се очакваше, това ще се създаде за нас в сървъра на директория. Единственият вариант, който ние даваме - е път и директория името на папката; нека го наречем $ директория. Магически линия тук е функция ftp_mkdirbuilt-ин. За да създадете папка, тя използва ни спаси "connectionId" и да премине променлива директорията $.

Добавете ftp_class.php файл следния код:

променлива $ реж е зададен на името на папката, в която трябва да създадете на сървъра. В този случай, "снимката» ( "снимки"). Следващият ред призовава метод, който ще създаде папката.

Ако получите съобщение за грешка "не е налице право на достъп» ( "бе отказано разрешение"), уверете се, че можете да пишете в указаната папка. Може да се наложи да се създаде папка в друга папка, като например / httpdocs.

Стъпка 8 - Качване на файл

В продължение на работата, да се разтоварят снимка, озаглавена zoe.jpg. При качване на файл, трябва да се определи начина, по който се работи с вида на файла - двоичен или ASCII? По принцип, при качването на текстов файл, трябва да използвате ASCII; в противен случай трябва да се настрои двоичен.

Започваме със създаването на масив с всички разширения, които ще бъдат използвани, за да се разтоварят типа на ASCII.

След това се върнете разширяването на нашия файл, така че можете да пробвате да се види дали той принадлежи към типа на ASCII. Определяме това като се пейджъра файлово разширение. Прост и бърз метод, използван от мен тук - "извличане" файл с помощта на сепаратора '.'. Тъй като файлът се разделя на фрагменти и се съхранява като масив. Използването на други вградени PHP функция, "край", ние избираме последния елемент на масива, съдържащ нашата експанзия. Това е един много чист малък част от кода.

След това, ние се провери дали нашата експанзия се появи в списъка (с in_array) файлови разширения, които трябва да бъдат разтоварени като вида на ASCII. Ако тя се появява в списъка, изберете режима на променливата $ на FTP_ASCII; в противен случай, ние заключаваме, че този тип бинарен и присвояване на стойност от $ режим FTP_BINARY.

ftp_put разтоварване на файл от вашето местоположение на отдалечен файл от сървъра на FTP. Дадохме му му "connectionId", пътя до файла, който трябва да се разтоварят ($ fileTo), пътя до файла, който искате да качите ($ fileFrom) и режим (режим $), която току-що е определено.

Как се работи с PHP и FTP

След това добавете по следния метод ftp_class.php файл:

Разбира се, можете да създадете или да качите всяко име на папка по свое усмотрение! Добавете index.php файла следния код и го променят.

В този момент трябва да свикне с това колко лесно е да се използва този клас! Ние просто правим някои предизвикателства, да завърши задачите си - и всичко това благодарение на обектно-ориентираното програмиране!

Нека сега потвърди, че нашият файл е в папката със снимките. Това може да стане, като отидете в папката "снимка" на сървъра, и след това да се покаже съдържанието му.

метод changeDir използва "ftp_chdir", за да промените текущата директория на сървъра на FTP. просто да го премине, за да промените директорията. Лесно и просто.

getDirListing покаже съдържанието на директорията, в която вие използвате "ftp_nlist" функция. Тя връща списък с файлове в дадена директория. Текущият каталог е настроен по подразбиране, така че не е нужно да се осигури някакви параметри.

метод getDirListing връща масив, съдържащ списъка на нашата директория.

Вашият резултат трябва да изглежда по следния начин:

Как се работи с PHP и FTP

Стъпка 10 - качен файл

С наближаването на края на урока, ние се обръщаме към сваляне на файлове. Методът започва с един и същи код, тъй като uploadFile, което определя дали файлът, че ние трябва да изтеглите, ASCII или двоичен.

За този метод, можете просто да премине името на файла (и евентуално начина, в зависимост от това дали сте в същата папка като файл, който искате да изтеглите), които искате да качите, и името, което бихте искали да се възложи на файла на своя клиент.

За да свалите файла трябва да се обадите ftp_get.

Така че изтеглянето на файлове от отдалечен сървър на нашата местна машина. Той взема следните параметри: идентификатор на връзката ни, пътят или името на файла за неговото местно съхранение (да се пренаписва, ако такава съществува) ($ fileTo), местоположението и името на файла на отдалечен сървър ($ fileFrom) и режим ($ режим).

Отиваме, за да изтеглите и същи файл, който сте качили, да го запазите под различно име на вашия компютър клиент.

Забележка: Отново, уверете се, че разрешенията са зададени правилно!

Защото сега ще трябва да бъде вътре папките на снимки, не добавяйте пътя към променливата $ fileFrom - само името на файла.

Стъпка 11 - Край

За да завършите напълно с класа си, нека добавим метод за клас магия метод, __deconstruct. Този метод се затваря връзката ни, когато референтен обект вече не е там - може би, страницата е затворена. Във всеки случай, този код е и връзката е затворена. Точно така е - да включва това, въпреки че не е задължително.

заключение

Е, това, това е всичко! Надявам се, че сега разбирате по-добре как да използвате FTP с помощта на PHP. Сега имате необходимите умения, за да бъде по-нататъшно разширяване на този клас за подпомагане на други прости задачи, като преименувате или изтриете файлове и папки.

Не се колебайте да споделите с нас, ако създадете някои готини PHP FTP клиенти!

Редакционен: Виктор Хорн и Андрю Bernatsky. webformyself екип.

Как се работи с PHP и FTP

Рамковата YII2. Бързото развитие на съвременни PHP рамки

Изследване на съвременните рамкови уеб програмиране тънкостите използващи YII2

Най-IT новини и уеб разработки на нашия канал Телеграма

Свързани статии

Подкрепете проекта - споделете линка, благодаря!