Guys,
Kemarin saya ada project untuk mengambil file di FTP untuk di proses sesuai kebutuhan.
Ternyata file nya ada special character (#) yang mana tidak bisa di get menggunakan file_get_contents.
jika menggunakan file_get_contents, akan error: Failed to open stream: FTP server reports 550 Can’t check for file existence
contoh file dengan special character.
Untuk menyiasati nya adalah dengan cara upload remote file nya ke local server.
Setelah itu baru fopen file di local nya.
Berikut script nya:
<?php
$ftp_server = "nnn.nnn.nnn";
$ftp_username="ftp_username";
$ftp_userpass="ftp_password";
$ftp_connection = ftp_connect($ftp_server, 21);
$login = ftp_login($ftp_connection, $ftp_username, $ftp_userpass);
$remote_file = '/out/of/'.urldecode($_GET['file']).'';
$local_file = 'localfile.txt';
// buka file dengan fopen
$handle = fopen($local_file, 'w');
if (ftp_fget($ftp_connection, $handle, $remote_file, FTP_ASCII, 0)) {
$file_handle = fopen($local_file,'r');
while(!feof($file_handle)){
$line_of_text = fgets($file_handle);
$jsonFIle = json_decode($line_of_text, false);
}
print_r($jsonFIle);
} else {
echo "There was a problem while downloading $remote_file to $local_file\n";
}
Selamat mencoba.