i
در حال برنامه نویسی و آماده سازی نسخه جدید «وبگو» هستیم، در این نسخه قابلیت ها و ظاهر سایت به کلی متفاوت و کاملتر خواهد بود، این فرآیند زمانبر و از مدتی پیش شروع شده و همچنان ادامه دارد، روند پیشرفت پروژه در این قسمت به صورت درصدی مشخص است و به تناوب به روزرسانی می شود.
parsgreen.com
نکته:
با توجه به تاریخ نگارش آموزش های سایت و پیشرفت تکنولوژی های مرتبط با وب در سالیان اخیر، محتوای برخی از مطالب قدیمی ممکن است نیاز به ویرایش و به روزرسانی داشته باشند که این کار هم زمان با تهیه نسخه جدید «وبگو» به مرور در حال انجام است، لطفا در استفاده از مطالب سایت به این نکته دقت داشته و حتی المقدور از چند منبع مختلف استفاده نمائید.
article

آموزش ساخت نقشه XML سایت (Sitemap) با PHP و MySQL

php-sitemap

یکی از ملزومات مورد نیاز مدیران وب معرفی اطلاعات آدرس های URL وبسایت، وبلاگ و... به صورت دستی بندی شده و دقیق به موتورهای جستجو است تا این موتورها به راحتی و با دقت بیشتر بتوانند کل صفحات موجود در یک آدرس اینترنتی را پیدا کرده و پوشش دهند، بدین منظور پروتکلی تعریف شده تحت عنوان Sitemap که در آدرس رسمی sitemaps.org با جزئیات در دسترس است، این پروتکل به وبمسترها اجازه می دهد تا آدرس های URL خود را در یک فایل XML قرار داده و به تناوب محتوای آن را به روزرسانی نمایند، با توجه به اینکه معمولا تعداد صفحات یک پایگاه اینترنتی همواره در حال تغییر و به روزرسانی است، ثبت دستی این تغییرات در فایل XML عملا گزینه مناسبی نبوده و بسیار وقتگیر و خسته کننده خواهد بود، ضمن اینکه احتمال بروز اشتباه نیز بالا خواهد رفت، از این رو در آموزش پیش رو ضمن ارائه اطلاعاتی در خصوص نقشه XML سایت، نحوه ساخت و به روزرسانی داینامیک آن با کدهای PHP و پرس و جوی MySQL را نیز به صورت نمونه توضیح خواهیم داد.

XML چیست و چرا در نقشه سایت استفاده می شود؟


XML (مخفف eXtensible Markup Language) زبان نشانه گذاری برای انتقال اطلاعات بین دستگاه های مختلف و یک استاندارد فراگیر است، XML قابل استفاده برای ماشین و قابل خواندن و درک توسط انسان است و این قابلیت وجود دارد تا با ساده ترین متد ممکن در تگ های مختلف نقشه XML سایت مواردی مانند آدرس صفحه، دوره به روزرسانی، تاریخ آخرین تغییرات، اولویت آدرس ها و... را برای هر URL به صورت جداگانه مشخص کنیم، لذا پروتکل Sitemap این زبان را برای ایجاد نقشه سایت مناسب دیده و در نظر گرفته است.

شیوه نگارش (Syntax) نقشه XML سایت


شیوه نگارش (Syntax) یک نقشه XML سایت در حالت کلی و برای نمونه به شکل زیر است:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com</loc>
</url>
<url>
<loc>http://www.example.com/?link=2</loc>
</url>
</urlset>
توضیح:
- رمزگذاری (encoding) نقشه XML سایت باید به صورت UTF-8 باشد که در خط اول دستورات آن را تنظیم می کنیم.
- sitemaps.org آدرس سایت رسمی پروتکل نقشه XML سایت است در شروع تگ urlset آن را به عنوان پروتکل مرجع قرار میدهیم.
- هر نقشه XML سایت باید با یک تگ urlset شروع و پایان یابد، در واقع تگ urlset برای هر نقشه سایت، تنها یک بار تکرار می شود.
- لینک ها و اطلاعات آنها در تگ url و به تعداد مورد نیاز قرار می گیرند، ترجیحا لینک ها را از بالاترین سطح تا پائین ترین سطح در تگ های url مرتب کنید، به طور مثال بخش ها را ابتدا و زیرمجموعه ها را در سطح های پائین تر قرار دهید.
- برای آدرس هایی که در سایت شما به اسلش (/) ختم می شوند، در نقشه سایت نیز باید حتما اسلش را در پایان آدرس URL قرار دهید، در غیر اینصورت نیازی به این کار نیست و توصیه نیز نمی شود، در واقع باید آدرس ها را به همان شکلی وارد کنید که در سایتتان استفاده می کنید.
- از به کار بردن کاراکترهای &, ', ", > و < در آدرس لینک ها خودداری کنید و به جای آنها از جایگزین HTML استفاده نمائید، در PHP با توابعی مانند htmlspecialchars می توان کاراکترهای خاص را به مقادیر HTML آنها تبدیل کرد.

