آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

امین علیپور  7 سال پیش  7 سال پیش
+12 0

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

فانکشن هر زبانی خواستید بزارید .مرسی دوستان

منتظر پیشنهادات و انتقاداتتون هستم

 برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال 
امین علیپور  7 سال پیش
+5 0

تابعی به زبان جی اس برای تبدیل شماره ۱۶ رقمی به شماره کارت

مثال:

1111-2222-3333-4444 <= 1111222233334444 

function cardnumber(Number)
{
Number+= '';
Number= Number.replace('-', ''); Number= Number.replace('-', ''); Number= Number.replace('-', '');
Number= Number.replace('-', ''); Number= Number.replace('-', ''); Number= Number.replace('-', '');
x = Number.split('.');
y = x[0];
z= x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d{4})(\d+)/;
while (rgx.test(y))
y= y.replace(rgx, '$1' + '-' + '$2');
return y+ z;
}
پاسخ به سوال 
امین علیپور  7 سال پیش
+4 0

فانکشنی برای محسابه زمان سپری شده که  برای ورودی فانکشن باید تایم استمپ رو بهش بدیم .مثال:

دو روز پیش

function ago($tm, $lang = 'fa', $ashtml = true) {
$local = array('style' => array('fa' => 'style="direction:rtl;"', 'en' => 'style="direction:ltr"'), 'times' => array('fa' => array('ثانیه', 'دقیقه', 'ساعت', 'روز', 'هفته', 'ماه', 'سال', 'دهه'), 'en' => array('second', 'minute', 'hour', 'day', 'week', 'month', 'year', 'decade')), 'ago' => array('fa' => 'پیش', 'en' => 'ago'));
if (intval($tm) > 0) {
$cur_tm = time();
$dif = $cur_tm - $tm;
$lngh = array(1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600);
for ($v = sizeof($lngh) - 1; ($v >= 0) && (($no = $dif / $lngh[$v]) <= 1); $v--)
; if ($v < 0)
$v = 0; $_tm = $cur_tm - ($dif % $lngh[$v]);
$no = floor($no);
if ($no <> 1 && $lang == 'en')
$local['times'][$lang][$v] .= 's'; $x = sprintf("%d %s ", $no, $local['times'][$lang][$v]);
if ($ashtml)
return " " . $x . ' ' . $local['ago'][$lang] . "";
else
return $x . ' ' . $local['ago'][$lang];
} else {
return '-';
}
}
پاسخ به سوال 
reza piry ghadim  7 سال پیش
+8 0

تاپیک خیلی عالیه . امیدوارم همه دوستان توابع خودشون رو به اشتراک بزارن - فعلا من چند تابعی که خیلی به درد خودم خورده رو میزارم

تابع تشخص ای پی کاربر به صورت صحیح :


function get_client_ip() {
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}

تابع مینیفای کن (minify) کد های اچ تی ام ال به صورت داینامیک (فقط کافیه کد رو قبل از نمایش به این تابع بدی (البته تو قسمت view میشه خیلی راحت از این تابع استفاده کرد ))


function minifyContent($content){

$search = array(
'/\>[^\S ]+/s', // strip whitespaces after tags, except space
'/[^\S ]+\</s', // strip whitespaces before tags, except space
'/(\s)+/s' // shorten multiple whitespace sequences
);

$replace = array(
'>',
'<',
'\\1'
);

$content = preg_replace($search, $replace, $content);
return $content;
}

تابع برسی صحت شماره کارت ملی


function melliCodeChecker($code){
if(!preg_match('/^[0-9]{10}$/',$code))
return false;
for($i=0;$i<10;$i++)
if(preg_match('/^'.$i.'{10}$/',$code))
return false;
for($i=0,$sum=0;$i<9;$i++)
$sum+=((10-$i)*intval(substr($code, $i,1)));
$ret=$sum%11;
$parity=intval(substr($code, 9,1));
if(($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity))
return true;
return false;
}

تابع برسی ایمیل :


function checkEmail($email){
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return false;
}else{
return true;
}
}

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


function checkPhone($phone){
if ( !is_numeric( $phone ) ) {
return false;
}else{
if($phone[0] == 0 && $phone[1] == 9 && strlen($phone)== 11){
return true;
}else if ($phone[0] == '+' && $phone[1] == 9 && $phone[2] == 8 && $phone[3] == 9 && strlen($phone)==13){
return true;
}else if($phone[0] == 9 && $phone[1] == 8 && $phone[2] == 9 && strlen($phone)==12){
return true;
}else{
return false;
}
}

}

تابع تبدیل اعدادفارسی به انگلیسی :

function convert2english($string) {
$persinaDigits1= array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$persinaDigits2= array('٩', '٨', '٧', '٦', '٥', '٤', '٣', '٢', '١', '٠');
$allPersianDigits=array_merge($persinaDigits1, $persinaDigits2);
$replaces = array('0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9');
return str_replace($allPersianDigits, $replaces , $string);
}

تابع تبدیل اعداد انگلیسی به فارسی  :


function convert2persian($string) {
$persinaDigits1= array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$persinaDigits2= array('٩', '٨', '٧', '٦', '٥', '٤', '٣', '٢', '١', '٠');
$allPersianDigits=array_merge($persinaDigits1, $persinaDigits2);
$replaces = array('0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9');
return str_replace($replaces ,$allPersianDigits, $string);
}

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

