طراحی سایت با اسنیپت های جدید گوگل - دارکوب در بلاگ اسکای

تلفن تهران: 22083926 - 22085386 - 22082258 | آدرس: تهران، سعادت آباد، سرو غربی، کوچه آریا، پلاک 4، واحد 7

طراحی سایت با اسنیپت های جدید گوگل - دارکوب در بلاگ اسکای

تلفن تهران: 22083926 - 22085386 - 22082258 | آدرس: تهران، سعادت آباد، سرو غربی، کوچه آریا، پلاک 4، واحد 7

مقایسه طراحی سایت با PHP یا ASP.NET ,کدام بهتر است؟


طراحی سایت با PHP یا ASP.NET

طراحی سایت با PHP یا ASP.NET

در صورتی که قصد طراحی سایت داشته باشید ممکن است این سوال براس شما به وجود آید که بین زبان های برنامه نویسی تحت وب PHP و ASP.NET کدام یک را می بایست انتخاب نمایید. در این مقاله سعی خواهم نمود تا این مسئله را برای شما روشن نمایم. PHP و ASP.NET هر دو جزو رایج ترین زبان های برنامه نویسی تحت وب در ایران هستند که هر یک طرفداران و توسعه دهندگان مربوط به خود را دارد. با توجه از جنبه های مختلف مقایسه هر یک از جنبه ها را در یک بخش توضیح خواهم داد.

 

از نظر قیمت

PHP بر پایه سیستم عامل لینوکسبوده و ASP.NET بر پایه سیستم عامل ویندوز و همانطور که می دانید لینوکس به صورت کاملا رایگان عرضه می گردد حال آنکه برای استفاده از ویندوز هزینه مربوط به فعال سازی می بایست پرداخت گردد. هاستینگ های لینوکس معمولا نسبت به هاست های ویندوز ارزان تر بوده و معمولا با قیمت پایین تری ارائه می گرددند. در کنار مسئله سیستم عامل، PHP به صورت کد باز عرضه می گردد و اسکریپت ها و کدهای رایگان بسیار بیشتری نسبت به ASP.NET برای آن وجود دارد و در صورتی که قصد طراحی سایت خاصی را داشته باشید معمولا اسکریپت های آماده و رایگان بیشتری برای استفاده نسبت به ASP.NET وجود دارند و همین مورد باعث قیمت پایین تر هزینه طراحی سایت PHP نسبت به ASP.NET می باشد.

سرعت

با توجه به وجو کدهای آماده و رایگان بیشتر برای PHP معمولا سیکل طراحی سایت با PHP به مراتب سریعتر از ASP.NET می باشد و همچنین کد زنی در PHP بسیار ساده تر می باشد و وجود سیستم های مدیریت محتوای رایگان و محبوبی نظیر جوملا و وردپرس کار طراحی وب سایت را بسیار ساده و سریع می سازد. البته .NET نیز سیستم های مدیریت محتوای رایگان خود نظیر DotNetNuke وKentico را دارد.

پایداری

هر دوی این زبان های برنامه نویسی جزو سیستم های پایدار می باشند و توسط آن ها وب سایت های قدرتمند بسیاری طراحی گردیده است. به عنوان مثال فیسبوک که یکی از قدرتمدترین شبکه های اجتماعی می باشد توسط PHP پیاده سازی شده است و همچنین Myspace که یکی دیگر از شبکه های اجتماعی قدرتمند می باشد توسط ASP.net پیاده سازی گردیده است.

عملکرد

PHP معمولا تحت لینوکس، آپاچی و mysql می باشد که بهینه سازی بسیاری برای ارتباط سریعتر این سه انجام شده است که باعث سرعت بالای آن گردیده است و همچنین ASP.NET معمولا تحت ویندوز، IIS و MSSQL که ارتباط و هماهنگی مناسبی با یکدیگر دارند و تفاوت عملکرد PHP و ASP.NET نا محسوس می باشد. موردی که وجود دارد آن است که فایل های سیستمی لینوکس عملکرد بهتری نسبت به فایل های NTFS ویندوز دارند و همین مورد باعث برتری عملکرد PHP نسبت به ویندوز می باشد.