ایجاد نقشه XML سایت به صورت داینامیک با PHP و MySQL


معمولا تعداد لینک های سایت های امروزی به چند مورد محدود نیست و همواره با تغییراتی افزایشی همراه است، از این جهت به روزرسانی دستی فایل XML امری بسیار زمانبر و با ضریب بروز اشتباه بالا خواهد بود و به همین جهت برای مدیریت و به روزرسانی نقشه XML سایتمان باید از زبان های سمت سرور و از جمله PHP و سیستم مدیریت پایگاه داده MySQL استفاده کنیم، در کد زیر ما اطلاعات فرضی را از پایگاه داده فراخوانی کرده و برای هر مطلب، لینک آن را به نقشه سایتمان اضافه و در پایان لینک ها را در یک فایل با نام sitemap.xml کپی می کنیم:
<?php
//ابتدا یک فایل با نام sitemap.xml بسازید.
//فایل را دریافت کرده و یک بار محتویات آن را پاک می کنیم
$file = "sitemap.xml";
//تنظیم مجوز های ویرایش
chmod($file, 0755);
//استفاده از متد w+
$file_handle = fopen($file, 'w+')
or die("خطا: سطح دسترسی برای ویرایش فایل در سرور تنظیم نیست!");
//متغیر با مقادیر خالی
$empty = "";
//نوشتن در فایل
$string_data = $empty;
fwrite($file_handle, $string_data);
fclose($file_handle);

//باز کردن مجدد فایل
$file = "sitemap.xml";
chmod($file, 0755);
//این بار با متد a
$file_handle = fopen($file, 'a') or die("خطا: سطح دسترسی برای ویرایش فایل در سرور تنظیم نیست!");
    
$start = "<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
//نوشتن فایل با متد a
$string_data = $start;
fwrite($file_handle, $string_data);

//صفحه نخست
$home = "<url><loc>http://example.com</loc></url>\n";
//نوشتن
$string_data = $home;
fwrite($file_handle, $string_data);

//قبل از اتصال به پایگاه داده باید اطلاعات اتصال را تعریف کنید
$conn = mysqli_connect("localhost", "db_user", "db_pass", "db_name");
if(!$conn){
    echo "Error!: " . mysqli_connect_errno() . ' - ' . mysqli_connect_error();
} else{
    //دریافت اطلاعات پست ها از دیتابیس و تبدیل به لینک
    $result = mysqli_query($conn, "SELECT * FROM posts ORDER BY rank ASC") or die(mysqli_error($conn));
    while($row = mysqli_fetch_array($result)){
        $id = $row['id'];
        $url = "<url><loc>http://example.com/?id=$id</loc></url>\n";
        //نوشتن
        $string_data = $url;
        fwrite($file_handle, $string_data);
    }
}

