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

۶ مطلب با موضوع «PHP :: Trick» ثبت شده است

شنبه, ۲۳ مرداد ۱۳۹۵، ۱۰:۲۳ ب.ظ محمد ایرانی
ریجکس بررسی فارسی بودن رشته

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

ریجکس زیر فقط کاراکتر های فارسی رو قبول میکنه:

/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ\s]+$/u

و این ریجکس فقط کاراکتر های فارسی و انگلیسی رو قبول میکنه:

/^[پچجحخهعغآ؟.،آفقثصضشسیبلاتنمکگوئدذرزطظژ!!ؤإأءًٌٍَُِّ a-zA-Z\s]+$/u
۲۳ مرداد ۹۵ ، ۲۲:۲۳ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

چرا از Composer استفاده کنم؟

مزیت استفاده از Composer موقعی نمایان می شود که وب اپ شما وابسته به پکیج ها (کتابخانه ها) ی متفاوتی است که احتمال زیاد هر کدام از آن پکیج ها وابسته به پکیج های دیگری هستند. در این حالت اگر خودتان بخواهید آن ها را بگیرید - و از آنجایی که ممکن است نسخه ی خاصی هم از یک پکیج مورد نیاز باشد - دردسر شما برای دانلود و قرار دادن هر پکیج داخل وب اپتان کم نیست. اینجا Composer کار شما را راحت می کند. علاوه بر دانلود پکیج ها، به صورت خودکار نیز آن ها را در پروژه ی تان بارگذاری می کند (autoload) یعنی هر موقع که نیاز به کلاسی داشته باشید مثل قبل از آن استفاده می کنید و Composer در صورت
 نبود کلاس در نیم اسپیس فعلی، آن را برای شما include می کند. برای همین Composer در دسته بندی مدیریت وابستگی ها یا Dependency manager قرار دارد.

 

همچنین برای همه ی ما استفاده از یک کامند در ترمینال که پکیج ها را نصب کرده و یا به روز رسانی و حذف کند بسیار راحت تر از دردسر های انجام دستی آن هاست.

۰۸ تیر ۹۵ ، ۱۷:۴۴ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

گرفتن آدرس ip واقعی کاربر

هرچند گرفتن آی پی واقعی کاربر همیشه موفقیت آمیز نیست اما میتوان با استفاده از تابع زیر احتمال گرفتن 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 رقم اعشار رو در خروجی نشون بدیم.

۳۰ بهمن ۹۴ ، ۱۸:۵۹ ۰ نظر موافقین ۰ مخالفین ۰
محمد ایرانی

ارسال داده با ajax و jquery

ارسال داده به سمت سرور با ایجکس چندین روش داره که اینجا یکی از اون ها رو بیان میکنیم که میشه به سادگی از طریق اون درخواست های 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

اگر موقع خوندن اطلاعات با pdo کاراکتر ها بصورت ? نمایش داده میشن بعد از این که کانکشن رو ایجاد کردیم از کد زیر استفاده میکنیم:

<?php
$connectionName->exec('SET NAMES utf8');

به همین سادگی smiley

 

البته باید کولیشن (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;
۱۷ دی ۹۴ ، ۱۴:۱۷ ۶ نظر موافقین ۱ مخالفین ۰
محمد ایرانی