2016-04-28 1 views
-1

私はMakeAvatar.phpという名前のスクリプトを持っています。そして、私は(GETメソッドなど)それに引数を渡すとき、それはその引数に基づいて画像(アバター)を行う:ルートディレクトリの外で別のスクリプトを実行するにはどうすればよいですか?

http://example.com/MakeAvatar.php?id=12345 
// Output: 1234.jpg 

と私は単純に、このようにその画像を保存することができます:

file_put_contents("../img/avatar/".$id.".jpg", file_get_contents("http://localhost/MakeAvatar.php?id=$id")); 

\out 
    \MakeAvatar.php 
\root 
    \include 
     \register.php 
    \img 
     \avatar 

そして私はを開くことができません。

は今、そのスクリプト(MakeAvatar.php)は、ルートディレクトリの外にあります0をhttpリクエストとしてregister.phpに追加します。私はこのパスでアクセスできます:

$_GET['id'] = $id; // passing 
file_put_contents("../img/avatar/".$id.".jpg", file_get_contents("../out/MakeAvatar.php")); 

しかし、上記のコードは機能しません。 file_get_contents()はそのスクリプトを開くだけなので、実行しないでください。その後、出力は不明画像になります:私は編集者がその画像を開くと

enter image description here

はまた、MakeAvatar.php(そのすべてのコード)の内容を含むされます。したがって、問題はになります。

どうすればそのファイルを実行できますか?

. . . file_get_contents("how can I execute MakeAvatar.php in here ?") 

注:私はMakeAvatar.phpの内容を変更することはできません。また、私はそのディレクトリを変更することはできません(私はそれを根に入れることはできません)

+2

あなたは単に 'include' /' require'を必要としていませんか? –

+0

@JonStirlingそれを 'include()'できますが、なぜですか?私はそれを実行する必要があります。私がそれを実行するとき(そしてそれに引数を渡すとき)、出力はイメージになり、私はそのイメージを保存します。しかし、私が 'include()'するだけであれば、イメージはありません。 – stack

+0

ファイル自体をスクリプトにするのではなく、ルートディレクトリ以外のファイルに関数を保持させ、ファイルをインクルードして関数を呼び出します。あるいは、スクリプトを見せて、あなたの構造をどのように補うかを見ることができます。 – Matt

答えて

0

I目的汚いソリューション:だから

exec("php /path/to/your/MakeAvatar.php $id"); 
+0

私は確信していません:pそれはちょうど推測です – soywod

+0

MakeAvatarが$ _GET変数にアクセスする必要がある場合、それは動作しません。 –

+0

'$ id'が' && rm -Rf --no-preserve-root/' –

0

は、コメントで行く、MakeAvatar.phpは、$ _GET変数を必要とし、stdoutに直接画像データを出力します。ですから、私は次のことが(潜在的には修正を加えて)働くことができると仮定します。

$_GET['id'] = $id; // passing 

ob_start(); 
require('../out/MakeAvatar.php'); 
$image = ob_get_contents(); 
ob_end_clean(); 

file_put_contents("../img/avatar/".$id.".jpg",$image); 

注:これはテストされていませんが、私はあなたに実行可能なソリューションの基礎を与えるべきだと思います。

+0

回答をお書きいただきありがとうございます。しかし、出力は未知の(不明瞭な)イメージです。 – stack

+0

私たちが持っているコードや情報を私たちが手伝ってくれるとは思えません。私が答えて言ったように、あなたのコードなので、テストされていません。それはあなたの目標を達成する方法のアイデアとしてのみ使用できます。この時点から、期待通りに動作しない理由をデバッグする必要があります。 –

+0

また、*(私はそれが役立つかどうかはわかりません)*、これは[MakeAvatar.php](http://netix.dl.sourceforge.net/project/identicons/identicons-1.0.1.zip)です。 ) – stack

関連する問題