5

タスク: 最初のウォークスルー後にファイルをカットまたは消去します。

別のphpファイルを作成する「index.php」というインストールファイルがあります。

<? 
/* here some code*/
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "<?php \n
echo 'hallo, *very very long text*'; \n 
?>";
fwrite($fh, $stringData);
/*herecut"/
/*here some code */

新しいファイルの作成後、このファイルが呼び出され、非常に長く、最初のインストールでのみ必要になるため、filecreation 呼び出しを消去するつもりです。

そのため、上記のコードに追加します

echo 'hallo, *very very long text*'; \n 
***$new= file_get_contents('index.php'); \n
$findme   = 'habanot';
$pos = strpos($new, $findme);
if ($pos === false) {
$marker='herecut';\n
$new=strstr($new,$marker);\n
$new='<?php \n /*habanot*/\n'.$new;\n
$fh = fopen('index.php', 'w') or die 'cant open file');
$stringData = $new;
fwrite($fh, $stringData);
fclose($fh);***    

?>";
fwrite($fh, $stringData);]}

現在のファイルを変更したり、最初の呼び出し後にファイルを「自己破壊」するための簡単な方法や関数はありませんか?

よろしく

編集:編集する方法を見つけました、zafに申し訳ありません

unlink(__FILE__);

実行後に「ヘルパーファイル」を削除するために使用できます。

4

2 に答える 2

5
unlink(__FILE__);

php-file inuse/process を変更する方法が見つからないため、「ヘルパー」ファイルが必要なようです。

于 2010-05-08T18:30:09.367 に答える
1

ほとんどの自己インストール PHP サイトは、install.php を使用して初期設定を実行します。インストールが検証されたら、removeinstall.php にリダイレクトし、各インストール ファイルで unlink() を呼び出してそれらをすべてクリアします。

これにより、removeinstall.php が残りますが、「ライブ コード」がインストール削除コードで汚染されないという利点があります。

removeinstall.php には unlink ステートメントが含まれているだけです...

if (file_exists('install.php')) {
    unlink('install.php');
}

removeinstall.php を残しておきたくない場合は、別のファイルで条件付き呼び出しを行うことができます。たとえば、index.php?removeinstallation=1 などです。

于 2010-05-11T06:48:05.687 に答える