via subir servidor envio codigo archivo php http ftp pear server-response

subir - servidor ftp php



Comprobando códigos de estado FTP con un script PHP (3)

¿No sería más sencillo utilizar la función PHP FTP * incorporada que intentar implementar la suya propia? Si el URI proviene de una fuente fuera de su control, deberá verificar la definición del protocolo (http: // o ftp: //, etc.) para determinar qué funcionalidad usar, pero eso es bastante trivial. Si ahora se ha especificado un protocolo (¡realmente debería haberlo!), Entonces podría intentar establecer de forma predeterminada http.

Tengo un script que comprueba las respuestas de los servidores HTTP utilizando las clases de PEAR HTTP. Sin embargo, recientemente descubrí que la secuencia de comandos falla en los servidores FTP (y probablemente en cualquier cosa que no sea HTTP o HTTPS). Probé con Google, pero no vi ningún script o código que devolviera el código de estado del servidor a otros servidores que no sean HTTP.

¿Cómo puedo averiguar el estado de un grupo de noticias o un servidor FTP usando PHP?

EDITAR: Debo aclarar que solo estoy interesado en la capacidad de leer desde un servidor FTP y el directorio que especifico. Necesito saber si el servidor está muerto / desaparecido, no estoy autorizado a leer, etc.

Tenga en cuenta que, aunque la mayoría de las veces soy independiente del idioma, todo el sitio web está basado en PHP, por lo que una solución de PHP sería lo mejor para facilitar el mantenimiento y la extensibilidad en el futuro.


HTTP funciona de manera ligeramente diferente a FTP aunque desafortunadamente. Aunque ambos pueden tener el mismo aspecto en su navegador, HTTP funciona a partir de URI (es decir, para acceder al recurso A, tiene un identificador que le indica cómo acceder a él).

FTP es muy impulsado por el servidor de la vieja escuela. Incluso el FTP anónimo es un poco complicado, ya que aún proporciona un nombre de usuario y contraseña, se define como "anónimo" y su dirección de correo electrónico.

Verificar si un servidor FTP está activo significa verificar

  1. Que puedes conectarte al servidor FTP

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

  2. Que puede iniciar sesión en el servidor:

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

  3. Luego, si hay más recursos subyacentes a los que necesita acceder para probar si un sitio en particular está activo, entonces use una operación apropiada en ellos. por ejemplo, en un archivo, tal vez use ftp_mdtm() para obtener la última hora modificada o en un directorio, vea si ftp_nlist() funciona.


Si desea leer respuestas específicas, deberá abrir un socket y leer / escribir datos manualmente.

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

Entonces tendrás que fput / fread los datos hacia adelante y hacia atrás.
Esto requerirá que lea sobre el protocolo FTP.