Category Archives: PHP

ارسال ایمیل از پی اچ پی با استفاده از جیمیل

در این پست با استفاده از فریمورک f3 یا همان ( FatFree ) می خواهیم با کمک سرویس جیمیل از طریق php ایمیل ارسال کنیم

از تابع زیر برای مقدادهی smtp استفاده میکنیم :

 $smtp = new SMTP ( 'smtp.gmail.com',465,"ssl",$gmail_username,$password );

به جای $gmail_username آدرس ایمیل خود و به جای $password رمز عبور حساب خود را بنویسید اما قبل از ادامه کار باید به چند نکته توجه کنید شما در حالت عادی نمتوانید از طریق سرور از gmail استفاده کنید ابتدا باید تایید دو مرحله ای را روی اکانت ایمیل خود فعال کنید بعد وارد تنظیمات جیمیل خود شوید و از تب pop/imap گزینه ‘فعال کردن IMAP’ رو فعال کنید و تنظیمات رو ذخیره کنید

حالا لینک زیر را باز میکنیم

https://myaccount.google.com/security?utm_source=OGB&utm_medium=app

در صفحه ای که برای شما باز می شود روی گزینه app password کلیک کنید بعد از وارد کردن دوباره رمز عبور وارد صفحه مورد نظر میشویم در این صفحه باید select app را روی  Mail و select device را روی other قرار دهید پس از انجام این تنظیمان گوگل یک رمز عبور به شما می دهد از این روز عبور باید برای ارسال ایمیل از روی سرور خود استفاده کنید و ان را به جای $password بنویسید.

کد کامل ارسال ایمیل به این صورت نوشته میشه :

$smtp = new SMTP ( 'smtp.gmail.com',465,"ssl",'[email protected]','cjaqrgnpygsfwfqx' );
 
 try{
 //echo $smtp->set('Errors-to', '<[email protected]>');
 $smtp->set('From', '"name" <[email protected]>');
 $smtp->set('To', '"Contact Name" <[email protected]>');
 $smtp->set('Subject', 'test for send email Nitrocode.ir');
 
 $send_result=$smtp->send ($text,true );
 
if($send_result==true){
echo 'successful send email';
}
 else{
echo 'can not send email'
}
 }catch (Exception $e){
 echo $e;
echo $smtp->log();
 }

برای مشاهده پروژه ها و نمونه کارهای ما اینجا کلیک کنید


تنظیمات سرور : اگر در سرور شما دسترسی ارسال ایمیل فعال نباشد با پیام Permission denied مواجه میشیم برای رفع این مشکل باید کد زیر را از طریق ssh وارد کنیم

setsebool -p httpd_can_networck_connect 1
setsebool -p httpd_can_sendmail 1

معرفی فایل منیجر تحت وب نیترو

Free and simple and lightweight File Managar For Server or Website

NitroFM یک برنامه مدیریت فایل تحت ساده سبک و رایگان است که به سادگی میتوان آن را روی سرور و هاست نصب کرد کار کردن با این فایل منیجر  و نصب آن بسیار ساده است .

برای ساخت این فایل منیجر از فریمورک fat-free استفاده شده که یک فریمورک جدید و پرسرعت در عین حال کم حجم است می توانید این فایل منیجر را در لینک زیر مشاهده و دانلود کنید

https://github.com/parsgit/NitroFM

بعد از دانلود پروژه و قرار دادن ان در فولدری روی سرور باید ابتدا یک دیتابیس برای آن بسازید و به صورت زیر میتوانید وارد صفحه نصب آن شوید

http://yourSiteName.com/nitrofm/install

در اینجا برای مثال پروژه درون فولدری با نام nitrofm قرار دارد  بعد از مشاهده صفحه نصب می توانید اطلاعات دیتابیس را وارد کنید در مرحله بعد هم یک اکانت میسازید و نصب تکمیل میشود حال می توانید با وارد کردن اطلاعات اکانتی که ساختید وارد فایل منیجر شوید