//بستن نقشه سایت
$end = "</urlset>";
//نوشتن
$string_data = $end;
fwrite($file_handle, $string_data);
fclose($file_handle);
//پایان اتصال
mysqli_close($conn);
?>
توضیح:
- فایلی با نام sitemap.xml ترجیحا در ریشه سایت بسازید.
- در کد بالا ابتدا بعد از فراخوانی فایل یک بار با متد +w محتویات آن را پاک سازی می کنیم (این کار برای جلوگیری از تکرار لینک ها در هر بار به روزرسانی نقشه XML سایتمان است).
- مجدد فایل را این بار با متد a فراخوانی کرده و اطلاعات جدید را در آن می نویسیم (فرق متد a و +w در این است که متد a به محتویات کنونی فایل خللی وارد نمی کند و در انتهای مقادیر موجود، مقادیر جدید را اضافه می کند اما متد +w فایل را خالی کرده و مجدد می نویسد).
- در نمونه کد بالا اطلاعات را از جدولی فرضی به نام posts دریافت کرده و برای هر مطلب یک لینک به خروجی می دهیم، توجه داشته باشید که اکستنشن استفاده شده در کد mysqli است که قاعدتا می تواند بر اساس نیاز خود از PDO نیز استفاده کنید.
- لینک های ما باید استاندارد HTML باشند و لذا استفاده از کارکترهای خاص &, ', ", > و < در آدرس لینک ها مجاز نمی باشد، توابعی مانند htmlspecialchars در PHP در این مورد کاربرد دارند.
- برای آپدیت مرتب نقشه XML سایت می توانیم به عنوان مثال آن را به کدهای صفحه ای که مطالبمان را از آن ارسال می کنیم اضافه کرده تا با هر بار ارسال مطلب جدید، اطلاعات فایل sitemap.xml نیز به روز رسانی شود، قاعدتا برای اعمال این حالت باید کمی برنامه نویسی سمت سرور (مانند PHP) مرتبط با CMS مورد استفاده بلد باشیم.
استفاده از نقشه XML سایت به لینک های معمول محدود نمی شود، محتویات دیگر صفحات وب از جمله تصاویر، ویدئوها، اخبار و... را نیز می توان در Sitemap گنجاند:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.sitemaps.org/schemas/sitemap-image/1.1"
        xmlns:video="http://www.sitemaps.org/schemas/sitemap-video/1.1">
<url>
<loc>http://www.example.com/</loc>
<image:image>
<image:loc>http://example.com/imagename.jpg</image:loc>
</image:image>
<video:video>     
<video:content_loc>http://www.example.com/videofilename.flv</video:content_loc>
<video:player_loc allow_embed="yes" autoplay="ap=1">http://www.example.com/videoplayer.swf?video=videofilename</video:player_loc>
<video:thumbnail_loc>http://www.example.com/thumbs/videofilename.jpg</video:thumbnail_loc>
<video:title>عنوان ویدئو</video:title>  
<video:description>توصیف ویدئو</video:description>
</video:video>
</url>
<url>
<loc>http://www.example.com/?link=2</loc>
</url>
</urlset>

افزودن تاریخ و اطلاعات بیشتر به Sitemap


