TAHA
11-05-2009, 11:26 AM
به طور کلی 4 روش برای اجرای دستور با PHP وجود دارد:
1. علامت `: PHP دستور بین دو علامت ` را روی سیستم اجرا کرده و کل خروجی را نمایش می دهد.
2. تابع system: این تابع دستور سیستم را اجرا کرده و کل خروجی را نمایش می دهد، همچنین آخرین خط خروجی را نیز بر می گرداند.
3. تابع exec: این تابع دستور را روی سیستم اجرا می کند و کل خروجی را در یک آرایه قرار می دهد و آخرین خط خروجی را برمی گرداند.
4. تابع passthru: این تابع دستور را روی سیستم اجرا کرده و کل خروجی را نمایش می دهد.
روش اول: استفاده از علامت `
برای اجرای دستورات سیستم با این روش کافی است دستور سیستم را بین دو علامت ` قرار داده و در صورت نیاز خروجی آن در یک متغیر ذخیره و یا خروجی آن را با echo نمابش دهید.
مثال:
PHP Code:
$result = `dir c:\php`;
Echo $result;
روش دوم: استفاده از تابع system:
در این روش دستور اجرا شده و خروجی آن نمایش داده می شود و آخرین خط خروجی برگردانده می شود، مثال:
PHP Code:
$result = system("ir c:\php";
با این دستور، خروجی نمایش داده می شود، حال اگر آن را echo کنید خروجی دیگری به صورت زیر خواهید دید:
كد:
11 Dir(s) 566,263,808 bytes free
روش سوم: استفاده از تابع exec:
در این روش دستور اجرا می شود ولی خروجی آن نمایش داده نمی شود. خروجی به صورت خط به خط درون یک آرایه ذخیره می شود و برگردانده می شود. برای ذخیره ی آرایه باید آرگومان دوم را نیز مشخص کنید.
مثال:
PHP Code:
$result = exec("ir c:\php");
دستور اجرا می شود ولی اگر آن را echo کنید تنها خط آخر آرایه نمایش داده می شود:
كد:
11 Dir(s) 566,263,808 bytes free
برای مشاهده ی کلیه ی خطوط آرایه می توانید از foreach استفاده کنید، اما قبل از آن باید خروجی exec را در یک متغیر ذخیره کنید و برای این کار نام متغیر را به عنوان آرگومان دوم تابع بنویسید:
PHP Code:
$result = exec("dir c:\php",$dirout);
دستور فوق خط آخر آرایه را در result ذخیره می کند. کل خروجی را به صورت یک آرایه در dirout ذخیره می کند. دستور را اجرا می کند ولی خروجی را نشان نمی دهد.برای مشاهده ی کلیه ی خطوط خروجی به صورت زیر عمل می شود:
PHP Code:
foreach($dirout as $line)
{
echo "$line\n";
}
روش چهارم: استفاده ازتابع passthru:
با این تابع، دستور اجرا شده و کل خروجی نشان داده می شود. مثال:
PHP Code:
passthru("dir c:\php");
__________________
1. علامت `: PHP دستور بین دو علامت ` را روی سیستم اجرا کرده و کل خروجی را نمایش می دهد.
2. تابع system: این تابع دستور سیستم را اجرا کرده و کل خروجی را نمایش می دهد، همچنین آخرین خط خروجی را نیز بر می گرداند.
3. تابع exec: این تابع دستور را روی سیستم اجرا می کند و کل خروجی را در یک آرایه قرار می دهد و آخرین خط خروجی را برمی گرداند.
4. تابع passthru: این تابع دستور را روی سیستم اجرا کرده و کل خروجی را نمایش می دهد.
روش اول: استفاده از علامت `
برای اجرای دستورات سیستم با این روش کافی است دستور سیستم را بین دو علامت ` قرار داده و در صورت نیاز خروجی آن در یک متغیر ذخیره و یا خروجی آن را با echo نمابش دهید.
مثال:
PHP Code:
$result = `dir c:\php`;
Echo $result;
روش دوم: استفاده از تابع system:
در این روش دستور اجرا شده و خروجی آن نمایش داده می شود و آخرین خط خروجی برگردانده می شود، مثال:
PHP Code:
$result = system("ir c:\php";
با این دستور، خروجی نمایش داده می شود، حال اگر آن را echo کنید خروجی دیگری به صورت زیر خواهید دید:
كد:
11 Dir(s) 566,263,808 bytes free
روش سوم: استفاده از تابع exec:
در این روش دستور اجرا می شود ولی خروجی آن نمایش داده نمی شود. خروجی به صورت خط به خط درون یک آرایه ذخیره می شود و برگردانده می شود. برای ذخیره ی آرایه باید آرگومان دوم را نیز مشخص کنید.
مثال:
PHP Code:
$result = exec("ir c:\php");
دستور اجرا می شود ولی اگر آن را echo کنید تنها خط آخر آرایه نمایش داده می شود:
كد:
11 Dir(s) 566,263,808 bytes free
برای مشاهده ی کلیه ی خطوط آرایه می توانید از foreach استفاده کنید، اما قبل از آن باید خروجی exec را در یک متغیر ذخیره کنید و برای این کار نام متغیر را به عنوان آرگومان دوم تابع بنویسید:
PHP Code:
$result = exec("dir c:\php",$dirout);
دستور فوق خط آخر آرایه را در result ذخیره می کند. کل خروجی را به صورت یک آرایه در dirout ذخیره می کند. دستور را اجرا می کند ولی خروجی را نشان نمی دهد.برای مشاهده ی کلیه ی خطوط خروجی به صورت زیر عمل می شود:
PHP Code:
foreach($dirout as $line)
{
echo "$line\n";
}
روش چهارم: استفاده ازتابع passthru:
با این تابع، دستور اجرا شده و کل خروجی نشان داده می شود. مثال:
PHP Code:
passthru("dir c:\php");
__________________