کلاس آماده ساخت متن لورم ایپسوم

دی ۱۳, ۱۳۹۲ توسط : سعید

در طراحی سایت و گرافیک برای کامل نمایش دادن خروجی نیاز به متن داریم. حالا هنگامی که یک سایت طراحی میکنیم برای اینکه به مشتری یک پیش نمایش نشون بدیم مجبوریم سایتش رو با یه سری متن پر کنیم. گاهی این متن رو از سایتهای دیگه کپی میکنیم و گاهی هم قسمتهایی که باید متن قرار بگیره رو خالی میذاریم که سایت رو از شکل میندازه.

برای حل این مشکل متنی آماده شده که بهش میگن ” لورم ایپسوم ” . توضیحات این متن در ویکیپدیا به صورت زیرنوشته شده :

طرح‌نما یا لورم ایپسوم(به انگلیسی: Lorem ipsum) به متنی آزمایشی و بی‌معنی در صنعت چاپ، صفحه‌آرایی و طراحی گرافیک گفته می‌شود. طراح گرافیک از این متن به عنوان عنصری از ترکیب بندی برای پر کردن صفحه و ارایه اولیه شکل ظاهری و کلی طرح سفارش گرفته شده استفاده می نماید، تا از نظر گرافیکی نشانگر چگونگی نوع و اندازه فونت و ظاهر متن باشد.

ادامه مطلب...

عبارات با قاعده یا Regex در PHP

دی ۱۰, ۱۳۹۲ توسط : سعید

سلام دوستان

توی این باهم در موردعبارات باقاعده در php حرف میزنیم. اینکه چی هست ؟ از کجا اومده ؟ و چه کاربردی داره.

Regular Expression در لغت به معنی عبارات با قاعده است. این ابزار برای دستکاری رشته ها کاربرد داره. مثلا میخواین در رشته ای یک رشته دیگه رو پیدا کنید یا با یک رشته دیگه جایگزینش کنید و …

این ابزار در سال ۱۹۵۰ توسط Stephen Kleene ریاضیدان آمریکایی معرفی شد. بعد از اون در سیستم های مختلف به کار گرفته شد.

در نگاه اول به regex شاید به نظرتون ترسناک بیاد و تا به حال هیچ وقت باهاش کار نکرده باشد. اما وقتی که از این ابزار در برنامه نویسی استفاده میکنید میبینید که خیلی جاها به کمک تون میاد و با تمرین زیاد میتونید به regex مسلط شید.…

ادامه مطلب...

کار با دیتابیس اکسس در PHP

آذر ۶, ۱۳۹۲ توسط : سعید

سلام

بعد از یه غیبت طولانی دوباره برگشتم.

توی این پست میخوام در مورد ارتباط با دیتابیس access براتون توضیح بدم و اینکه چطور به وسیله PHP به این دیتابیس متصل شیم.

برای اینکار نیاز داریم که از PDO استفاده کنیم.حتما دقت کنید که درایور ODBC نصب باشه وگرنه نمیتونید اینکار رو انجام بدید.

برای اطمینان از نصب درایور ODBC دستور phpinfo رو اجرا کنید و در قسمت PDO ببینید این دراور نصبه یا خیر :

access_03

اگر این درایور برای شما نصب نیست کافیه که در فایل php.ini خط زیر رو از حالت کامنت خارج کنید :

<code>extension=php_pdo_odbc.dll</code>

مرحله بعد استفاده از PDO برای اتصال به این دیتابیسه.

از کلاس PDO یک شیء میسازیم و رشته اتصال رو به صورت زیر تعیین میکنیم :

$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");

در قسمت $dbName باید مسیر مستقیم فایل اکسس با پسوند mdb رو قرار بدیم.…

ادامه مطلب...

استفاده از دستورات Crud در Php جهت آشنایی بیشتر با دستورات بانک اطلاعاتی

مهر ۲۴, ۱۳۹۲ توسط : Mk_design