علاوه بر تگ <loc> که آدرس لینک ها را در آن قرار می دهیم، از چند تگ (اختیاری) دیگر نیز می توانیم در نقشه XML سایت خود استفاده کنیم، از جمله <lastmod> برای نمایش تاریخ ایجاد یا به روز رسانی لینک، <changefreq> که دوره تغییر یک لینک را مشخص می کند و <priority> که میزان اهمیت آن را نسبت به سایر لینک ها نشان می دهد.
<?xml version="1.0" encoding="UTF-8"?> 
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com</loc>
<lastmod>2012-03-20</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.example.com/?link=2</loc>
<lastmod>2012-02-18T21:45:19+03:30</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
</urlset>
توضیح:
- فرمت مقادیر تگ <lastmod> می تواند به صورت تاریخ ساده یا تاریخ همراه زمان و اختلاف زمانی باشد (در مثال بالا از هر دو روش استفاده کرده ایم).
- تگ <changefreq> می تواند مقادیری مانند ماهیانه (monthly)، هفتگی (weekly)، ساعت به ساعت (hourly)، روزانه (daily)، سالیانه (yearly)، همیشگی (always) و یا هرگز (never) داشته باشد که نشان دهنده چرخه حدودی تغییرات آن لینک است.
- تگ <priority> میزان اهمیت لینک را مشخص می کند، این مقدار می تواند به ترتیب از کم اهمیت ترین (0.0) تا پراهمیت ترین (1.0) در نوسان باشد.
اطلاعات تکمیلی در خصوص نقشه XML سایت را می توانید در سایت رسمی آن مشاهده کنید:
sitemaps.org
sectionدسته بندی: آموزش کاربردی » PHP
related مطالب بیشتر:
» نمایش قسمتی از متن و پاراگراف با PHP
» تبدیل تاریخ میلادی به شمسی، با استفاده از مبدل jdf در php
» محاسبه و نمایش پیج رنک گوگل با php
» ارسال ایمیل با php و کلاس phpmailer
» محدود کردن لینک دانلود مستقیم فایل ها با PHP و htaccess
commentنظرات (۵۵ یادداشت برای این مطلب ارسال شده است)
نویسنده: مجتبی
زمان: ۱۹:۴۱:۲۹ - تاریخ: ۱۳۹۱/۰۴/۲۵
دستت درد نکنه برای ایجاد این مطالب.
پاسخ: 
خواهش می کنیم.
نویسنده: مجتبی
زمان: ۱۹:۴۲:۵۰ - تاریخ: ۱۳۹۱/۰۴/۲۵
اگه میشه آموزش پی اچ پی رو با مثال بذارین رو سایت.
پاسخ: 
اگر به منوی سمت راست توجه کنید، آموزش مقدماتی و کاربردی php را ملاحظه خواهید کرد، آموزش ها عموما همراه با مثال هستند.
نویسنده: ahmadi
زمان: ۱۷:۰۸:۲۱ - تاریخ: ۱۳۹۱/۰۸/۰۶
سلام من میخوام یه سایت فروشگاهی با php & mysql بسازم میشه شما پروژه ساخت فروشگاه رو بسازین و به صورت pdf یا همون در سایت انتشار بدین
پاسخ: 
ساخت یک سایت فروشگاهی، پروژه به ظاهر ساده ولی از نظر برنامه نویسی گسترده و دارای جزئیات زیاد است، برای این کار باید تجربه نوشتن برنامه های کوچکتر را داشته و با مباحث زیادی آشنا باشید، به طور مثال با انواع ویرایشگرهای HTML (قسمت ارسال مطلب)، مباحث مربوط به توابع، آرایه ها، نشست ها و ... لذا ملاحظه می کنید که موارد را باید به صورت جزئی یاد بگیرید و در نهایت در قالب یک مجموعه به کار ببرید، گردآوری آنها در قالب یک فایل PDF امکان پذیر نیست!
نویسنده: ehsan
زمان: ۱۳:۲۸:۱۱ - تاریخ: ۱۳۹۱/۱۲/۲۲
سلام
اموزش بسیار خوبی بود،دستتون درد نکنه.
یک سوال من سایتی که نوشتم لینکاش به این صورت هست.
http://www.exapmle.com/article?id=4&title=tutorial
راهی نیست استاندارد کنم؟ چون کاراکتر & غیر مجازه گفتین.
با تشکر
پاسخ: 
همان طور که در آموزش گفته ایم، راه حل آن استفاده از توابعی مانند htmlspecialchars در PHP است، به فرض این تابع کاراکتر & را به صورت معادل HTML آن یعنی
&amp;
تبدیل می کند که استاندارد است، مثال و نحوه استفاده:
    $url = htmlspecialchars("<url><loc>http://example.com/?id=$id&title=$title</loc></url>\n");
