PHP غير مرن أو إعادة كتابة الملف الخاص/الحالي بمفرده

StackOverflow https://stackoverflow.com/questions/2794840

  •  04-10-2019
  •  | 
  •  

سؤال

المهمة: قطع أو محو ملف بعد المشي الأول.

لدي ملف تثبيت يسمى "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 أو ما شابه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top