0

2行目にインクルードパスを追加したいphpファイルがあります。ファイルを開き、2行目にコード行を挿入する必要があります。

私はいくつかのテクニックを試しましたが、どれも機能していませんが、ファイルの書き込みにあまり慣れていないため、書き込もうとしているテキストと関係があり、文字を正しくエスケープできない可能性があります。

これが私が書きたいファイルです:

$file = $_SERVER['DOCUMENT_ROOT'].'/'.$domaindir.'/test.php';

これが私がファイルに挿入したいテキストの一部です:

$dbfile = "include('".$_SERVER['DOCUMENT_ROOT']."/".$domaindir."/web_".$dbname.".inc.php');";

それから私がやっていたのは文字列の置換でしたが、それは「session_start();」をバンプすることだけでした。改行に少し!

誰かがこれを私のphpファイルの2行目に挿入する方法を教えてくれるチュートリアルの方向に私を向けることができますか?実際に誰かが何かアイデアを持っている場合は?

PHPファイルへのパスが完全にテストされていることは確かなので、ファイルが開かれていない、または書き込まれていないことはわかりません。

どんなアイデアでも大歓迎です。

前もって感謝します。

4

1 に答える 1

3

zerkmsに完全に同意した後(PHPファイルの変更は悪い考えです) 、これを行うために置換する必要はありません。

file()を使用してファイルを読み込むだけで、PHPファイルが便利な配列に配置されます。次に、アレイをスプライスするか、場合によっては次のようにします。

$file       = file('yourfile.php');

$first_line = array_shift($file);       // Remove first line and save it
array_unshift($file, $yourSecondLine);  // push second line
array_unshift($file, $first_line);      // Save back the first line

$fp = fopen('yourfile.php', 'w');       // Reopen the file
fwrite($fp, implode("\n", $file));     
fclose($fp);

これを行った後、ファイルのパーミッションを確認してください。彼らはもっとリラックスしたかもしれません(またはそれ以下になります。これをrootとしてコマンドラインからWebツリーで再帰的に実行すると、ほとんどのApacheインストールでは、Apacheが次のファイルにアクセスできなくなるため、使用できないWebサイトになります。今生まれたスーパーユーザーファイル)。

于 2012-09-12T21:36:04.943 に答える