2012-04-02 9 views
-2

1つのPHPファイルをインクルードして関数を実行する必要があります。 実行後、PHPスクリプトの最後に何かを追加したいと思います。PHPがインクルードファイルに書き込む

しかし、私はファイルを開くことができません。インクルードされたファイル/類似のものを閉じることができるので、PHPファイルに情報を追加することができます。

include 'something.php'; 
echo $somethingFromIncludedFile; 

//Few hundred lines later 

$fh = fopen('something.php', 'a') or die('Unable to open file'); 
$log = "\n".'$usr[\''.$key.'\'] = \''.$val.'\';'; 
fwrite($fh, $log); 
fclose($fh); 

これを達成する方法は?

+1

それはちょうど間違って見えます:P – PeeHaa

+0

どうしてそんなことをしたいですか? –

+0

なぜこのようにしたいのですか?私はそれが少し奇妙であることを意味します。あなたはすでに含まれているファイルを更新しようとしています...あなたがしようとしていることは間違った方法です... – Ravish

答えて

5

一般に、PHPコードをPHP自体で変更する必要はありません。まず、セキュリティの観点から、悪い習慣です。私はあなたが他の方法で必要なものを達成できると確信しています。

+0

はい私は別の方法でそれを達成することができます、これは私がこれを行うための最良の方法になるように私が取り組んでいる "実験"です。 – ewooycom

+0

この方法で何を達成しようとしていますか教えてください。 –

+0

シンプルなシステムを保存する、私はそれがdifferendの方法で行うことができます知っている。私はハッシュマップの保存を試みたので、$ val ['nevvar'] = 'newfile';そして、私は$ val ['nevvar']をコードに追加してから新しいものを追加したいと思います。 – ewooycom

-1

あなたがすでに知っているように、この試みは良いものではありません。あなたが本当にあなたのファイルをインクルードして、それに何かを追加したいのであれば、次のようにすることができます。
eval()を使用することに注意してください。ファイルの内容に有害なコードが含まれていないと100%確信できない場合は危険です。

// This part is a replacement for you include 
$fileContent = file_get_contents("something.php"); 
eval($fileContent); 
// your echo goes here 

// billion lines of code ;) 

// file append mechanics 
$fp = fopen("something.php", "a") or die ("Unexpected file open error!"); 
fputs($fp, "\n".'$usr[\''.$key.'\'] = \''.$val.'\';'); 
fclose($fp); 
+0

OMG、私はこれまでに一箇所で多くのエラーを見たことがない –

0

自己修正コードは非常に危険です。そして、コードからデータを分離するのは単なるダムです。これらの警告の両方に加えて、PHP配列は比較的遅く、スケールがうまくいかないためです(file_put_contents( 'data.ser'、serialize($ usr))/ $ usr = unserialize(file_get_contents( 'data。 ser ')))しかし、それは少数のユーザのためだけに働くだろう)。

従来のファイルを使用してマルチユーザーコンテキストにデータを格納するという問題があります。これは可能ですが、高度なロックキュー管理を構築する必要があります。これは、通常、デーモンを使用してキュー/ミューテックスを管理することを必要とし、その価値よりも常に努力しています。

データを格納するためにデータベースを使用します。

関連する問題