Verificarea codurilor de stare FTP cu un script PHP

Am un script care verifică răspunsurile de la serverele HTTP folosind clasele PEAR HTTP. Cu toate acestea, recent am descoperit că scriptul nu reușește pe serverele FTP (și, probabil, orice nu este HTTP sau HTTPS). Am incercat Google, dar nu am vazut nici un script sau cod care a returnat codul de stare al serverului de la alte servere decat serverele HTTP.

Cum pot afla starea unui grup de știri sau a unui server FTP utilizând PHP?

EDIT: Ar trebui să clarific că sunt interesat doar de capacitatea de citire de pe un server FTP și din directorul pe care îl specific. Trebuie să știu dacă serverul este mort/plecat, nu sunt autorizat să citesc, etc.

Rețineți că, deși, de cele mai multe ori, sunt limba agnostică, întregul site web este bazat pe PHP, deci o soluție PHP ar fi cea mai bună pentru ușurința întreținerii și extensibilității în viitor.

0
fr hi bn

3 răspunsuri

Dacă doriți să citiți răspunsuri specifice, va trebui să deschideți manual un socket și să citiți/scrieți date.

<?php
$sock = fsockopen($hostname, $port);
?>

Then you'll have to fput/fread data back and forth.
This will require you to read up on the FTP protocol.

0
adăugat

Nu ar fi mai simplu să folosești funcționalitatea PHP FTP * încorporată decât să încerci să te răsuci? Dacă URI provine dintr-o sursă aflată în afara controlului dvs., va trebui să verificați definiția protocolului (http://sau ftp://etc) pentru a determina ce funcționalitate să utilizați, dar aceasta este destul de trivială. Dacă există acum protocolul specificat (acolo ar trebui să fie!), Atunci ați putea încerca să implicit la http.

0
adăugat

HTTP funcționează puțin diferit decât FTP, din păcate. Deși ambele pot să pară la fel în browserul dvs., HTTP funcționează pe baza URI (adică pentru a accesa resursa A, aveți un identificator care vă spune cum să accesați).

FTP este un server foarte vechi al școlii. Chiar și FTP anonim este un pic de un hack, din moment ce încă mai furniza un nume de utilizator și o parolă, este doar definit ca „anonim“ și adresa de e-mail.

Verificarea dacă un server FTP este în sus înseamnă verificare

  1. That you can connect to the FTP server

    if (!($ftpfd = ftp_connect($hostname))) { ... }

  2. That you can login to the server:

    if (!ftp_login($ftpfd, $username, $password)) { ... }

  3. Then, if there are further underlying resources that you need to access to test whether a particular site is up, then use an appropiate operation on them. e.g. on a file, maybe use ftp_mdtm() to get the last modified time or on a directory, see if ftp_nlist() works.

0
adăugat
Trebuie remarcat faptul că, în mod implicit, aceste funcții FTP nu sunt activate atunci când PHP este compilat, cel puțin pe sistemele pe care le-am folosit.
adăugat autor Thomas Owens, sursa
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT