ریجکس زیر فقط کاراکتر های فارسی رو قبول میکنه:
/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ\s]+$/u
و این ریجکس فقط کاراکتر های فارسی و انگلیسی رو قبول میکنه:
/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ a-zA-Z\s]+$/u
ریجکس زیر فقط کاراکتر های فارسی رو قبول میکنه:
/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ\s]+$/u
و این ریجکس فقط کاراکتر های فارسی و انگلیسی رو قبول میکنه:
/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ a-zA-Z\s]+$/u
الگوریتم ها و تابع های زیادی برای hash کردن وجود داره و همچنین نکاتی هستن که در زمان Hash کردن باید به اون ها توجه کرد، مثل افزودن salt.
یکی از توابع pssword_hash() هست که کار کردن با اون بسیار آسون هست و همچنین از الگوریتم bcrypt استفاده میکنه که یکی از قوی ترین الگوریتم های موجود هست.
نکته جالب در مورد این تابع اینه که خودش بصورا خودکار salt رو تولید میکنه.
برای مقایسه رشته هش شده با رشته اصلی باید از تابع password_verify() استفاده بشه.
مزیت استفاده از Composer موقعی نمایان می شود که وب اپ شما وابسته به پکیج ها (کتابخانه ها) ی متفاوتی است که احتمال زیاد هر کدام از آن پکیج ها وابسته به پکیج های دیگری هستند. در این حالت اگر خودتان بخواهید آن ها را بگیرید - و از آنجایی که ممکن است نسخه ی خاصی هم از یک پکیج مورد نیاز باشد - دردسر شما برای دانلود و قرار دادن هر پکیج داخل وب اپتان کم نیست. اینجا Composer کار شما را راحت می کند. علاوه بر دانلود پکیج ها، به صورت خودکار نیز آن ها را در پروژه ی تان بارگذاری می کند (autoload) یعنی هر موقع که نیاز به کلاسی داشته باشید مثل قبل از آن استفاده می کنید و Composer در صورت
نبود کلاس در نیم اسپیس فعلی، آن را برای شما include می کند. برای همین Composer در دسته بندی مدیریت وابستگی ها یا Dependency manager قرار دارد.
همچنین برای همه ی ما استفاده از یک کامند در ترمینال که پکیج ها را نصب کرده و یا به روز رسانی و حذف کند بسیار راحت تر از دردسر های انجام دستی آن هاست.
secureimage یک کتابخانه open source برای ساختن کپتچا هست که روش کار با اون بسیار ساده هست.
برای استفاده از این باید افزونه GD روس سرور شما نصب باشه که خوشبختانه این افزونه در اکثر هاست ها فعال هست.
اول باید این کتابخانه رو دانلود کنید و فایل securimage.php رو اینکلود کنید، بعد یک شی از Securimage بسازید.
include_once './securimage/securimage.php'; $securimage = new Securimage();
برای ساختن تصویر باید فایل securimage_show.php در تگ img فراخوانی کنید
<img id="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA">
هرچند گرفتن آی پی واقعی کاربر همیشه موفقیت آمیز نیست اما میتوان با استفاده از تابع زیر احتمال گرفتن IP واقعی کاربر را افزایش داد.
//get user real ip function getUserIP(){ $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = $_SERVER['REMOTE_ADDR']; if(filter_var($client, FILTER_VALIDATE_IP)){ $ip = $client; }elseif(filter_var($forward, FILTER_VALIDATE_IP)){ $ip = $forward; }else{ $ip = $remote; } return $ip; }
برای این که بفهمیم اجرای یک اسکریپت چه مقدار طول کشیده از تابع microtime() استفاده میکنیم.
این تابع فقط مدت اجرای کد php رو میگه و ربطی به مدت زمان لود شدن سایت نداره.
نمونه کد:
<?php $timeStart = microtime(true); $i = 1; while ($i < 30000000){ $i++; } $timeEnd = microtime(true); $time = $timeEnd - $timeStart; echo 'execute in ' . round($time, 3) . ' seconds'; ?>
تابع round() هم برای این که فقط تا 3 رقم اعشار رو در خروجی نشون بدیم.
ارسال داده به سمت سرور با ایجکس چندین روش داره که اینجا یکی از اون ها رو بیان میکنیم که میشه به سادگی از طریق اون درخواست های GET و POST رو به سرور فرستاد.
کد html که قصد داریم محتویات فیلد ها رو سمت سرور بفرستیم
<input type="text" id="name"><br> <input type="text" id="last"><br> <button id="show">SEND</button> <div id="tables"> </div>
یکی از اهداف اصلی فریمورک ها اغلب ساده کردن کار هست، در این پست با چند فریمورک کوچک php آشنا میشید که هر کدوم در زمینه خاصی به کار میاد.
همونطور که از اسمش معلومه فریمورکی برای کار با تصاویر هست، از جمله امکاناتش میشه به تغییر اندازه، برش، تصویر بند انگشتی و watermark اشاره کرد.
از این فریم ورک برای تولید محتوای جعلی(خودکار) استفاده میشه.
برای این که بیشتر متوجه بشید به این کد توجه کنید:
// use the factory to create a Faker\Generator instance $faker = Faker\Factory::create(); // generate data by accessing properties echo $faker->name; // 'Lucy Cechtelar';
اگر موقع خوندن اطلاعات با pdo کاراکتر ها بصورت ? نمایش داده میشن بعد از این که کانکشن رو ایجاد کردیم از کد زیر استفاده میکنیم:
<?php $connectionName->exec('SET NAMES utf8');
به همین سادگی
البته باید کولیشن (collation) جدول utf8 یا utf8mb4 باشه که اگر نبود موتونید از کوئری های زیر استفاده کنید.
برای کل دیتابیس:
ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
برای جدول:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;