Citire fisier txt / log prin FTP

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Mario
Mesaje:5

Citire fisier txt / log prin FTP

Salutari, de curand tot incerc sa fac un script care sa poata citi un fisier.txt / .log de pe un FTP.

Din fericire am gasit acest cod facut de Marplo, dar nu reusesc sa il fac sa citeasca continutul unui fisier.txt sau .log, citeste doar directoarele.

Cod: Selectaţi tot

<?php
// Datele pt. conectare la server
$ftp_server = 'ftp.domeniu_site';        // Poate fi de exemplu 'ftp.marplo.net'
$ftp_user = 'utilizator';
$ftp_pass = 'parola';

// Seteaza Id-ul conexiunii
$conn_id = ftp_connect($ftp_server); 

// Executa conectarea
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass); 

// Verifica daca s-a reusit sau nu conectarea la server
if ((!$conn_id) || (!$login_result)) { 
  echo "Conectarea prin FTP la serverul $ftp_server pentru utilizatorul $ftp_user a iesuat.";
  exit;
}
else {
  // Obtine continutul directorului (numele de fisiere si directoare din el)
  $continut = ftp_nlist($conn_id, ".");

  // Parcurge matricea si afiseaza numele directoarelor si fisierelor returnate
  for ($i=0; $i<count($continut); $i++) {
    echo '<br>'.$continut[$i];
  }
}

// Inchide conexiunea
ftp_close($conn_id);
?>
Ma poate ajuta cineva sa fac acest lucru ?
Stima.

PySnake[1337] Mesaje:3
Salut.Daca FTP-ul e hostat pe linux ( server propriu ) si ai acces root ti-as sugera sa folosesti awk si mai apoi preiei informatia cu php/python.:)

P.S Acesta este scopul programarii cu awk, prelucrari de text, lucrul cu fisiere.

MarPlo Mesaje:4343
Salut
Ca sa citesti continutul unui fisier prin FTP, mai intai trebuie descarcat /salvat, apoi il citesti din locatia unde e salvat, de exemplu cu file_get_contents().
Un script pt preluare fisier prin FTP cu PHP, si apoi citire, e acesta:

Cod: Selectaţi tot

<?php
// Datele pt. conectare la server
$ftp_server = 'ftp.domain.net';        // Poate fi de exemplu 'ftp.coursesweb.net'
$ftp_user = 'nume_utilizator';
$ftp_pass = 'parola';

// Seteaza Id-ul conexiunii
$conn_id = ftp_connect($ftp_server); 

// Executa conectarea
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass); 
ftp_pasv($conn_id, true);

// Verifica daca s-a reusit sau nu conectarea la server
if ((!$conn_id) || (!$login_result)) { 
  echo "Conectarea prin FTP la serverul $ftp_server pentru utilizatorul $ftp_user a esuat.";
  exit;
}
else {
  // Datele cu numele fisierului, sursa unde se afla si directorul unde va fi copiat
  $fisier = 'fisier.txt';
  $getfile = '/director/'. $fisier;
  $saveto = 'dir_to_save/'. $fisier;

  // Apeleaza functia "ftp_get()" pt. efectuarea transferului
  // Afiseaza mesaj in caz de eroare
  if(!ftp_get($conn_id, $saveto, $getfile, FTP_BINARY)) echo "Eroare, fisierul $fisier nu a putut fi descarcat";
}

ftp_close($conn_id);        // Inchide conexiunea

// daca fisierul exista salvat, il citeste
if(file_exists($saveto)) {
  $filecnt = file_get_contents($saveto);
  echo $filecnt;
}
 
O alternativa e si aceasta:

Cod: Selectaţi tot

$filecnt = file_get_contents('ftp://nume_utilizator:parola@ftp.domeniu.net/dir/file');
echo $filecnt;

Subiecte similare