این دستورات و کدها شاید واسه یک برنامه نویس که اولین زبان برنامه نویسی او Php باشد ساده باشد , ولی واسه کسی که به تازگی وارد حیطه برنامه نویسی Php شده یا خواهان وارد شدن باشد کدهای ارزشمند و قابل توجهی باشند در این آموزش قصد استفاده از دستورات Crud یعنی Create , Read , Update و Delete را داریم . جهت کار کردن با دستورات بانک اطلاعاتی در Php باید بتوانید به سرور مورد نظر سپس به بانک اطلاعاتی مورد نظر سپس با انتخاب جدول مورد نظر , به اعمال Query میپردازیم .

بازدید : ۶۷۹۱…

ادامه مطلب...

MVC در PHP قسمت چهارم :: View و Controller

شهریور ۲۰, ۱۳۹۲ توسط : سعید

سلام

با آخرین قسمت از قسمتهای MVC در PHP در خدمتتون هستم.در این قسمت به لایه  View و Controller میپردازیم.همینطور که در قسمت اول گفتم لایه View وظیفه نمایش دادن خروجی و گرفتن ورودی هارو از کاربر داره.و لایه Controller به پردازش ورودی و خروجی ها میپردازه .

 

بازدید : ۱۰۳۴۳…

ادامه مطلب...

MVC در PHP قسمت سوم :: Model

شهریور ۱۶, ۱۳۹۲ توسط : سعید

سلام

در این قسمت از سری مقالات MVC در PHP  به لایه Model میپردازیم.همینطور که در قسمت اول اشاره شد لایه Model وظیفه ارتباط با پایگاه داده رو داره. در معماری MVC و کلا سیستم هایی که به صورت شیء گرا نوشته میشن معمولا برای هر کدوم از جدولهای دیتابیس یک کلاس جدا باید داشته باشیم.

این به این خاطره که کار نگهداری و گسترش در آینده به راحتی انجام بشه .حالا ما هم در این فریم ورک از این روش استفاده میکنیم.

لایه Model ( در فریم ورک ما ) برای ارتباط با دیتابیس باید قابلیت های زیر رو داشته باشه :

برای داشتن یک فریم ورک خوب و کاربردی باید یک سری پیش نیازها رو قبل از پیاده سازی لایه Model انجام بدیم.پس قبل از پیاده سازی لایه مدل ما به کلاس های زیرنیاز داریم :

کلاس Config برای نگهداری تنظیمات

کلاس SqlQuery برای ارتباط با پایگاه داده و اجرای عملیات رو جدول مورد نظر

خوب با هم اولین قسمت رو که نوشتن کلاس Config هست انجام میدیم

این کلاس وظیفه نگهداری تنظیمات کلی فریم ورک رو بر عهده داره.برای اینکه تنظیمات رو یه جایی نگهداری کنیم راههای مختلفی وجود داره.میتونه این تنظیمات به صورت یک کلاس باشه یا میتونه در یک فایل با پسوند ini ذخیره بشه.…

ادامه مطلب...

MVC در PHP قسمت دوم :: Router

شهریور ۱۴, ۱۳۹۲ توسط : سعید

سلام

در پست قبلی درمورد معماری MVC و مزایای اون باهم صحبت کردیم.در این پست و چند پست آینده سعی میکنیم باهم یک فریم ورک سه لایه با معماری MVC بسازیم.برای اینکه بتونید با این آموزشها پیش برید باید با مباحث شیء گرایی در PHP آَشنایی داشته باشید.

شروع کار

یکی از مهمترین قسمتهای پیاده سازی MVC در وب مسیریابی یا Routing میباشد.این یعنی اینکه با استفاده از درخواستی که کاربر داره بتونیم کنترلر ، مدل و ویو مورد نظر رو لود و اجرا کنیم.

درخواست کاربر به وسیله URL ارسال میشه.به عنوان مثال اگر کاربر روی لینک زیر کلیک کنه :

www.domail.com/article/view/2-mvc-in-php

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

article نام کنترلر

view نام اکشن یا متدی که در کنترلر article قرار داره

و قسمت بعدی پارامترهایی که به متد view ارسال میشه رو مشخص میکنه.…

ادامه مطلب...

MVC در PHP قسمت اول :: معرفی

شهریور ۱۳, ۱۳۹۲ توسط : سعید

سلام

