2011-01-11 12 views
0

Kann mir jemand sagen, warum diese Funktion die Datei überhaupt nicht kopiert?PHP 'Kopieren' funktioniert nicht

$pluginfile = get_bloginfo('template_url') . '/wp-content/plugins/supersqueeze/supersqueeze.php'; 

$urlparts = get_bloginfo('template_url'); 
$homeurl = home_url(); 
$urlstrip = str_replace($homeurl, '..', $urlparts); 
$urldest = $urlstrip . '/supersqueeze.php'; 

function copyemz(){ 
global $pluginfile; global $urldest; 
if([email protected]($pluginfile,$urldest)) { 
     $errors= error_get_last(); 

    } 
} 

Diese Datei wird ausgeführt von /public_html/wp-admin/plugins.php

ich es brauche die Datei an ($ pluginfile) /public_html/wp-content/plugins/supersqueeze/supersqueeze.php

bis ($ urldest) /public_html/wp-content/themes/[active wordpress theme] zu kopieren - natürlich ersetzen [aktiv Wordpress Theme] mit das Verzeichnis des Themas.

+1

Was sagt '$ errors'? – ajreal

+3

Entfernen Sie @ und teilen Sie uns mit, welchen Fehler Sie erhalten – meze

+2

Dies ist einer der Orte, an denen Sie * den Fehlerunterdrückungsoperator '@' nicht benutzen wollen. Es sei denn, Sie haben einen Pro Hoster mit suexec/fastcgi-php, dann ist es wahrscheinlich ein Berechtigungsproblem. – mario

Antwort

1

Sie müssen sicherstellen, dass Sie über Schreibrechte für /public_html/wp-content/themes/[active wordpress theme] sowie alle anderen Dateien verfügen, die Sie möglicherweise überschreiben.

+0

Wow, wenn ich darüber nachdenke, dachte ich, ich hätte die Berechtigungen geändert, aber anscheinend nicht. Danke, dass du mich erinnert hast! Lol. – Jared

1

Also muss der zweite Parameter zu copy() eine lokale Datei sein. Stellen Sie sicher, dass es auch ein beschreibbares Ziel ist (chmod), wie webbiedave sagt.

$desturl = "./supersqueeze.php"; 

Der Grund ist zweifach. PHPs http-Stream-Wrapper unterstützen keine POST- oder PUT-Dateien, die eine Write-to-Aktion erfordern würde. Zweitens würde Ihr Webserver wahrscheinlich auch HTTP PUT nicht unterstützen. (Obwohl ein kleines Requesthandler-Skript so etwas handhaben könnte.)