پشتیبانی

PHP به عنوان محبوب ترین زبان برنامه نویسی تحت وب می باشد که توسعه دهندگان و جوامع کاربری بسیاری دارد و همین مورد باعث گردیده در صورتی که برای توسعه دهنده مشکلی به وجود آمد بتواند نحوه رفع مشکل خود را به راحتی و با جستجو در اینترنت بیابد. پشتیبانی و کمک آموزشی های ASP.NET به مراتب کمتر از PHP می باشد.

ابزارهای توسعه و کد نویسی

برنامه نویسان برای توسعه PHP معمولا از ویرایش گرهای مختلفی استفاده می نمایند حال آنکه توسعه دهندگان ASP.net معمولا باMicrosoft Visual Studio کد نویسی می نمایند. البته امروزه اکثر ویرایش گرهای برنامه نویسی از PHP و ASP.NET به طور همزمان پشتیبانی می نمایند که دو مورد از ویرایشگرهای مطرح Dreamweaver، Notepad++ می باشد.

آسانی در یادگیری

PHP بسیار ساده تر از ASP.NET در یادگیری می باشد زیرا کدهای آن و روتین برنامه نویسی بسیار ساده ای برای آن در نظر گرفته شده است حال آنکه برای کار با ASP.NET می بایست از زبان برنامه نویسی C# و یا VB.NET استفاده نمایید که زبان های پیچیره تری هستند.

محبوبیت

PHP به عنوان محبوب ترین زبان برنامه نویسی تحت وب می باشد که آن نیز به دلیل رایگان و متن باز بودن آن می باشد امروزه جامعه متن باز یا Open source هر روز در حال گسترش و توسعه می باشد و به سرعت بر تعداد استفاده کنندگان آن افزوده می گردد.

نتیجه گیری

به توجه به موارد ذکر شده در بالا مشخص است که سرعت طراحی سایت های PHP بالاتر نسبت به ASP.NET می باشد و همچنین هزینه تمام شده آن نیز پایین تر می باشد ولی در کنار این دو موردی به نام تجربه و کیفیت وجود دارد و آن هم این می باشد ممکن است شرکتی با توجه به تجربه و خط مشی خود وب سایت را توسط ASP.net با هزینه به نسبت پایین تر نسبت به PHP طراحی نماید و بلعکس. به نظر دارکوب مهم این نیست که سایت با چه زبان برنامه نویسی پیاده سازی گردد در نهایت ساخت وب سایت با بالاترین کیفیت و پایین ترین هزینه ممکن است تا کارفرما از نتیجه کار احساس رضایت داشته باشد. دارکوب برای این مهم زبان برنامه نویسی PHP را به عنوان زبان پایه خود انتخاب نموده است.

سورس:

طراحی سایت با PHP یا ASP.NET

مقایسه کردن تفاوت میان دو تاریخ توسط PHP

در برنامه نویسی PHP مواقعی پیش می آید که نیاز دارید دو تاریخ را به یکدیگر مقایسه نمایید و فاصله زمانی بین دو تاریخ را پیدا کنید که در بخش زیر نحوه بدست آوردن آن را به صورت کامل برای شما شرح خواهم داد. تاریخ ها را نمی توانید به صورت عادی از هم منها نمایید و می بایست آنها را به مقدار عددی تبدیل نمایید. برای انجام این کار می توانید از تابع strtotime استفاده نمایید. این تابع تاریخ شما به صورت تاریخ UNIX تبدیل می نماید که این تاریخ فاصله زمان تاریخ شما به ثانیه از زمان یکم 1970 می باشد. در زیر نحوه انجام این کار را به شما نمایش می دهم:

$date1 = "2007-03-24 00:00:00";
$date2 = "2009-06-26 00:00:00";

$diff = abs(strtotime($date2) - strtotime($date1));

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

printf("%d years, %d months, %d days\n", $years, $months, $days);

