روش های اجرای دستورات سیستم با استفاده از ‏PHP

متالیک

عضو جدید
کاربر ممتاز
به طور کلی 4 روش برای اجرای دستور با ‏PHP‏ وجود دارد:‏
‏1. علامت ‏‎`‎‏: ‏PHP‏ دستور بین دو علامت ‏‎`‎‏ را روی سیستم اجرا کرده و کل خروجی را نمایش می دهد.‏
‏2. تابع ‏system‏: این تابع دستور سیستم را اجرا کرده و کل خروجی را نمایش می دهد، همچنین آخرین خط ‏خروجی را نیز بر می گرداند.‏
‏3. تابع ‏exec‏: این تابع دستور را روی سیستم اجرا می کند و کل خروجی را در یک آرایه قرار می دهد و آخرین خط ‏خروجی را برمی گرداند.‏
‏4. تابع ‏passthru‏: این تابع دستور را روی سیستم اجرا کرده و کل خروجی را نمایش می دهد.‏

روش اول: استفاده از علامت ‏‎`‎
برای اجرای دستورات سیستم با این روش کافی است دستور سیستم را بین دو علامت ‏‎`‎‏ قرار داده و در صورت نیاز ‏خروجی آن در یک متغیر ذخیره و یا خروجی آن را با ‏echo‏ نمابش دهید.‏
مثال:‏
PHP:
‎$result = `dir c:\php`;‎
Echo $result;‎

روش دوم: استفاده از تابع ‏system‏:‏
در این روش دستور اجرا شده و خروجی آن نمایش داده می شود و آخرین خط خروجی برگردانده می شود، مثال:‏
PHP:
‎$result = system(‎‏"‏ir c:\php‏"‏‎;‎

با این دستور، خروجی نمایش داده می شود، حال اگر آن را ‏echo‏ کنید خروجی دیگری به صورت زیر خواهید دید:‏
کد:
‎11 Dir(s) 566,263,808 bytes free‎

روش سوم: استفاده از تابع ‏exec‏:‏
در این روش دستور اجرا می شود ولی خروجی آن نمایش داده نمی شود. خروجی به صورت خط به خط درون یک ‏آرایه ذخیره می شود و برگردانده می شود. برای ذخیره ی آرایه باید آرگومان دوم را نیز مشخص کنید.‏
مثال:‏
PHP:
‎$result = exec(‎‏"‏ir c:\php‏"‏‎);‎

دستور اجرا می شود ولی اگر آن را ‏echo‏ کنید تنها خط آخر آرایه نمایش داده می شود:‏
کد:
‎11 Dir(s) 566,263,808 bytes free‎

برای مشاهده ی کلیه ی خطوط آرایه می توانید از ‏foreach‏ استفاده کنید، اما قبل از آن باید خروجی ‏exec‏ را در ‏یک متغیر ذخیره کنید و برای این کار نام متغیر را به عنوان آرگومان دوم تابع بنویسید:‏
PHP:
‎$result = exec(‎‏"‏dir c:\php‏"‏‎,$dirout);‎

دستور فوق خط آخر آرایه را در ‏result‏ ذخیره می کند. کل خروجی را به صورت یک آرایه در ‏dirout‏ ذخیره می کند. ‏دستور را اجرا می کند ولی خروجی را نشان نمی دهد.برای مشاهده ی کلیه ی خطوط خروجی به صورت زیر عمل می ‏شود:‏
PHP:
foreach($dirout as $line)‎
‎{‎
echo ‎‏"‏‎$line\n‏"‏‎;‎
‎
}‎
روش چهارم: استفاده ازتابع ‏passthru‏:‏
با این تابع، دستور اجرا شده و کل خروجی نشان داده می شود. مثال:‏
PHP:
passthru(‎‏"‏dir c:\php‏"‏‎);‎
 

sedighzadeh

عضو جدید
البته باید در نظر داشت که تمامی این دستورات در صورتی کار می کنند که فعال باشند، چون در بیشتر هاستهای معمولی این دسترسی وجود ندارد.
 

elma

عضو جدید
من تشکر ندارم
مرسی به خاطر تاپیک خوب که زدین
:gol:
 
Similar threads
Thread starter عنوان تالار پاسخ ها تاریخ
Y 3 روش برای ایجاد و فراخوانی Setting/Config. نرم افزار PHP 0

Similar threads

بالا