آموزش نصب دیتابیس ماریا

MariaDB یک دیتابیس همانند mysql است و شما میتوانید بجای نصب mysql روی سرور خودتون از دیتابیس MariaDB استفاده کنید . هدف MariaDB ارایه اپدیت های بیشتر و دقیق تر و تضمین بر رایگان بودن همیشگی این دیتابیس است چون گفته میشه که اوراکل بروزرسانی های mysql رو بسیار دیر منتشر میکنه و یا ممکنه mysql رو به نسخه تجاری و غیر رایگان تغییر بده و … .

در این پست apache و php نسخه 7 و MariaDB و phpMyAdmin رو نصب میکنیم (LAMP)

این اموزش برای سیستم عامل ابونتو هست

یادآموری : در سیستم عامل ابونتو هرجا که عملیاتی در حال اجرا بود و میخواستید عملیاتی رو لغو کنید کافه دکمه ctrl + c  ویا ctrl + z رو بزنید

برای نصب اپاچی کد های زیر رو در ترمینال وارد می کنیم :

sudo apt-get update
sudo apt-get install apache2
sudo a2enmod rewrite
sudo service apache2 restart

برای افزودن قابلیت ssl کد های زیر رو در ترمینال وارد میکنیم :

sudo a2enmod ssl 
sudo a2ensite default-ssl.conf
sudo systemctl restart apache2.service
sudo netstat -tlpn
sudo systemctl enable apache2

به وسیله کد sudo netstat -tlpn میتونیم برسی کنیم که پورت 443 فعال شده است یا نه حالا اگر ip سرور رو وارد کنید می توانید صفحه خوش آمدگویی اپاچی را مشاهده کنید

برای نصب php هم از این کد ها استفاده میکنیم :

sudo apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-xml php7.0-gd

برای نصب MariaDB :

sudo apt install php7.0-mysql mariadb-server mariadb-client

حالا برای کانفیگ MariaDB و مثلا تغییر رمز root و … از این کد استفاده میکنیم

sudo mysql_secure_installation

به سوالاتی که در طول مراحل کانفیگ پرسیده میشه جواب Yes بدهید

برای فعال سازی سرویس دیتابییس هم به این صورت عمل میکنیم

sudo systemctl restart mysql.service 
// یا کد زیر
sudo service mariadb restart

و برای نصب phpMyAdmin :

sudo apt install php-gettext phpmyadmin

در هنگام نصب سوالاتی را از شما میپرسه که جواب میدید و نصب تکمیل میشه اگر نیاز داشتید phpMyAdmin را دوباره کانفیگ کنید از کد زیر استفاده کنید

sudo dpkg-reconfigure phpmyadmin

خب کار تمام است و سرور ما امادست

اگر mariadb اجرا نمیشد و موقع فعال سازی آن ارور execute time out داد کد زیر را وارد میکنیم

ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/

سایت MariaDB , منابع بیشتر


برای استفاده از ربات مدیریت گروه روی لینک زیر کلیک کنید

@MainGroupBot

مشاهده راهنما


معرفی ویرایشگر کد php

یک محیط کد نویسی مناسب یا همون IDE می تونه در نوشتن یک برنامه بسیار تاثیر گذار باشه برای مثال شما می تونید کد های php خودتون رو توی نوت پد هم بنویسید ولی خب کار مشکلیه و برسی کد ها و همین طور نوشتن کد رو برای شما سخت میکنه

کد ادیتور های زیادی برای php وجود داره اما میخوایم 2 تا برنامه معرفی کنیم که هم کاملا رایگان هستند و تقریبا همه ویژگی های یه IDE خوب رو دارن و از همه مهمتر روی تمامی سیستم عامل ها قابل دسترس هستند

eclips

eclips یک IDE کامل است شما به وسیله آن می توانید برنامه های جاوا php و یا حتی اپلیکیشن اندروید بسازید ( البته برای برنامه نویسی اندروید بهتره از اندروید استادیو اسفاده کنید )

