PHP غير مرن أو إعادة كتابة الملف الخاص/الحالي بمفرده
سؤال
المهمة: قطع أو محو ملف بعد المشي الأول.
لدي ملف تثبيت يسمى "index.php" والذي ينشئ ملف 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__);
يمكن استخدامها لحذف "ملف المساعد" بعد التنفيذ.
المحلول
unlink(__FILE__);
يبدو أن ملف "Helper" ضروري لأنني لا أستطيع إيجاد طريقة لتعديل استخدام/عملية ملف PHP.
نصائح أخرى
تستخدم معظم مواقع PHP المثبتة ذاتيًا install.php لإجراء الإعداد الأولي. عندما يتم التحقق من التثبيت ، يمكنك إعادة توجيه إلى إزالة extall.php الذي سيتصل بـ Unlink () على كل ملف تثبيت لمسحها جميعًا.
هذا يترك وراءه removeInstall.php ، ولكن لديه فائدة من عدم تلوث أي من "الرمز المباشر" مع رمز إزالة التثبيت.
removeInstall.php سيحتوي ببساطة على عبارات غير مرتبطة ...
if (file_exists('install.php')) {
unlink('install.php');
}
إذا كنت لا تريد أن تترك وراءها removeInstall.php ، فيمكنك إجراء مكالمة مشروطة في ملف مختلف ... على سبيل المثال index.php؟ removeInstallation = 1 أو ما شابه.