امکانات command line در php
php یک زبان برای embed (جاسازی) به فرمت HTML می باشد. در عین حال command line interface نیز دارد و می توان مثل تمامی زبان های دیگر از طریق محیط ترمینال نیز با آن ارتباط برقرار کرد. تمامی برنامه های آن با دستور php اجرا می گردد.
برای اجرای فرمان php باید مسیر اجرایی فایل php را در سیستم عامل به لیست دستورات معرفی کرده باشید (در ویندوز PATH
و در یونیکس .bash_profile
).
SAPI (Server Application Programming Interface) : یک ماژول در ارتباط مستقیم با وب سرویس مثلا Apache Http Server
php command options
برخی دستورات command line در php به شرح زیر می باشد:
نمایش ورژن php :
php -v php --version
نمایش تنظیمات مربوط به php یا همان php.ini در console :
php -i php -i | grep "EXPRESSION"
دستور خط دوم خروجی را به دستور بعدی فرستاده و در دستور بعد در میان خروجی به دنبال EXPRESSION می گردد . به طول مثال دستور php -i | grep "mysql
” یعنی تنظیماتی که مربوط به mysql است را نمایش بده.
نمایش ماژول های فعال در php :
php -m php -m | grep "EXPRESSION"
ماژول های فعال نظیر PDO , pdo_mysql , pdo_sqlite را نمایش می دهد.
نمایش جزئیات تابع php :
php --rf FUNCTION_NAME
نمایش جزئیات یک کلاس php :
php --rc CLASS_NAME
Interactive shell
یک shell برای اجرای کد های php وجود دارد که با اجرای دستور زیر فعال می گردد.
php -a
در زمان این که shell را به اجرا در می آورید متغیر ها و توابع شما در حافظه RAM ذخیره می گردد و تا زمانی که ctrl + c را نزنید و shell را cancel نکنید حافظه آزاد نمی گردد.
Built-in web server
می توانید با کمک دستور زیر یک وب سرویس برای تست کد با کمک php ایجاد کنید :
php -S HOST:PORT
به طور مثال یک سرویس لوکال در پورت 8000 با دستور زیر ایجاد می کنیم :
php -S localhost:8000
اگر در مرورگر آدرس http://localhost:8000 را وارد کنید فایل های داخل مسیر آن اجرا می گردد. با استفاده از پارامتر -t
می توانید مسیر وب سرویس را تغییر دهید.
Input/output streams
I/O یا همان ورودی و خروجی از دستگاه در زمان اجرای دستور php قابل انجام می باشد. دو تعریف مهم :
STDIN : جریان ورودی جاری یا استاندارد (Standard Input Stream).
STDOUT : جریان خروجی استاندارد (Standard Output Stream)
مثلا ما در جریان اجرای یک برنامه php یک سری ورودی برای تحلیل لازم داریم با توجه به تابع مورد نظر از دستگاه استاندارد ورودی (معمولا کیبورد) در console ترمینال می گیریم و پس از آن می توان در خروجی دستگاه (STDOUT) یک stream رو چاپ کنیم.
توابع کار بار ورودی و خروجی ها بدون فرمت (Unformatted Stream)
fread
: برای گرفتن اطلاعات . زمانی که به جای پارامتر اول (resource) که فایل می باشد STDIN را بگذاریم داده های ورودی را می خواند.
fread ( STDIN , int $length )
به اندازه length می خونه و بر می گردونه . در کد ما باید در یک متغیر ذخیره کنیم.
fwrite
: برای نمایش در خروجی . زمانی که به جای پارامتر اول که فایل می باشد STDOUT را بگذاریم.
fwrite ( STDOUT , string $string )
توابع کار بار ورودی و خروجی های فرمت شده (Unformatted Stream)
fscanf
: برای خواندن ورودی از STDIN و ذخیره در متغیر
fscanf ( STDIN , string $format [, mixed &$... ] )
پارامتر دوم فرمت ها و پارامتر سوم به بعد متغیر هایی که فرمت نظیر آن ها در پارامتر دوم تنظیم شده است.
فرمت های معمول :
%d
: اعداد صحیح یا Integer%s
: رشته ها%f
: اعداد اعشاری یا float
fprintf
: برای نوشتن در خروجی با فرمت خاص
fprintf ( STDOUT , string $format [, mixed $... ] )
توابع کار بار فایل با resource برابر با یکی از موارد STDIN , STDOUT را می توان در console استفاده کرد.
مثال نمایش محیط یک مستطیل که برابر با طول و عرض می باشد در محیط command line :
print("Enter Width: \n"); fscanf(STDIN,"%d",$a); print("Enter Height: \n"); fscanf(STDIN,"%d",$b); $area = $a*$b; fprintf(STDOUT,"Area is: %d",$area);
بعد از اجرای فایلی که کد بالا را در خود دارد طول و عرض از کاربر گرفته می شود و در نهایت محیط به او نمایش داده می شود.
سلام
من داخل تگ های html یه تابع از php کال کردم بعد تگ ها و تابع داخل جدول دیتا بیس ذخیره کردم حال که اطلاعات جدول فراخوانی میکنم تابع php برام چاپ نمی کنه! باید چه کار کنم که درست بشه؟؟؟؟