لینک برنامه : دانلود اکلیپس

اکلیپس نسخه های مختلفی داره که با توجه به نیاز خودتون می تونید یکی رو دانلود کنید برای برنامه نویسی php بهتره نسخه PDT رو دانلود کنید اما اگر نسخه های دیگه اون رو دانلود کردید و دید که قابلیت ایجاد پروژه php رو نداره میتونید زبان php رو به این صورت اضافه کنید:

از منوی Help گزینه Installation New Software رو انتخاب کنید و در قسمت Work with ادرس Neon – http://download.eclipse.org/releases/neon رو انتخاب کنید صبر کنید تا برنامه اطلاعات رو در کادر پایین اون نشون بده بعد توی قسمت Type filter text عبارت PDT رو بنویسید به سری پلاگین بهتون نشون میده گزینه های توی بخش Language رو تیک بزنید اسمایی شبه به این دارن : PDT Develop Tools

و بعد هم نصبشون کنید بعد از نصب اکلیپس رو یکبار ببندید و دوباره اجرا کنید حالا اگر new project می تونید گزینه php رو ببینید خب بعد از ساخت اولین پروژه php از قسمت Project Explorer روی فولدر پروژتون راست کلیک کنید و از منوی Configure گزینه Convert To php رو انتخاب کنید و کار تمومه حالا می تونید از برنامه نویسی php لذت ببرید

Visual Studio Code

برنامه بعدی برای کد نویسی ویژال استادیو کد نام داره که توسط ماکروسافت ساخته شده و رایگان و اپن سورسه و برای هر سه پلتفرم ویندوز لینوکس و مک قابل دریافته

ویژال استادیو کد برنامه ای کم حجم و سبک و تقریبا سادست شاید به اندازه اکلیپس قوی نباشه اما ویرایشگر خوب و کار رابندازیه 🙂

لینک : دانلود ویژال استادیو کد

بعد از نصب و اجرا از منو سمت چپ گزینه Extensions را انتخاب کنید و در کادر search عبارت PHP Extension Pack رو بنویسید و نصبش کنید یک بار برنامه رو ببندید و دوباره اجرا کنید حالا برنامه برای کد نویسی php اماده شده


توابع مهم و کاربردی php قسمت اول

در این پست یک سری از توابع مهم و پرکاربرد php را قرار دادیم

این تابع بیشتر به درد پارسی زبان ها می خوره با قرار دادن یکی از کد های کلمات فارسی به شکل صحیح خودشون نشان داده می شوند و متن ها را به صورت utf-8 نمایش می دهد

header('Content-type: text/plain; charset=utf-8');

// برای زمانی که متن خروجی شما با ساختار جیسون باشد می توانید از این کد استفاده کنید
header('Content-Type: application/json ; charset=utf-8 ');

 

برای تبدیل ارایه به رشته جیسون

echo json_encode($myArray,JSON_UNESCAPED_UNICODE);

چند مثال ساده:

$myArray['site']='Nitro Code';
$myArray['name']='Benyamin';
//خروجی \/
{"site":"Nitro Code","name":"Benyamin"}
//--------------------------------------
$myArray[]="blue";
$myArray[]="red";
$myArray[]="white";
// خروجی
{"blue","red","white"}

این تابع یک ورودی دریافت می کند و اگر ورودی ما تماما از عدد تشکیل شده باشد مقدار true و در غیر این صورت false را بر می گرداند

$bool=is_numeric($value);

تعدادی متد های با کاربرد های مشابه هم وجود دارند برای مثال اگر می خواهید برسی کنید که مقدار درون یک متغییر رشته است یا نه از متد is_string استفاده می کنیم

if( is_string($name) )

 

با استفاده از کد زیر می توانیم زمان را با توجه به منطقه زمانی ایران دریافت کنیم. در خط اول زمان روی منطقه زمانی ایران تنظیم می شود و در خط دوم اقدام به دریافت تاریخ و زمان می کنیم. توجه کنید که تاریخ به میلادی هست برای این که تاریخ را به صورت میلادی دریافت کنید می توانید از کتابخانه های تبدیل تاریخ استفاده کنید

