2016-02-12 2 views
1

Я представлены строки, что мне нужно использовать, чтобы загрузить изображение ...Каков правильный способ использования встроенных FTP-ссылок на файлы?

ftp://FTPUSER:[email protected]\Path\To\File.jpg 

и мне интересно, если есть лучший способ использовать эту строку, а не с помощью регулярных выражений/parse_url сократить он и ввести данные в традиционный FTP ftp_connect, ftp_login, ftp_pasv, и т.д., и т.д. ...

Может быть, как

ftp_get_file(ftp://FTPUSER:[email protected]\Path\To\File.jpg) 

или что-то в этом роде.

Любые идеи?

Заранее благодарим за любую помощь!

+0

это URL, так почему бы не [parse_url] (http://php.net/parse_url)? –

+0

Обновлено сообщение, спасибо. – SoWizardly

+0

ну, зачем изобретать колесо с помощью собственной функции синтаксического анализа, когда parse_url предназначен для этого? он уже усеивает все i и пересекает все t, где вы начинаете с нуля и тратите больше времени на отладку/тестирование, чем на самом деле получать что-нибудь полезное. –

ответ

1

Благодаря @ user3158900, рабочий раствор ....

function downloadFileViaFTPURL($remote_data) 
{ 
    // I dunno why, but this made it work... 
    $search_replace = ["\\" => "/"]; 

    foreach ($search_replace as $search => $replace) { 
     $remote_data = str_replace($search, $replace, $remote_data); 
    } 

    if ($remote_data = fopen($remote_data, "r")) { 
     $filename = explode("/", $remote_data); 
     $filename = end($filename); 

     if (!file_exists("/path/to/folderforfile")) { 
      mkdir("/path/to/folderforfile", 0755, true); 
     } 

     if (file_put_contents("/path/to/folderforfile/$filename", $remote_data)) { 

      return true; 

     } 
    } 
    return false; 
} 

downloadFileViaFTPURL("ftp://FTPUSER:[email protected]\Path\To\File.jpg"); 

Надеется, что это помогает кто-то!

Смежные вопросы