کم و ضعیف بودن توابع رو من عذر میخوام ، انشالله کم کم بازم اضافه میکنیم .

موفق باشید .

+1 0
توابع عالی بودن مرسی (7 سال پیش)
پاسخ به سوال 
joker  7 سال پیش
+3 0

با تشکر از دوستان بخاطر توابع خوبشون

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

function gregorian_to_jalali ($date,$str)
{
$g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);

$date=explode('-',$date);
$year=$date['0'];
$Month=$date['1'];
$day=$date['2'];
$gy = $year-1600;
$gm = $Month-1;
$gd = $day-1;

$g_day_no = 365*$gy+div($gy+3,4)-div($gy+99,100)+div($gy+399,400);

for ($i=0; $i < $gm; ++$i)
$g_day_no += $g_days_in_month[$i];
if ($gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0)))
/* leap and after Feb */
$g_day_no++;
$g_day_no += $gd;

$j_day_no = $g_day_no-79;

$j_np = div($j_day_no, 12053); /* 12053 = 365*33 + 32/4 */
$j_day_no = $j_day_no % 12053;

$jy = 979+33*$j_np+4*div($j_day_no,1461); /* 1461 = 365*4 + 4/4 */

$j_day_no %= 1461;

if ($j_day_no >= 366) {
$jy += div($j_day_no-1, 365);
$j_day_no = ($j_day_no-1)%365;
}

for ($i = 0; $i < 11 && $j_day_no >= $j_days_in_month[$i]; ++$i)
$j_day_no -= $j_days_in_month[$i];
$jm = $i+1;
$jd = $j_day_no+1;
if($str) return $jy.'/'.$jm.'/'.$jd ;
return array($jy, $jm, $jd);
}

function jalali_to_gregorian($date,$str)
{
$g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);

$date=explode('/',$date);
$jy = (int)($date['0'])-979;
$jm = (int)($date['1'])-1;
$jd = (int)($date['2'])-1;

$j_day_no = 365*$jy + div($jy, 33)*8 + div($jy%33+3, 4);

for ($i=0; $i < $jm; ++$i)
$j_day_no += $j_days_in_month[$i];

$j_day_no += $jd;

$g_day_no = $j_day_no+79;

$gy = 1600 + 400*div($g_day_no, 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
$g_day_no = $g_day_no % 146097;

$leap = true;
if ($g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
{
$g_day_no--;
$gy += 100*div($g_day_no, 36524); /* 36524 = 365*100 + 100/4 - 100/100 */
$g_day_no = $g_day_no % 36524;

if ($g_day_no >= 365)
$g_day_no++;
else
$leap = false;
}

$gy += 4*div($g_day_no, 1461); /* 1461 = 365*4 + 4/4 */
$g_day_no %= 1461;

if ($g_day_no >= 366) {
$leap = false;

$g_day_no--;
$gy += div($g_day_no, 365);
$g_day_no = $g_day_no % 365;
}

for ($i = 0; $g_day_no >= $g_days_in_month[$i] + ($i == 1 && $leap); $i++)
$g_day_no -= $g_days_in_month[$i] + ($i == 1 && $leap);
$gm = $i+1;
$gd = $g_day_no+1;
if($str) return $gy.'/'.$gm.'/'.$gd ;
return array($gy, $gm, $gd);
}
پاسخ به سوال 
امین علیپور  7 سال پیش
+1 0

تایع بررسی کردن reCaptcha google .چک میکنه کاربر تیک کپچا رو زده یا نه

 
function validateReCaptcha($captcha)
{

$secret = 'SECRET';
if (!$captcha) {
return false;
}
$response = json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']), true);
if ($response['success'] == false) {
return false;
} else {
return true;
}
}

تایع تغییر کیفیت عکس

 
function compressImg($source, $destination, $quality)
{
$info = getimagesize($source);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source);
imagejpeg($image, $destination, $quality);
return $destination;
}

تابع دریافت سایز فایل 

function FileSizeConvert($bytes)
{
$bytes = floatval($bytes);
$arBytes = array(
0 => array(
"UNIT" => "TB",
"VALUE" => pow(1024, 4)
),
1 => array(
"UNIT" => "GB",
"VALUE" => pow(1024, 3)
),
2 => array(
"UNIT" => "MB",
"VALUE" => pow(1024, 2)
),
3 => array(
"UNIT" => "KB",
"VALUE" => 1024
),
4 => array(
"UNIT" => "B",
"VALUE" => 1
),
);

foreach ($arBytes as $arItem) {
if ($bytes >= $arItem["VALUE"]) {
$result = $bytes / $arItem["VALUE"];
$result = str_replace(".", ",", strval(round($result, 2))) . " " . $arItem["UNIT"];
break;
}
}
return $result;
}

تابع unset یا حذف کردن کوکی

 
function unset_cookie($key){
unset($_COOKIE[$key]);
setcookie($key, null, -1, '/');
}

 

پاسخ به سوال 
MOJTABA  7 سال پیش
+1 0

تابع گرفتن Mac Address 

function GetMAC(){
ob_start();
system('getmac');
$Content = ob_get_contents();
ob_clean();
return substr($Content, strpos($Content,'\\')-20, 17);
}

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .