Какой лучший способ написать эту функцию. Он получает удаленный файл и копирует его локально, в php - PullRequest
0 голосов
/ 12 апреля 2009

Итак, я работаю в системе Windows, и хотя она работает локально, знайте, что она будет работать на серверах других людей. Что такое кроссплатформенный способ сделать так же, как этот

function fetch($get,$put){
    file_put_contents($put,file_get_contents($get));
}

Ответы [ 5 ]

3 голосов
/ 12 апреля 2009

Я не понимаю, почему это не получится, если другой компьютер не работает на PHP4. Чтобы сделать совместимым back , вам нужно добавить дополнительные функции, обеспечивающие замены для file_get_contents & file_put_contents:

if(version_compare(phpversion(),'5','<')) {
    function file_get_contents($file) {
        // mimick functionality here
    }    
    function file_put_contents($file,$data) {
        // mimick functionality here
    }
}
1 голос
/ 12 апреля 2009

Вот решение, использующее простые файловые операции:

<?php
$file = "http://www.domain.com/thisisthefileiwant.zip";
$hostfile = fopen($file, 'r');
$fh = fopen("thisisthenameofthefileiwantafterdownloading.zip", 'w');

while (!feof($hostfile)) {
    $output = fread($hostfile, 8192);
    fwrite($fh, $output);
}

fclose($hostfile);
fclose($fh);
?>

Убедитесь, что в вашем каталоге включены разрешения на запись. (CHMOD)

Следовательно, замена для вашей выборки ($ get, $ put) будет:

function fetch($get, $put) {    
    $hostfile = fopen($get, 'r');
    $fh = fopen($put, 'w');

    while (!feof($hostfile)) {
        $output = fread($hostfile, 8192);
        fwrite($fh, $output);
    }

    fclose($hostfile);
    fclose($fh);
}

Надеюсь, это помогло! =)


Cheers, KRX

0 голосов
/ 12 апреля 2009

Если обертки fopen не включены, расширение curl может быть: http://php.net/curl

0 голосов
/ 12 апреля 2009

хорошо, когда я прочитал ваш вопрос, я понял, что вы хотите перенести файл с удаленного сервера на ваш сервер локально, это можно сделать с помощью расширения FTP от php

http://www.php.net/manual/en/function.ftp-fget.php

если это не то, что ты намереваешься, я считаю, что то, что говорит Шон, правильно

еще скажите мне в комментариях, и я помогу вам больше

0 голосов
/ 12 апреля 2009

Ответ Шона абсолютно верен, единственное, что вам нужно убедиться, что ваш $ put varialable является допустимым путем на любом сервере Windows Server на сервере Unix.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...