در کد بالا تاریخ می توانید به صورت تاریخ و زمان نیز باشد. متغییر $diff دو تاریخ را به صورت عددی از یکدیگر منها می نماید و بنابراین $date2 می بایست زمان جدیدتر باشد. برای بدست آوردن تفاوت سالیانه دو تاریخ می بایست فاصله زمانی بدست آماده را به سال تبدیل نمایید و از تابع floor برای روند کردن آن استفاده نمایید. برای بدست آوردن تعداد ماه ابتدا می بایست تعداد سال ها به ثانیه را از تفاوت دو تاریخ به ثانیه کسر نموده و سپس آن را به ماه تبدیل نمایید و برای سایر واحدهای تاریخ نیز به همین ترتیب عمل نمایید. در صورتی که قصد دارید فاصله بین دو تاریخ را به ساعت و دقیقه و همچنین ثانیه بیان نمایید می توانید کدهای زیر را به کد اصلی خود اضافه نمایید.

$hour = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24)/ (60*24));

$min = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24 - $days*60*60*24 - $hour*60*60)/ (60));

البته می توانید فاصله زمانی بین دو تاریخ را فقط توسط المان های دیگر نظیر ساعت و دقیقه بیان نمایید که در زیر مثال آن را برای شما آورده ام:

$hour = floor($diff / (60*24));
$min = floor(($diff - $hour * 60*24) / (24));

لینک:

مقایسه تفاوت بین دو تاریخ توسط PHP

افزایش دادن سرعت وب سایت توسط htaccess و php


سرعت یک وب سایت به المان های مختلفی از قبیل سرعت سرور و هاستینگ وب سایت، گرافیک های استفاده شده در سایت و همچنین کدهای موجود در صفحات , ... وابسته می باشد. در این مقاله چند روش را برای مبتدیان بیان می نمایم تا با استفاده از آن بتوانند سرعت وب سایت خود را بالا ببرند. البته آموزش های این مقاله مناسب برای سرورهای لینوکس و سایت های نوشته شده توسط PHP می باشد.

 

افزایش سرعت وب سایت با استفاده از کش PHP

php تابعی دارد که با استفاده از آن می توانید محتوای صفحات را کش نموده و به یکباره به مرورگر کاربر ارسال نمایید برای این کار می توانید از کد زیر استفاده نمایید:

  <?php
ob_start(); // شروع بافر

/* محتوای صفحه*/
ob_get_contents();  // گرفتن خروجی صفحه 
ob_end_flush(); // ارسال محتوای صفحه به خروجی و پایان بافر
?>

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

<?php
//settings
$cache_ext  = '.html'; //فرمت فایل
$cache_time     = 3600;  //کش کردن فایل برای 1 ساعت و یا 3600 ثانیه
$cache_folder   = 'cache/'; //فلدر برای نگهداری فایل های کش
$ignore_pages   = array('', '');//در صورتی که نمی خواهید فایل خاصی کش شود

$dynamic_url    = 'http://'.$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $_SERVER['QUERY_STRING']; // پیدا کردن آدرس صفحه
$cache_file     = $cache_folder.md5($dynamic_url).$cache_ext; // نام فایل کش
$ignore = (in_array($dynamic_url,$ignore_pages))?true:false; //چک کردن اینکه آیا فایل جزو فایل های درخواست نشده نباشد

if (!$ignore && file_exists($cache_file) && time() - $cache_time < filemtime($cache_file)) { //check Cache exist and it's not expired.
    ob_start('ob_gzhandler'); //فعال نمودن بافر با متغیر ob_gzhandler که محتوا را به صورت فشرده شده به خروجی می فرستد.
    readfile($cache_file); //خواندن فایل کش
    echo '<!-- cached page - '.date('l jS \of F Y h:i:s A', filemtime($cache_file)).', Page : '.$dynamic_url.' -->';
    ob_end_flush(); //چاپ خروجی و پایان بافر
    exit(); //خروج از حلقه در صورتی که فایل کش موجود و فعال می باشد.
}
//فعال سازی بافر توسط فشرده سازی gzip.
ob_start('ob_gzhandler'); 
######## محتوای وب سایت شما در بخش زیر#########
?>
<!DOCTYPE html>
<html>
    <head>
        <title>عنوان صفحه</title>
    </head>
        <body>
           بدنه صفحه.
        </body>
