Server sunucu>

1 Cevap

Ben amaca sunucu B bir wp eklenti dosyası var, bir uzak sunucu A. bir zip dosyası almak için

Sunucu B zip dosyasını aldıktan sonra bunun içeriğini ayıklamak ve mevcut dosyaların üzerine yazmasını sunucu B belirli bir klasöre dosyaları kopyalamak gerekir.

Ben aynı şeyi yapmak için kullanır ve aktarıcı bir dosyadan ödünç ettik ve ben sadece yukarıda tarif edilen sunucu prosedüre otomatik sunucu için yinelemek istiyorum aşağıda bazı kodlar var. Bu eklentiyi etkinleştirin çalışırken Ama ölümcül bir hata alıyorum.

function remote_init() 
{
    openZip('http://myserver.com/upgrade.zip');
    $target = ABSPATH.'wp-content/themes/mytheme/';
}


function openZip($file_to_open, $debug = false) { 
    global $target;
    $file = realpath('/tmp/'.md5($file_to_open).'.zip');

/ / $ Dosya, her zaman boştur. Bu durumda realpath kullanamaz. Ne yapmalı?

    $client = curl_init($file_to_open);
    curl_setopt(CURLOPT_RETURNTRANSFER, 1);

    $fileData = curl_exec($client);

    file_put_contents($file, $fileData);

    $zip = new ZipArchive();  
    $x = $zip->open($file);  
    if($x === true) {  
        $zip->extractTo($target);  
        $zip->close();  

        unlink($file);  
    } else {
        if($debug !== true) {
            unlink($file);
        }  
        die("There was a problem. Please try again!");  
    }  
} 


add_action( 'init','remote_init');

1 Cevap

Ben sorularınızı hızlı bir kontrol yaptım ve 5. satırdaki küçük bir hata vardı.

$target = ABSPATH .'wp-content/themes/mytheme/';
function openZip($file_to_open, $debug = false) { 
    global $target;
    $file = ABSPATH . '/tmp/'.md5($file_to_open).'.zip';
    $client = curl_init($file_to_open);
    curl_setopt($client, CURLOPT_RETURNTRANSFER, 1);  //fixed this line

    $fileData = curl_exec($client);

    file_put_contents($file, $fileData);

    $zip = new ZipArchive();  
    $x = $zip->open($file);  
    if($x === true) {  
        $zip->extractTo($target);  
        $zip->close();  

        unlink($file);  
    } else {
        if($debug !== true) {
            unlink($file);
        }  
        die("There was a problem. Please try again!");  
    }  
}