ریجکس زیر فقط کاراکتر های فارسی رو قبول میکنه:
/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ\s]+$/u
و این ریجکس فقط کاراکتر های فارسی و انگلیسی رو قبول میکنه:
/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ a-zA-Z\s]+$/u
ریجکس زیر فقط کاراکتر های فارسی رو قبول میکنه:
/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ\s]+$/u
و این ریجکس فقط کاراکتر های فارسی و انگلیسی رو قبول میکنه:
/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ a-zA-Z\s]+$/u
مزیت استفاده از Composer موقعی نمایان می شود که وب اپ شما وابسته به پکیج ها (کتابخانه ها) ی متفاوتی است که احتمال زیاد هر کدام از آن پکیج ها وابسته به پکیج های دیگری هستند. در این حالت اگر خودتان بخواهید آن ها را بگیرید - و از آنجایی که ممکن است نسخه ی خاصی هم از یک پکیج مورد نیاز باشد - دردسر شما برای دانلود و قرار دادن هر پکیج داخل وب اپتان کم نیست. اینجا Composer کار شما را راحت می کند. علاوه بر دانلود پکیج ها، به صورت خودکار نیز آن ها را در پروژه ی تان بارگذاری می کند (autoload) یعنی هر موقع که نیاز به کلاسی داشته باشید مثل قبل از آن استفاده می کنید و Composer در صورت
نبود کلاس در نیم اسپیس فعلی، آن را برای شما include می کند. برای همین Composer در دسته بندی مدیریت وابستگی ها یا Dependency manager قرار دارد.
همچنین برای همه ی ما استفاده از یک کامند در ترمینال که پکیج ها را نصب کرده و یا به روز رسانی و حذف کند بسیار راحت تر از دردسر های انجام دستی آن هاست.
هرچند گرفتن آی پی واقعی کاربر همیشه موفقیت آمیز نیست اما میتوان با استفاده از تابع زیر احتمال گرفتن 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>
اگر موقع خوندن اطلاعات با 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;