</html>
<?php
######## محتوای صفحه#########

if (!is_dir($cache_folder)) { //ایجاد یک فلدر برای نگهداری فایل های کش در صورتی که وجود نداشته باشد
    mkdir($cache_folder);
}
if(!$ignore){
    $fp = fopen($cache_file, 'w');  //باز نمودن فایل برای نوشتن
    fwrite($fp, ob_get_contents()); //نوشتن محتوای بافر در یک فایل
    fclose($fp); //بستن فایل
}
ob_end_flush(); //چاپ محتوای صفحه در خروجی

?>

با استفاده از روش بالا می توانید بار موجود بر روی سرور و همچنین سرور لود شدن صفحات را تا حد بسیاری افزایش دهید.

فعال نمودن فشرده سازی صفحات توسط htaccess

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

 # compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
# Or, compress certain file types by extension:
<files *.html>
SetOutputFilter DEFLATE
</files>

البته می توانید این کار را در فایل های php خود نیز انجام دهید:

<?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?>

این کار در حدود 60% حجم را کاهش می دهد.

فعال کردن کش در htaccess

با استفاده از mod_expires

توسط این ماژول می توانید تنظیمات کنترل کش خود را انجام دهید برای انجام این کار کافی است کد زیر را در فایل htaccess خود کپی نمایید:

 <ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault A300

# Expires after 1 month
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/x-icon A2592000
ExpiresByType application/pdf A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/plain A2592000

# Expires after 1 day
ExpiresByType text/css A86400
</ifModule>

خط ExpiresDefault می گوید فایل ها بعد از300 ثانیه اکسپایر گردند و خطوط ExpiresByType می گوید این فرمت های فایل برای2592000 کش شوند.

با استفاده از mod_headers

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

 <ifModule mod_headers.c>
ExpiresActive On

# Expires after 1 month
<filesMatch ".(gif|png|jpg|jpeg|ico|pdf|js|htm|html|txt)$">
Header set Cache-Control "max-age=2592000"
</filesMatch>

# Expires after 1 day
<filesMatch ".(css)$">
Header set Cache-Control "max-age=86400"
</filesMatch>
</ifModule>

خط ExpiresActive اکسپایر شدن را فعال می نماید و توسط filesMatch می توانید فرمت های فایل خاصی را کنترل نمایید. توسط این ماژول می توانید از این هم فراتر روید و موارد بیشتری را تنظیم نماید:

 <ifModule mod_headers.c>
# Turn on Expires and set default expires to 3 days
ExpiresActive On
ExpiresDefault A259200

# Set up caching on media files for 1 month
<filesMatch ".(ico|gif|jpg|jpeg|png|flv|pdf|swf|mov|mp3|wmv|ppt)$">
ExpiresDefault A2419200
Header append Cache-Control "public"
</filesMatch>

# Set up 2 Hour caching on commonly updated files
<filesMatch ".(xml|txt|html|js|css)$">
ExpiresDefault A7200
Header append Cache-Control "private, must-revalidate"
</filesMatch>

# Force no caching for dynamic files
<filesMatch ".(php|cgi|pl|htm)$">
ExpiresDefault A0
Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
Header set Pragma "no-cache"
</filesMatch>
</ifModule>

فعال نمودن Cache-Control به public به آن معناست که مرورگر می توانید فایل را کش نماید و private, must-revalidate به این معناست که مرورگر نمی بایست صفحه را کش نماید. بخش no-store, no-cache, must-revalidate, max-age-0 به مرورگر اعلام می نماید هرگز این نوع فایل ها را کش ننمایید.

سورس:

افزایش سرعت وب سایت توسط php