امیدوارم که حالتون خوب باشه . از اینکه در آپدیت سایت تاخیر داریم عذرخواهی میکنم.بعد از این چند وقت به پیشنهاد یکی از دوستان تصمیم گرفتم در مورد MVC در php توضیح بدم.MVC موضوعیه که دو سه سالی توی ایران رونق بیشتری گرفته و به یکی از بحث های اول کاربران تبدیل شده.

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

برای اینکه این سری از مقالات رو دنبال کنید بهتره که شیء گرایی رو در PHP مسلط باشید و یا حداقل با مفاهیم شیء گرایی آشنایی داشته باشید .

MVC چیست ؟

اولین سوالی که پیش میاد اینه که MVC چیه و چه کاربردی داره؟

MVC یک معماری سه لایه است که در سال ۱۹۷۰ ایجاد شد.این معماری ابتدا برای زبان smalltalk ایجاد شد.…

ادامه مطلب...

شروعی به نام HTML5

شهریور ۱۰, ۱۳۹۲ توسط : سیدمهدی شاه امیریان

سلام

به لطف حضور HTML5 & CSS3 امروزه بهتر از هر زمان دیگری می توان سایتی کارآمد، سبک و انعطاف پذیر طراحی کرد.

در ادامه و پست های آینده در رابطه با این دو تکنولوژی وب بیشتر صحبت خواهیم کرد.

بطور مختصر ساختار یک صفحه HTML5 بصورت زیر است

<!doctype html>
<html lang="fa">
<meta charset="utf-8" />
<title>عنوان صفحه</title>
<meta name="description" content="شروعی به نام HTML5" />
<meta name="keywords" content="HTML5, CSS3" />
<meta name="author" content="Phpro.ir" />
<link href="”css/style.css?v=1.0" rel="”stylesheet”" />
</head>
<body>
تگ ها و محتوای صفحه
</body>
</html>

همونطور که در سطر اول می بینید، تعریف سند HTML در HTML5 تغییر زیادی داشته و بسیار کوتاه و قابل فهم شده.
در سطر دوم نیز همراه با تگ html زبان صفحه رو مشخص کردیم که فارسی است.…

ادامه مطلب...

Tags

تغییر اندازه تصاویر بوسیله php

مرداد ۵, ۱۳۹۲ توسط : afshin

