Boplo.ir
rss


جستجو

مطالب همینجوری

 

 

بر و بچ

MyView


دوستشون دارم


بیلبورد

انواع و اقسام سفارشات طراحی و برنامه نویسی سایت پذیرفته میشه. از سایت حمایت از خرگوشهای صورتی گرفته تا سایت قاچاق اعضای بدن!
تماس

 

از بيماران سرطاني حمايت كنيم

A new begining
AHHP presents

 

تبدیل تاریخ مورد نظر به فرمت چند وقت پیش
21 بهمن 1388 ساعت 02:25

یه روش نمایش زمان، مدل چند وقت پیشه که مثلا بجای فلان زمان بنویسیم: 23 روز و 19 ساعت و 45 دقیقه پیش.

تابع زیر همین کار رو می کنه. تاریخ Timestamp میگیره و مدل "چند وقت پیش" تحویل میده. میشه توسط پارامترهاش تعیین کنیم که از سال تا ثانیه چه واحدهایی رو نمایش بده. یعنی مثلا سال و ماه و روز رو فقط نشون بده یا مثلا دقیقه و ثانیه رو نمایش نده و ....

نمونه:

$time = time() - 15*60;
echo getPastTime($time);
خروجی این خواهد بود: 15 دقیقه پیش

/**
 * getPastTime : Get Past Time in String
 * 
 * 
 * Author : AHHP(Amir Hossein Hodjaty Pour) ~ Boplo@Boplo.ir
 * License : GPL
 * Version : 1
 * Created on : 1388/11/20     11:55 pm
 * 
 * @param integer $time Unix Timestamp to parse
 * @param bool $year Set to FALSE to remove Year from output. optional default to TRUE.
 * @param bool $month Set to FALSE to remove Month from output. optional default to TRUE.
 * @param bool $day Set to FALSE to remove Day from output. optional default to TRUE.
 * @param bool $hour Set to FALSE to remove Hour from output. optional default to TRUE.
 * @param bool $minute Set to FALSE to remove Minute from output. optional default to TRUE.
 * @param bool $second Set to TRUE to remove Second from output. optional default to FALSE.
 * @return string Formatted string
 */

function getPastTime($time, $year=true, $month=true, $day=true, $hour=true, $minute=true, $second=false) { }

Download getPastTime.function.zip

برچسب ها: ,,

تابع array_inject
01 بهمن 1388 ساعت 16:10

همونطور که از عنوان مشخصه، یه تابع ساده برای inject یا تزریق مقدار در یک آرایه.

/**
 * Injects input to array
 *
 * @param array $array Original array
 * @param integer $index Index to inject into
 * @param mixed $input Mixed input to be injected
 * @return array New array
*/
function array_inject($array, $index, $input) {
	$start = array_slice($array, 0, $index);
	$inject = is_array($input) ? $input : array($input);
	$end = array_slice($array, $index);
	
	return array_merge($start, $inject, $end);
}

// Example
print_r(array_inject($arr, 2, $arr));
print_r(array_inject($arr, 2, 'an input'));

Download array_inject.function.zip

برچسب ها: ,,

بازگردوندن کاراکترهای ISO-Western به فارسی
18 دى 1388 ساعت 02:11

بازگردوندن کاراکترهای ISO-Western به فارسی یا تبدیل "امیرحسین" به "امیرحسین"

امیرحسین (اینجانب) عضو تیم پشتیبانی فارسی مادایکس به آدرس http://MODxCMS.ir هستم. خیلی وقت پیش یه کرم اینترنتی پخش شد که به محتوای فایلها، کدهای تخریبی اضافه می کرد که دامن این سایت رو گرفت و ما هم اومدیم درستش کنیم زدیم جفت چشماش رو کور کردیم و محتوای کل دیتابیس بصورت Western اینکد (Encode) شد (مثلا به این شکل: "امیرحسین") و دیگه تاریخ پیوست.
تا اینکه چند وقت پیش یکی از اعضای فروم سایت زحمت کشیدند و فایلهای سایت از جمله بخش آموزش رو که قبلا ذخیره کرده بودند رو مرتب کردند، به من دادند تا توی سایت بذارم.

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

