PDA

View Full Version : PHP و ارسال یک متغیر به فایل EXE



p30tec
شنبه 09 مرداد 1389, 08:25 صبح
سلام
من یک فایل EXE دارم که نمیدونم با چه زبان برنامه نویسی ساخته شده و مهم هم نیست
فایل در این آدرس قرار دارد
C:\file.exe
و برای ورود متغیر باید این آدرس را در آدرس بار وارد کرد
C:\file var
اسم این روش ارسال متغییر رو یادم نمیاد تا منظورم رو بهتر بگم

حالا میخوام بدونم چطورم یشه با PHP این آدرس رو باز کرد و عمل خاصی توسط فایل EXE انجام بشه؟
من این دستورات رو امتحان کردم ولی خطا میدادند



fopen('c:\file var');
fopen('c:\file.exe var');
file_get_contents('c:\file var');
file_get_contents('c:\file.exe var');

LORD AELX
شنبه 09 مرداد 1389, 09:18 صبح
تا جایی که یادم میاد فرستادن آرگومان به این فایل های اجرایی مثل اجرای فایل های Perl یا ... هست، بنابراین شما از طریق کنسول می توانستید این مقادیر را به صورت سوئیچ و یا آرگومان در کنار نام فایل اجرایی اضافه کنید. در اینصورت در فایل PHP تنها کافیست یک دستور سیستم عامل را اجرا کنید:

راه اول:


echo `file.exe 1000 -t 5`;


توجه داشته باشید که کاراکتر استفاده شده برای در برگرفتن دستورات Command Line، کاراکتر backtick یعنی ( ` ) است نه Single Quotation یا ( ' ). :چشمک:

راه دوم:


echo shell_exec('file.exe 1000 -t 5');


ولی اینجا دیگه همون Single Quotation بکار رفته! :لبخندساده:

موفق باشید :قلب:

p30tec
شنبه 09 مرداد 1389, 10:04 صبح
در رابطه با قسمت 1000 -t 5 توضیح میدید؟

p30tec
شنبه 09 مرداد 1389, 11:01 صبح
خیلی ممنونم
مشکلم کاملا حل شد

LORD AELX
شنبه 09 مرداد 1389, 11:27 صبح
در رابطه با قسمت 1000 -t 5 توضیح میدید؟

خوشحالم که مشکلتون حل شد، و اما در مورد این مقادیر ارسالی باید بگم که فایل های اجرایی حالا Perl یا EXE زبان های دیگه، دو نوع ورودی می پذیرند. بصورت آرگومان و بصورت سوئیچ (Switch). البته تفاوت این دو نوع تو ترتیب ورود و فرمت نوشتن شون هست. من این مثال رو زدم تا هر دو نوعش رو دیده باشید. در کل اگر ورودی برنامه بصورت آرگومان تعریف شده باشد (توسط برنامه نویس) این مقادیر باید بصورت ترتیب اتخاذ شده، وارد شوند، مثلا اگر برنامه نویس اینطور تعریف کرده باشد که برنامه اول نام را بگیرد و سپس تاریخ تولد را، ورودی در Command Line بدین شکل خواهد بود:


# file.exe Name Birthdayولی در مورد سوئیچ ها قضیه کمی تفاوت دارد، اول اینکه هر مقدار ورودی توسط این روش حتما باید پس از نوشتن سوئیچ مربوطه (یک علامت hyphen یا (-) بعلاوه نام تک حرفی سوئیچ) نوشته شود. و دوم اینکه ترتیب نوشتن سوئیچ ها تفاوت ندارد، مثلا برای همان مثال بالا داریم:


# file.exe -n Name -b Birthdayموفق باشید :قلب:

srahimii
سه شنبه 14 شهریور 1391, 12:32 عصر
من یه مشکل تو همین زمینه دارم. میخوام یه متغیر رو به یه فایل اجرایی بفرستم و از اون یه خروجی بگیرم و این خروجی به صورت یک آرایه باشه. چون برنامم تو حالت local اجرا میشه مهم نیست که تابعی که ازش استفاده می کنم امنیت سیستم رو پایین میاره یا نه. هر تابعی بود فقط جواب کار منو بده