برای کوچک کردن تصاویر و تبدیل اندازه آن به مقیاس دلخواه راهکارهای زیادی وجود داره ولی در این بخش کلاسی از php را برای شما معرفی می کنم که به راحتی می توان اندازه تصاویر را تغییر داد , خوب بریم سر کد کلاس

    Class resize
    {
    // *** Class variables
    private $image;
    private $width;
    private $height;
    private $imageResized;

    function __construct($fileName)
    {
    // *** Open up the file
    $this->image = $this->openImage($fileName);

    // *** Get width and height
    $this->width = imagesx($this->image);
    $this->height = imagesy($this->image);
    }

    ## --------------------------------------------------------

    private function openImage($file)
    {
    // *** Get extension
    $extension = strtolower(strrchr($file, '.'));

    switch($extension)
    {
    case '.jpg':
    case '.jpeg':
    $img = @imagecreatefromjpeg($file);
    break;
    case '.gif':
    $img = @imagecreatefromgif($file);
    break;
    case '.png':
    $img = @imagecreatefrompng($file);
    break;
    default:
    $img = false;
    break;
    }
    return $img;
    }

    ## --------------------------------------------------------

    public function resizeImage($newWidth, $newHeight, $option="auto")
    {
    // *** Get optimal width and height - based on $option
    $optionArray = $this->getDimensions($newWidth, $newHeight, $option);

    $optimalWidth = $optionArray['optimalWidth'];
    $optimalHeight = $optionArray['optimalHeight'];

    // *** Resample - create image canvas of x, y size
    $this->imageResized = imagecreatetruecolor($optimalWidth, $optimalHeight);
    imagecopyresampled($this->imageResized, $this->image, 0, 0, 0, 0, $optimalWidth, $optimalHeight, $this->width, $this->height);

    // *** if option is 'crop', then crop too
    if ($option == 'crop') {
    $this->crop($optimalWidth, $optimalHeight, $newWidth, $newHeight);
    }
    }

    ## --------------------------------------------------------

    private function getDimensions($newWidth, $newHeight, $option)
    {

    switch ($option)
    {
    case 'exact':
    $optimalWidth = $newWidth;
    $optimalHeight= $newHeight;
    break;
    case 'portrait':
    $optimalWidth = $this->getSizeByFixedHeight($newHeight);
    $optimalHeight= $newHeight;
    break;
    case 'landscape':
    $optimalWidth = $newWidth;
    $optimalHeight= $this->getSizeByFixedWidth($newWidth);
    break;
    case 'auto':
    $optionArray = $this->getSizeByAuto($newWidth, $newHeight);
    $optimalWidth = $optionArray['optimalWidth'];
    $optimalHeight = $optionArray['optimalHeight'];
    break;
    case 'crop':
    $optionArray = $this->getOptimalCrop($newWidth, $newHeight);
    $optimalWidth = $optionArray['optimalWidth'];
    $optimalHeight = $optionArray['optimalHeight'];
    break;
    }
    return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight);
    }

    ## --------------------------------------------------------

    private function getSizeByFixedHeight($newHeight)
    {
    $ratio = $this->width / $this->height;
    $newWidth = $newHeight * $ratio;
    return $newWidth;
    }

    private function getSizeByFixedWidth($newWidth)
    {
    $ratio = $this->height / $this->width;
    $newHeight = $newWidth * $ratio;
    return $newHeight;
    }

    private function getSizeByAuto($newWidth, $newHeight)
    {
    if ($this->height width)
    // *** Image to be resized is wider (landscape)
    {
    $optimalWidth = $newWidth;
    $optimalHeight= $this->getSizeByFixedWidth($newWidth);
    }
    elseif ($this->height > $this->width)
    // *** Image to be resized is taller (portrait)
    {
    $optimalWidth = $this->getSizeByFixedHeight($newHeight);
    $optimalHeight= $newHeight;
    }
    else
    // *** Image to be resizerd is a square
    {
    if ($newHeight getSizeByFixedWidth($newWidth);
    } else if ($newHeight > $newWidth) {
    $optimalWidth = $this->getSizeByFixedHeight($newHeight);
    $optimalHeight= $newHeight;
    } else {
    // *** Sqaure being resized to a square
    $optimalWidth = $newWidth;
    $optimalHeight= $newHeight;
    }
    }

    return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight);
    }

    ## --------------------------------------------------------

    private function getOptimalCrop($newWidth, $newHeight)
    {

    $heightRatio = $this->height / $newHeight;
    $widthRatio = $this->width / $newWidth;

    if ($heightRatio height / $optimalRatio;
    $optimalWidth = $this->width / $optimalRatio;

    return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight);
    }

    ## --------------------------------------------------------

    private function crop($optimalWidth, $optimalHeight, $newWidth, $newHeight)
    {
    // *** Find center - this will be used for the crop
    $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 );
    $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 );

    $crop = $this->imageResized;
    //imagedestroy($this->imageResized);

    // *** Now crop from center to exact requested size
    $this->imageResized = imagecreatetruecolor($newWidth , $newHeight);
    imagecopyresampled($this->imageResized, $crop , 0, 0, $cropStartX, $cropStartY, $newWidth, $newHeight , $newWidth, $newHeight);
    }

    ## --------------------------------------------------------

    public function saveImage($savePath, $imageQuality="100")
    {
    // *** Get extension
    $extension = strrchr($savePath, '.');
    $extension = strtolower($extension);

    switch($extension)
    {
    case '.jpg':
    case '.jpeg':
    if (imagetypes() & IMG_JPG) {
    imagejpeg($this->imageResized, $savePath, $imageQuality);
    }
    break;

    case '.gif':
    if (imagetypes() & IMG_GIF) {
    imagegif($this->imageResized, $savePath);
    }
    break;

    case '.png':
    // *** Scale quality from 0-100 to 0-9
    $scaleQuality = round(($imageQuality/100) * 9);

    // *** Invert quality setting as 0 is best, not 9
    $invertScaleQuality = 9 - $scaleQuality;

    if (imagetypes() & IMG_PNG) {
    imagepng($this->imageResized, $savePath, $invertScaleQuality);
    }
    break;

    // ...

ادامه مطلب...

نوشته های جدیدتر