از این که بگذریم، من در حین تست این تابع یه روش دیگه برای برگردوندن این کاراکترها پیدا کردم که راستش خیلی ساده تر از این تابع است.
کافیه یه Notepad باز کنیم و این کاراکترها رو توش کپی کنیم بعد از ذخیره، وقتی دوباره این فایل رو باز کنیم، چی میبینیم؟ فارسی!
نظرت چیه؟

Persian sort function

برچسب ها: ,,

Cannot modify header و زهرمار
26 تير 1388 ساعت 00:46

PHP یه بخشی داره به نام HTTP Header که این بخش به بیماری سرطان مبتلاست و متاسفانه درد این سرطانش دامن کاربرها رو میگیره.
جریان از این قراره که هر سند PHP با یک سری Header شروع میشه که شامل اطلاعات اساسی اون سند یا پرونده است از جمله فرمت یا نوع مثل text/html یا image/jpeg یا ....
وقتی کاربر headerی رو تعیین می کنه یا اطلاعاتی رو چاپ می کنه، اطلاعات Header به بافر ارسال میشه و تا به کلاینت یا بازدیدکننده فرستاده شه.
مشکل زمانی بوجود میاد که ما بخوایم بعد از ارسال خروجی به بافر، header جدید تعیین کنیم که در اون صورت با error معروف زیر مواجه میشیم:

Warning: Cannot modify header information - headers already sent by
(output started at /.../sent.php:1) in /.../current.php on line 10

که میگه: داری تو خط 10 فایل current.php یه header ایجاد می کنی در حالیکه فایل sent.php قبلا ایجاد کرده و فرستاده جیگر! منگ
برای حل این مشکل .......

برچسب ها: ,,

گرفتن محتوای فایل include شده
08 خرداد 1388 ساعت 16:19

می دونید که include کردن یه فایل، درست مثل کپی کردن محتویات اون فایله.
این مدل یه مشکل کوچیک داره و اون اینه که این تابع خروجی رو return نمی کنه که بشه توی یک متغیر قرارش داد.

مثلا میخوایم کدهای جاوااسکریپت رو با PHP ایجاد کنیم. تو این حالت یک فایل php میسازیم و کدهای JS رو توش قرار میدیم و بخشهایی که لازمه رو با php تعیین می کنیم.
اگر محتویات این فایل رو مستقیم چاپ کنیم، کدهای php هم مستقیما بصورت text-plain چاپ میشن. اگر این فایل رو include کنیم، همون نقطه از فایل چاپ میشه.

با روش زیر هم کدهایی PHP رو اجرا می کنیم و هم محتویات رو توی یک متغیر میریزیم:

ob_start();
include "js.php";
$jsCodes = ob_get_contents();
ob_end_clean();

به همین زیبایی می تونید یک سری کد JS داینامیک رو از یه فایل جداگانه بگیرید! البته این یک مثال بود. میشه به سادگی فایل جاوااسکریپت رو توسط فایل PHP ایجاد کرد و در صفحه قرار داد.

برچسب ها: ,,

Sorting همیشه فارسی - تابع Persian Sort
29 اردیبهشت 1388 ساعت 03:59

توی برنامه نویسی پیش میاد که بخوایم یه سری اطلاعات فارسی رو براساس الفبای فارسی مرتب کنیم. من می دونستم که PHP با فارسی میونه خوبی نداره ولی نمی دونستم چقدر. فکر می کردم mbstring یا iconv این مشکلات رو حل کردند ولی تازه فهمیدم اشتباه فکر می کردم که PHP با فارسی (یونیکد) میونه خوبی نداره در واقع اصلا میونه ای بینشون نیست که بخواد خوب یا بد باشه!
در PHP6 ظاهرا قراره یه کارایی انجام بدن که تو سرشون بخوره! همین الان خیلی از هاستینگها حاضر نیستند PHP5 نصب کنند، PHP6 برای End-user ایرانی شیرین حواله 10 ساله دیگه است!

