PHP Beginner: هل يستخدم الممارسة القياسية لأمر EXEC؟

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

  •  25-09-2019
  •  | 
  •  

سؤال

أنا فقط بدأت PHP. أنا فضولي فقط إذا كانت هناك طريقة أفضل للقيام بذلك. هذا يعرض جميع البرامج النصية الخاصة بي في نفس المجلد مثل هذا البرنامج النصي.

لست متأكدًا مما إذا كان من المعتاد استخدام الأمر EXEC. لا يبدو محمولًا جدًا.

<html>
<head>
   <title>My PHP Practice Scripts</title>
</head>

<body>
   <center><h1>PHP Scripts</h1></center>
   <?php
      exec("ls -1 *.php", $output);

      foreach ($output as &$tmp){
         echo "<a href=\"$tmp\">$tmp</a><br>";
      }
   ?>
</body>
</html>
هل كانت مفيدة؟

المحلول

هناك وظائف دليل لمثل هذه العمليات: http://www.php.net/manual/en/ref.dir.php

نصائح أخرى

"exec" محمول beacuse هو واجهة برمجة التطبيقات! :-) ما هو غير محمول هو السلسلة التي تمثل سطر الأوامر الذي تستدعيه من خلال "exec".

في هذه الحالة ، يمكنك استخدام API PHP لقراءة الدليل. هذا محمول على كل نظام تشغيل تستخدمه على الخادم الخاص بك.

السابق: فئة دير في PHP

هل استخدام الممارسة القياسية لأمر EXEC؟

رقم باستخدام exec إن التفاعل مع نظام التشغيل المضيف هو ممارسة غير محمولة للغاية. بالنسبة لأي موقف تقريبًا ، هناك حل مستقل لنظام التشغيل ؛ في هذه الحالة بالذات ، يمكنك العثور على جميع الملفات في الدليل الحالي مع glob, readdir أو scandir.

استخدام eval في برنامج يقبل أي شكل من أشكال مدخلات المستخدم يؤدي أيضًا إلى مخاطر أمنية خطيرة. لا يعاني برنامجك من مثل هذه المخاطر حاليًا ، لكنه أيضًا تافه للغاية.

نعم ، هناك طريقة أفضل لفعل ما تتبعه. هناك العالم أو Readdir للمبتدئين.

بقدر "الممارسة القياسية" ، سترى الكثير من هذا في PHP Land. إذا كان المطور لا يعرف قاعدة الكود الضخمة الخاصة بـ PHP جيدًا ولكنها تعرف القشرة التي سينتهي بها الأمر باستخدام exec و backticks (``) في كل مكان لإنجاز وظيفتهم. إنها ممارسة قياسية أن بعض النسبة المئوية لمطوري PHP يكرهون ، ولم تستطع النسبة المئوية الأخرى العيش بدونها. تعتاد على رؤيته.

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