date_default_timezone_set("Asia/Tehran");
$date_time =  date('Y/m/d H:i:s');

 

برای بدست آورد تعداد عناصر ارایه می توانید از تابع count استفاده کنید

echo count([1,2,3,4,7,9]); // output = 6

برای مقایسه دو رشته با هم از strcasecmp($str1,$str2 ) استفاده می کنیم این تابع بین حروف کوچک و بزرگ حساس نیست

اماتابع Strcmp($str1,$str2) مقایسه را انجام می دهد و نسبت به حروف کوچک و بزرگ حساس است اگر دو رشته کاملا با هم برابر باشند مقدار 0 را بر می گرداند اگر با هم برابر نباشند مقدار -1

مثال :

if( strcasecmp($str1 ,$str2)===0){
  // دو رشته باهم برابر هستند
}

 


معرفی و مقایسه فریم ورک های php

فریم ورک ها ابزاری هستند که ب کمک آن ها می توان برنامه خود را سریع تر توسعه داد از جمله مزایای دیگر استفاده از فریم ورک افزایش امنیت و مسیر دهی و استفاده از ساختار های مانند MVC را برای شما فراهم می کند.

البته استفاده از فریم ورک مشگلاتی راهم بهمراه دارد که در ادامه آن ها را برسی خواهیم کرد. یکی از مشکلات استفاده از framework کاهش سرعت و افزایش میزان استفاده از رم و پردازنده سرور است. در نتیجه باید فریم ورکی را برای پروژه های خود انتخاب کنید که از منابع کمتری استفاده کند و سرعت پاسخ دهی آن بیشتر باشد.

در جدول پایین تعدادی از فریم ورک های php به همراه یک سری اطلاعات آن ها را مشاهده می کنید

framework میزان استفاده از رم وابستگی ها درخواست در ثانیه
phalcon-2.0 0.27 1.0 1,746
fatfree-3.5 0.42 1.6 1106
lumen-5.1 0.95 3.7 412
laravel-5.1 2.76 10.7 91

منبع اطلاعات جدول: https://github.com/kenjis/php-framework-benchmark/

laravel : طبق این بنچ مارک فریم ورک لاراول تنها 91 درخواست در 1 ثانیه را جواب داده و همین طور که مشاهده می کنید مصرف رم ان از بقیه فریم ورک ها بیشتر است البته کار با لاراول بسیار ساده است و شاید یکی از دلایل محبوبیت این فریم ورک در میان برنامه نویسان باشه.

lumen : درواقع یک میکرو فریم ورک است که در زیر مجموعه ی لاراول قرار می گیرد این میکرو فریم ورک بیشتر برای ساخت API مناسب است سرعت آن از لاراول بیشتر و میزان رم مصرفی آن کم تر است

fatfree : با توجه به جدول بالا این فریم ورک سرعت بسیار بالاتر و مصرف رم کم تری دارد و در 1 ثانیه به 1106 درخواست پاسخ داده است به اختصار به این فریم ورک f3 هم می گویند. حجم بسیار کمی دارد.

phalcon : این فریم ورک را به عنوان سریع ترین فریم ورک php می شناسند دلیل سرعت بالای آن استفاده این فریم ورک از کتابخوانه های زبان c است اما بنظر میرسد که پیاده سازی آن کمی مشکل است و شاید در هاست های اشتراکی نتوان از آن استفاده کرد

کدام فریم ورک را برای شروع انتخاب کنیم؟ با برسی ها و مقایسه های انجام شده پیشنهاد ما استفاده از فریم ورک fatfree است چون سرعت بالایی دارد و پیاده سازی آسانی دارد اما استفاده از آن کمی از لاراول سخت تر است پس اگر تنبل هستید لاراول انتخاب خوبی برای شماست 🙂 البته لاراول فریم ورک کامل و قدرتمندی است.


جستجوی هوشمند