اخیرا به یک مبحثی در رابطه با Sort کردن سطرهای MySQL برخوردم. خواستم این مشکل رو با خود MySQL حل کنم، دیدم حدود یک میلیارد حلقه و کوئری MySQL نیاز داره تازه نیاز به تجسم این یک میلیارد عملیات داشت که از ظرفیت ذهن اینجانب خارج می باشد.
دنبال راه حل جدید میگشتم که ذهنم رفت سراغ توابع دقیق Sorting برای الفبای انگلیسی. گفتم اینا تو بلاد کفر به چه راحتی Sort می کنند خوب بیام یه جوری الفبای فارسی رو با الفبای انگلیسی متناظر کنم و ترتیب رو ازش خارج کنم (اگه متوجه شدی، زود بگو چی گفتم؟! چون خودم دقیق نفهمیدم!)

خلاصه، یه تابع به نام psort نوشتم که آرایه میگیره و براساس الفبای فارسی مرتب می کنه. به این صورت که اول اعداد فارسی، بعد حروف فارسی و بعد اعداد و حروف انگلیسی....حسن این تابع به توابع خود PHP اینه که شما می تونید ترتیب الفبا رو هر جور دوست دارید تغییر بدید مثلا همزه رو اول یا آخر الفبا قرار بدید و غیره و ذالک.

array psort($input_arr [, $function="asort"])
Persian sort function
باقی ماجرا....

برچسب ها: ,,,,,

دریافت member-variable از کلاس والد....
10 اردیبهشت 1388 ساعت 01:29

جدیدا متوجه شدم که اگر یک کلاسی، یک کلاس دیگه رو extend کنه، نمی تونه Propertyهای کلاس والد که static نیستند رو مستقیما بگیره. یعنی اینجوری جواب نمیده:

class childClass extends parentClass {
	.....
	$a = parent::memberVariable;
	.....
}

توی اینترنت گشتم چیزی جالبی پیدا نکردم ولی خودم یه روش باحال کشف کردم. برای گرفتن Property کلاس والد میشه یک متد توی کلاس والد ایجاد کرد که بیاد Property رو return کنه. مثل این:

class parentClass {
	.....
	function getProperty($property)
	{
		return $this->$property;
	}
	.....
}

حالا توی کلاس پایین دستی میتونید هر مشخصه ای رو از کلاس والد بگیرید (البته با مقدار کنونی)

class childClass extends parentClass {
	.....
	$a = parent::getProperty("memberVariable");
	// $a equals to parent::memberVariable
	.....
}
دلیل اینکه چنین قابلیتی تعریف نشده کاملا مشخصه. Propertyهای یک کلاس اگر static نباشند، بسته به متدهای کلاس تغییر می کنند و نمیشه با قطعیت مقدار نهایی ازشون گرفت.

برچسب ها: ,

مبدل شمسی تابع date
25 اسفند 1387 ساعت 04:14

چی؟ date؟ .نه، نه، اینجا دنبال قرار ملاقات و اینجور حرکتها نباش اینجا منظور از date، تابع ()date توی زبان PHP هست!

من با مقداری تلاش، تابع ()date رو با همه کاراکترهای فرمتش، بصورت شمسی در آوردم تا بتونید توی اسکریپتهات به زیبایی تابع date رو بر اساس تقویم جلالی استفاده کنی.

کلی توضیح و تفسیر داریم که تو دنباله مطلب بخون و همونجا داونلود کن.

برچسب ها: ,,,,,,

1

 

me امیرحسینم. اسمم رو دوست دارم، خودم رو دوست دارم. ساکن تهرانم. دانشجوی رشته صنایع هستم شغل درست و حسابی ندارم. طراحی وب می کنم ولی همه اش واسه سرگرمی بوده. برنامه نویس PHP هستم. برنامه نویسی و وقت گذرونی با کامپیوتر تنها کاریه که خسته ام نمی کنه.
آدم خیلی سردی هستم، اینو دور و وری هام میگن. ولی به نظر خودم سرد نیستم در واقع گرمای خودم رو کم بروز می دم! آدما رو اغلب دوست دارم غیر از اون مواقعی که اونا من رو نادیده میگیرن!

این سایت رو بعد از کلی اینور اونور دوباره راه انداختم تا هرچی دوست دارم توش بنویسم، چه کسی بخونه چه نخونه.
خلاصه اینجا خونه منه،

به خونه امیرحسین خوش اومدی...

MODx | Template World