نویسنده: هادی
زمان: ۲۰:۳۳:۴۸ - تاریخ: ۱۳۹۱/۱۲/۲۹
با سلام
جناب بله با موفقیت انجام میشه اما تو فراخوانی ادرس هیچ چیز نمایش نمیده چرا
ممنون می شم جواب منو بدین اینم لینکش
www.bonabagahi.ir/sitemap.xml
پاسخ: 
نقشه XML سایت تنها مجموعه ای از دستورات ساده و معمولا حاوی لینک های یک سایت بر اساس استاندارد Sitemaps است، چیز دیگری نمایش داده نمی شود، نباید آن را با شیوه های دیگر مانند استفاده از تگ ul و li در HTML اشتباه بگیرید.
نویسنده: هادی
زمان: ۰۰:۳۸:۱۹ - تاریخ: ۱۳۹۱/۱۲/۳۰
با سلام
ممنونم
درست شد
خیلی خیلی ممنون
تشکر از زحمات شما
نویسنده: ana
زمان: ۱۱:۱۹:۰۹ - تاریخ: ۱۳۹۲/۰۲/۰۹
سلام. من میخوام سایت اموزشگاه طراحی کنم نمی دونم از کجا شروع کنم لطفا منو راهنمایی کنید. مرسی
پاسخ: 
اطلاعات مطرح شده در سوال طوری نیست که بتوانیم به درستی راهنمایی کنیم! منظور از سایت آموزشگاه دقیقا چه نوع سایتی است؟ میزان آشنایی شما با زبان های برنامه نویسی و اصول مربوط به وب تا چه حد است؟ قصد دارید از برنامه های آماده استفاده کنید یا اینکه می خواهید سیستم مدیریت سایت را خودتان بنویسید؟
به هر صورت با فرض آشنایی مقدماتی، ابتدا باید با اصول و مبانی وب آشنا باشید، سپس زبان های سطح پائین مانند HTML و CSS را یاد بگیرید، بعد از این مراحل تصمیم بگیرید که از CMS های موجود (متناسب با هدف سایت و پس از بررسی امکانات و پشتیبانی) استفاده کنید یا اینکه قدم به مرحله پیشرفته کار یعنی کدنویسی جاوا اسکریپت، PHP، MySQL و... بگذارید.
نویسنده: ana
زمان: ۲۳:۴۸:۱۳ - تاریخ: ۱۳۹۲/۰۲/۱۱
سلام. ممنون که جواب دادین. میخوام سایت یه اموزشگاه ازاد هنری رو طراحی کنم که کلاسای نقاشی و خوشنویسی و... رو داره که میخوایم کارای این اموزشگاه رو تو سایت انجام بدیم . با وب نویسی اصلا اشنایی ندارم . برنامه نویسی هم مقدماتی بلدم . این پروژه هم اجباریه. اگه میشه لطف کنید کمک کنید. اگه از کدای اماده استفاده کنم باید بدونم چه طور کار می کنن
پاسخ: 
به هر صورت انجام هر کاری نیازمند داشتن تجربه و مهارت در آن است، اگر نیاز شما این است که سایتی با امکانات سفارشی داشته باشید، پس باید وقت بگذارید، یاد بگیرید و تمرین و تکرار داشته باشید، یا اینکه روش های ساده تر مانند استفاده از CMS های آماده را انتخاب کنید و یا نهایتا این کار را به افراد و شرکت های مرتبط بسپارید، متاسفانه خارج از این شرایط راه حل دیگری وجود ندارد.
نویسنده: sina
زمان: ۲۱:۱۶:۰۳ - تاریخ: ۱۳۹۲/۰۵/۲۷
خیلی خوبه واقعا ادامش بدین
نویسنده: الیاس
زمان: ۱۸:۲۰:۳۴ - تاریخ: ۱۳۹۲/۰۷/۲۶
سلام
سایتتون عـــــــــالیه
کاش آموزش ایجاد در گاه پرداخت هم در سایتتون قرار بدهید.
پاسخ: 
ممکن است در آینده این کار صورت گیرد!
نویسنده: پرویز
زمان: ۱۰:۳۹:۲۶ - تاریخ: ۱۳۹۲/۰۷/۳۰
سلام, ببخشید آیا طراحی سایت های ایستا راحت تر است یا طراحی سایت های پویا و باید چه اصول و قوانینی در طراحی یک سایت پویا و حرفه ای را رعایت کنیم. ممنون می شوم اگر جواب من را بدهید.
پاسخ: 
قاعدتا طراحی سایت های استاتیک آسانتر است، البته محدودیت های زیادی خواهید داشت و قدرت مانورتان محدود به طراحی صفحات ثابت از پیش تعریف شده است و نمی توانید به صورت سیستماتیک آنها را به روز کنید (باید به صورت دستی انجام شود)، در مورد سایت های پویا هم می توانید از CMS های رایگان بدین منظور استفاده کنید که در این صورت نیاز به داشتن دانش حرفه ای در برنامه نویسی نیست، هم می توانید سیستم را خودتان طراحی کنید که این کار نیازمند تجربه بالا و یادگیری زبان های خانواده وب (HTML, CSS , JavaScript, PHP و...) است.
نویسنده: پرویز
زمان: ۱۸:۱۳:۴۵ - تاریخ: ۱۳۹۲/۰۷/۳۰
سلام, به نظر من چیزی در این دنیا نیست که نتوانیم آن را یاد بگرییم و چیزی غیر ممکنی در آن وجود ندارد اما باید علاقه, پشتکار, تمرین, برنامه ریزی های مشخص و منظم و توکل به خداوند بزرگ داشته باشیم و خصوصا طرح پرسش و و پاسخ و مشورت را فراموش نکنیم و ضرب المثل معروف که می گوید: "نادان نه میداند و میپرسد؛ دانا هم میداند و هم میپرسد. " را به یاد بیاوریم و اصول کارهای خود قرار دهیم.
پاسخ: 
قطعا همین طور است که گفتید.
نویسنده: ابوالفضل
زمان: ۰۱:۰۳:۰۶ - تاریخ: ۱۳۹۲/۱۰/۱۰
سلام آیا میشه در پی اچ پی کدی نوشت که تعداد فایل ها با پسوند خاصی را در یک پوشه را نمایش بدهد
به فرض مثلا ما می خواهیم تعداد فایلها با فرمت xml در پوشه folder نمایش داده شود ممنون میشم راهنمایی نمایید
پاسخ: 
می توانید از نمونه کد زیر استفاده کنید:
<?php
$folder = dirname(__FILE__).'/folder';
//echo $folder;
$handel = opendir($folder);
$count = 0;
while((($name = readdir($handel)) != false)){
$format = preg_match('/([\xml]+$)/', $name);
if($format){
//echo $name.'<br>';
$count++;
}
}
echo $count;
?>
نکته: آدرس فولدر به صورت کامل و صحیح باید تنظیم شود، در نمونه کد، فولدر با فایل PHP در یک دایرکتوری قرار دارند.
نویسنده: ابوالفضل
زمان: ۱۰:۵۴:۴۰ - تاریخ: ۱۳۹۲/۱۰/۱۱
سلام خیلی ممنونم که کمکم کردید
نویسنده: بهنام
زمان: ۱۲:۱۷:۵۸ - تاریخ: ۱۳۹۲/۱۱/۲۶
سلام سایت بسیار پر درآمد و آموزنده ای دارین ممنونم که به ما خدمت می کنید و وقت گران بهاتون رو در اختیار ما می گذارید بسیار ممنون
من یه سوال داشتم خارج از مطالب سایت هست و نمیدانم کجا سوالم را بپرسم لطفا همینجا پاسخ مرا بدهید:
من یک چت روم درست کردم با پی اچ پی و ایجکس وقتی که خودم تایپ می کنم ارسال می کنم پیام هام نمایش داده میشه ولی وقتی که کسی دیگری پیام بده و ارسال کنه پیام های اون را من نمیتوانم ببینم و فقط خود شخص میتواند ببیند
کد ها رو اینطوری تعریف کردم
دستور ایجکس این است که وقتی متن را در کادر نوشت و ارسال را زد با دستوران ایجکس آن متن را در فیلد بالا سلکت و چاپ کند و فقط برای خود کاربری که دکمه ی ارسال میزند چاپ می کند نه کسی دیگری این مشکل را چگونه حل کنم لطفا راهنماییم کنید بعضی ها میگن باید با جیکوری حل بشه
پاسخ: 
طراحی سیستم چت در وب نیاز به تسلط و تجربه بالا در کار با جاوا اسکریپت، Ajax و PHP دارد.
اطلاعات کاربر باید در دیتابیس ذخیره شده و برای آن یک گیرنده متناظر تعریف شود، سپس گیرنده پیام توسط درخواست ای جکس آخرین ارسال کاربر مقابل را دریافت کند، البته این تنها یک الگوی ساده است، در یک برنامه کاربردی قواعد زیادی باید رعایت و حالت های مختلف در نظر گرفته شود.
paged صفحه 1 از 4




more لطفا دقت کنید که یادداشت های زیر منتشر نشده و حذف خواهند شد:
- یادداشت های خارج از موضوع این مطلب.
- سوالات کلی، غیر ضروری و مشکلاتی که هیچ تلاشی برای رفع آن نکرده باشید.
- نظرات حاوی کدها و اسکریپت های خیلی طولانی (به طور مثال کد کامل قالب وبلاگ).

5 × 2
 refresh
آگهی
رنگین کمان عکس
Ranginkamaan.com

آرشیو عکس های باکیفیت با موضوعات متنوع...
پرشین آی تی
Persianit.net

آموزش و دانلود پروژه های برنامه نویسی سی شارپ (#C)