2011-01-11 8 views
0

この機能がファイルをまったくコピーしていない理由を誰に教えてもらえますか? ($ urldest)へPHP 'コピー'が動作しない

私はそれが($ pluginfile)にファイルをコピーする必要があります。このファイルは /public_html/wp-admin/plugins.php

から実行される

$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(); 

    } 
} 

/public_html/wp-content/plugins/supersqueeze/supersqueeze.php

/public_html/wp-content/themes/[active wordpress theme] - もちろんで[アクティブなWordPressのテーマ]を交換しますテーマのディレクトリ。

+1

'$ errors'とは何ですか? – ajreal

+3

@を取り除き、何が得られるのかを教えてください – meze

+2

これはエラー抑制 '@'演算子を使用したくない場所の1つです。あなたがsuexec/fastcgi-phpを持つプロホスティングを持っていない限り、それはおそらく許可の問題です。 – mario

答えて

1

書き込み権限が/public_html/wp-content/themes/[active wordpress theme]であることと、上書きされている可能性のあるファイルがあることを確認する必要があります。

+0

うわー、それを考えに来た、私はアクセス許可を編集したと思ったが、明らかに私はしなかった。私に思い出させてくれてありがとう!笑。 – Jared

1

したがって、copy()の2番目のパラメータはローカルファイルでなければなりません。 webbiedaveのように書き込み可能な宛先(chmod)であることを確認してください。

$desturl = "./supersqueeze.php"; 

理由は2倍です。 PHPのHTTPストリームラッパーは、書き込み操作に必要なPOSTまたはPUTファイルをサポートしていません。第二に、あなたのWebサーバーはおそらくHTTP PUTもサポートしていません。 (小さなリクエストハンドラスクリプトがそのようなものを処理することはできますが)