شما عضو این انجمن نبوده یا وارد نشده اید. لطفا برای مشاهده کامل انجمن و استفاده از آن وارد شوید یا ثبت نام کنید .

مهمان گرامی، خوش‌آمدید!
شما قبل از این که بتوانید در این انجمن مطلبی ارسال کنید باید ثبت نام کنید.

نام کاربری
  

گذرواژه‌
  





جستجوی انجمن‌ها

(جستجوی پیشرفته)

آمار انجمن
» اعضا: 3,540
» آخرین عضو: user5587
» موضوعات انجمن: 10,387
» ارسال‌های انجمن: 14,562

آمار کامل

کاربران آنلاین
در حال حاضر 195 کاربر آنلاین وجود دارد.
» 0 عضو | 195 مهمان
Applebot، ،

آخرین موضوع‌ها
آینده‌ای بدون صف؛ وقتی فن...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: marjan1999
دیروز، ۰۱:۲۸ عصر
» پاسخ: 0
» بازدید: 21
نقش دستگیره هوشمند در امن...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: marjan1999
۰۴/۸/۲۰، ۰۴:۵۵ عصر
» پاسخ: 0
» بازدید: 34
آموزش طرز تهیه کیک مرغ با...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: navidradi
۰۴/۸/۱۹، ۰۶:۱۲ عصر
» پاسخ: 0
» بازدید: 45
ویلا بابلسر؛ ترکیب دریا، ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۱۶، ۰۲:۲۵ عصر
» پاسخ: 0
» بازدید: 58
ویلا؛ انتخابی برای سبک زن...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۱۶، ۰۲:۲۱ عصر
» پاسخ: 0
» بازدید: 44
اجاره ویلا در رشت؛ تجربه ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۱۶، ۰۲:۱۶ عصر
» پاسخ: 0
» بازدید: 43
هوشمند سازی ساختمان در ته...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: navidradi
۰۴/۸/۱۴، ۱۰:۳۷ صبح
» پاسخ: 1
» بازدید: 956
زندگی محلی را با بوم‌گردی...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۹، ۰۸:۵۶ عصر
» پاسخ: 0
» بازدید: 61
یک آخر هفته رویایی در ویل...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۹، ۰۸:۵۵ عصر
» پاسخ: 0
» بازدید: 54
کلبه چوبی؛ قصه‌ی آرامش در...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۹، ۰۸:۵۱ عصر
» پاسخ: 0
» بازدید: 54
تفریح، آرامش و لوکس بودن ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۲، ۱۰:۳۲ عصر
» پاسخ: 0
» بازدید: 59
ویلا در شمال | سفری به سر...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۲، ۱۰:۰۹ عصر
» پاسخ: 0
» بازدید: 55
کلبه چوبی | آرامش در آغوش...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۲، ۱۰:۰۷ عصر
» پاسخ: 0
» بازدید: 43
معرفی بهترین شرکت مالیاتی...
انجمن: معرفی سایت، وبلاگ و خدمات
آخرین ارسال توسط: doorbinmarket
۰۴/۷/۲۷، ۰۲:۱۶ عصر
» پاسخ: 0
» بازدید: 84
سوئیت اصفهان؛ نفس‌کشیدن د...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۷/۱۹، ۰۳:۲۵ عصر
» پاسخ: 0
» بازدید: 81

 
  نگاهی به MySQL، پرکاربردترین سیستم مدیریت پایگاه داده
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۷:۱۸ عصر - انجمن: MySql - بدون پاسخ

نگاهی به MySQL، پرکاربردترین سیستم مدیریت پایگاه داده

یکی از پرکاربردترین سیستم های مدیریت پایگاه داده که تقریبا در وب رقیبی ندارد، MySQL است؛ تا حدی که امروزه سایتهای بزرگ و معروف نیز از آن استفاده می کنند، فلسفه پیدایش این سیستم جهت تسهیل دسته بندی یکپارچه و منظم اطلاعات و دسترسی آسان تر به آنها است، مخصوصا اگر مطالب و محتوای سایتی مرتب به روز شود، نیاز به پایگاه داده کاملا احساس می شود؛ هر چند فراگیری زبان های برنامه نویسی وب به خودی خود مهم و ضروری است اما امروزه دیگر آموختن MySQL جزء جدا ناپذیری از این مجموعه شده است، خوشبختانه با تسلط نسبی بر روی PHP می توان در مدت کوتاهی نکات ضروری MySQL را فراگرفت و البته مسلما گسترده گی و تنوع قابلیت های سیستم و فراوانی نیازهای کاربران، کمی کار را پیچیده و مشکل می کند.
دسته بندی اطلاعات در پایگاه داده

شیوه کلی دسته بندی اطلاعات در پایگاه داده بر اساس جداول و فیلد هاست، به عنوان مثال فرض کنید می خواهیم اسامی دانش آموزان یک مدرسه را بر اساس سن در جداول مختلف نگهداری  و در صورت نیاز به آنها دسترسی پیدا کنیم، در یک بیان ساده می توانیم چند جدول کلی ایجاد کنیم با عناوینی مربوط به سن آنها (مثلا ردیف سنی 8 تا 10 سال و...) حال در هر جدول اطلاعات مربوط به هر دانش آموز را در ردیف های مشخصی وارد می کنیم (مثلا در جدول 8 تا 10 سال برای هر دانش آموز یک ردیف می سازیم و اطلاعات را وارد می کنیم، فرضا نام: احمد، سن: 8 سال، محل سکونت: تهران و...)؛ پس از ثبت اطلاعات بعدها می توانیم بر اساس نیازمان آنها را فراخوانی کنیم یا دسته بندی کرده و به نمایش دربیاوریم و یا پردازش کنیم.

مدیریت پایگاه داده با PHPMyAdmin و PHP

خوشبختانه در اکثر سرورها به همراه MySQL برنامه ی PHPMyAdmin نیز وجود دارد که به کمک آن به راحتی می توانید دستورات مروبط به پایگاه داده را اجرا کنید، به فرض پایگاه جدیدی ایجاد کنید، جداول بسازید، جداول را ستون بندی کرده، ردیف های دلخواه ایجاد و مدیریت کنید، یونیکدها را تغییر دهید و... نکته مهم تر از این، قابلیت کنترل پایگاه داده از طریق دستورات PHP است، خوشبختانه php تقریبا امکانات کاملی را در این خصوص در اختیارمان قرار می دهد، نتیجه اینکه برنامه PHPMyAdmin کار مدیریت مستقیم (با محیط کاربری) پایگاه داده را تسهیل می کند، اما در کدنویسی و برنامه های کاربردی، باید از php استفاده کنیم؛ برای آشنایی بیشتر از بحث تئوری می گذریم و برای شروع، توجه شما را به چند مثال جلب می کنیم.

ارتباط پایگاه داده با php

برای اینکه بتوانیم با پایگاه داده ارتباط بر قرار کنیم قبل از هر چیز باید یوزر و پسورد (نام کاربری و کلمه عبور) و همچنین پایگاه داده ایجاد کنیم، انجام این کار در قسمت مربوط به پایگاه داده و برنامه PHPMyAdmin یا به صورت کدهای php ممکن است (در سرور یا در لوکال هاست)  اکنون همه چیز آماده است تا با کد php پایگاه داده را مدیریت نمائیم.
کد زیر مثالی برای ایجاد ارتباط با پایگاه داده است:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
اطلاعات پایگاه خود را در مقادیر مشخص شده وارد می کنیم، به جای یوزر نام کاربری، در قسمت پسورد کلمه عبور و در قسمت db نام پایگاه داده (دیتابیس) را می نویسیم، اگر همه چیز درست باشد پیام "ارتباط برقرار شد" و "ارتباط با پایگاه داده برقرار شد" را در خروجی خواهیم داشت در غیر این صورت قسمت or die اجرا شده و خطای مربوطه نشان داده می شود؛ نهایتا نیز با دستور mysql_close به ارتباط پایان می دهیم.

اکنون فرض کنید قصد داریم جدولی با نام school و سه فیلد (ستون) ایجاد کنیم، برای این کار از کد زیر استفاده می نمائیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
توضیح:
- mysql_query یک دستور مربوط به پایگاه داده را برایمان اجرا می کند.
- CREATE TABLE یکی از query های mysql است که یک جدول و ستون های آن را ایجاد می نماید.
- در کد بالا ردیف (ستون) id با مقادیر INT (عدد صحيح) و NOT NULL (در صورت خالی بودن، بی مصرف نیست) و AUTO_INCREMENT (عملکرد افزایش خودکار) ایجاد می شود و ویژگی کلید اولیه را به آن می دهیم (در این باره بعدا بیشتر خواهیم گفت).
- دو فیلد name و age با خاصیت VARCHAR ایجاد شده اند که مقدار حداکثر مجاز کاراکتر را در خود دارند.
تا اینجا صرفا جهت آشنایی با شیوه نگارش دستوارت mysql و نحوه ارتباط آن با php مثال هایی را ذکر کردیم، درک کامل نحوه عملکرد mysql، نیاز به بررسی مثال ها و مباحث آموزشی بیشتری دارد که در مطالب بعدی به جزئیات و قابلیت های گوناگون آن خواهیم پرداخت.

چاپ این مطلب

  ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۷:۱۵ عصر - انجمن: MySql - بدون پاسخ

در بخش آموزش مقدماتی MySQL و در مطلب گذشته با کلیاتی از پرکاربرد ترین سیستم مدیریت پایگاه داده یعنی MySQL آشنا شدیم، گفتیم که دستورات مربوط به پایگاه داده از طریق برنامه phpMyAdmin به طور مستقیم قابل اعمال هستند و از طرفی کدهای php قابلیت های فراوانی برای مدیریت و اعمال همان دستورات در اختیارمان می گذارند، از آنجایی که یک برنامه خوب بیشتر تکیه بر کدها و ابزار های داینامیک دارد، لذا ما از طرح مباحث مربوط به phpMyAdmin می گذریم و به نحوه اجرای دستورات در php می پردازیم، در این مطلب نیز می خواهیم در رابطه با آموزش ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL صحبت کنیم.

ساخت دیتابیس با دستور CREATE

اگر چه ساخت دستی دیتابیس با برنامه phpMyAdmin بیشتر کاربرد دارد، اما کدهای PHP نیز این قابلیت را با دستور CREATE DATABASE دارا هستند.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
توضیح:
- پیش از اجرای هر دستوری، ابتدا باید به MySQL متصل شویم.
- mysql_connect، mysql_error، mysql_query و mysql_close از توابع درونی php هستند که برای کار با پایگاه داده مورد استفاده قرار می گیرند.

ساخت جدول و چند ردیف (ستون) با دستور CREATE

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
توضیح:
- در کد بالا ما query ساخت یک جدول با دو ردیف (ستون) id و table را اجرا کردیم و به هر کدام ویژگی هایی را نسبت دادیم.
- INT و VARCHAR نشان دهنده نوع داده ای است که در آن ردیف (ستون) ذخیره می شود.
- ENGINE=MyISAM برای قرار دادن موتور MyISAM به صورت پیش فرض برای جدولی است که ایجاد می کنیم (در برخی نسخه ها به صورت TYPE=MyISAM قابل قبول است)، برخی نسخه های MySQL به جای MyISAM از موتور INNODB به صورت پیش فرض استفاده می کنند.

تغییر یونیکد به UTF8 برای کار با داده های زبان فارسی با دستور ALTER TABLE

برای اینکه بتوانیم داده های خود را به زبان فارسی به درستی در دیتابیس ذخیره و بازیابی کنیم، توصیه می شود همواره از یونیکد استاندارد UTF8 استفاده کنید، لذا بعد از ایجاد جدول تکه کد زیر را هم در ادامه، برای آن جدول اجرا نمائید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
توضیح:
- ALTER TABLE یک دستور ثانویه است که می توانید به کمک آن روی جداول موجود تغییراتی اعمال نمائید یا به فرض آنها را حذف کنید.
- DEFAULT CHARACTER SET به همراه COLLATE utf8_general_ci، یونیکد پیش فرض یک جدول و ستون های زیر مجموعه آن را تغییر می دهد.
- پس از اینکه یونیکد را بر روی UTF8 تنظیم کردیم برای ارتباط صحیح و مقایسه یکسان کاراکترها باید از COLLATE و قانون utf8_general_ci استفاده کنیم که در مثال بالا این کار انجام شده است.

چاپ این مطلب

  ارسال ایمیل با php و کلاس phpmailer
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۷:۰۲ عصر - انجمن: PHP - بدون پاسخ

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

ارسال ایمیل در php با تابع mail
برای ارسال ایمیل در php روش های مختلفی وجود دارد، ساده ترین راه،  ارسال ایمیل با استفاده از تابع درونی و از پیش تعریف شده ()mail و SMTP بدون بررسی نام کاربری و رمز عبور (authentication) است، معمولا، کافی است این تابع را با چند آرگومان فراخوانی کنید تا ایمیل شما ارسال شود، به طور مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

توضیح:
- تابع mail به صورت از پیش تعریف شده در php وجود دارد و تنها کافی است آن را با تکمیل پارامترها، فراخوانی کنیم.
- کارکرد صحیح این تابع، تا حدود زیادی بستگی به تنظیم درست موارد مورد نیاز آن در فایل php.ini دارد (از جمله smtp_port ،SMTP ،sendmail_from در سرورهای ویندوز و sendmail_path در سرورهای لینوکس)، در سرورهای اشتراکی، معمولا دسترسی به فایل اصلی php.ini امکان پذیر نیست، بنابراین اگر نتوانید با تابع mail ایمیل ارسال کنید، به احتمال زیاد تنظیمات این فایل به درستی انجام نشده است یا سرور هاست شما، قابلیت ارسال ایمیل را محدود کرده است که باید با پشتیبانی خود در این مورد تماس بگیرید.
- همانطور که ملاحظه می کنید، این تابع سه پارامتر اصلی و چند پارامتر فرعی را می تواند در هنگام ارسال ایمیل پوشش دهد، پارامترهای اصلی آدرس ایمیل دریافت کننده، موضوع و متن پیام است، پارامترهای اضافی به صورت سربرگ ها قابل استفاده هستند که به طور مثال می توانند به صورت زیر باشند:


*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

- علامت r\n\ در کدهای بالا برای ایجاد یک خط جدید استفاده می شوند.
- MIME یک استاندارد اینترنتی برای ارسال و دریافت ایمیل است (Multipurpose Internet Mail Extensions)، همچنین است SMTP که مخفف (Simple Mail Transfer Protocol) است.

ارسال ایمیل به صورت html با تابع mail
تابع mail علاوه بر ارسال ایمیل به صورت متن ساده یا plain text برای ارسال متون به صورت صفحات html نیز قابل استفاده است، بدین منظور دو کار را باید در هنگام ارسال ایمیل انجام دهیم:
1- متن پیام ما باید به صورت یک کد html باشد، درست شبیه صفحات ساده وب که به صورت html هستند.
2- در قسمت سربرگ ها که در بالا عنوان شد، سربرگ زیر را برای پشتیبانی از زبان فارسی، به کد خود اضافه کنیم:


*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

به طور مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

البته ارسال سربرگ های اضافی همیشه هم ضروری نیست، برخی از سرویس های ایمیل به طور پیش فرض از یونیکد utf-8 استفاده می کنند، اما برای اطمینان از اینکه ایمیل شما در همه سیستم ها خوانا و قابل استفاده باشد، بهتر است سربرگ utf-8 را همراه ایمیل خود ارسال کنید.

ارسال فایل ضمیمه با تابع mail در php
ارسال ایمیل بدون فایل های ضمیمه یا همان attachment با تابع mail در php کار چندان سختی نیست، اما اگر بخواهیم به همین صورت فایل ها را نیز به همراه نامه الکترونیک خود ضمیمه کنیم، باید چند کار دیگر را نیز انجام دهیم که در ادامه خواهیم گفت؛ ابتدا کد زیر را در نظر بگیرید:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

کد بالا با استفاده از تابع mail در php، علاوه بر ارسال متن ساده و متن به صورت html قابلیت ارسال فایل ضمیمه (attachment) را نیز دارد.

توضیح:
- قبل از هر چیز در هنگام ارسال ایمیل با ضمیمه، ما به سربرگی تحت عنوان boundary یا سرحد و کرانه احتیاج داریم، برای تفکیک قسمت های مختلف یک ایمیل  (از جمله متن ساده، متن به صورت html و فایل ضمیمه) در استاندارد MIME باید از کدهای رندوم تحت عنوان boundary استفاده کنیم، البته در واقع مهم نیست این کد شامل چه عبارتی (از حروف و اعداد) باشد، مهم این است که سیستم دریافت کننده ایمیل بتواند قسمت های مختلف آن را تفکیک کند، از طرفی این کد نباید در متن پیام تکرار شده باشد، لذا معمولا از یک کد رندوم اختصاصی استفاده می شود.
- نکته مهم دیگر استفاده از تابع chunk_split و base64_encode است، به این صورت فایل ما برای انتقال به قطعات کوچکتری تقسیم شده و در چارچوب استاندارد RFC 2045 قابل انتقال است.
- همانطور که ملاحظه می کنید، در سربرگ های اولیه، مقادیر multipart/mixed را برای Content-Type در نظر گرفته ایم که این کار به دلیل ضمیمه بودن فایل به ایمیل است.
- در دو قسمت میانی کد، دو نوع متن به صورت plain text و text html ارسال کرده ایم که شما بنا بر ضرورت می توانید از هر دو یا تنها از یک روش استفاده کنید.
- نکته مهم دیگر استفاده از application/zip برای Content-Type در قسمت مربوط به فایل ضمیمه است، برای بدست آوردن Content-Type فایل های مختلف با فرمت های متفاوت، کافی است آدرس فایل خود را در سرور یا در لوکال هاست در کد زیر به جای متغیر فرضی file جایگزین کرده و آن را اجرا کنید، خروجی، Content-Type فایل شما را نشان می دهد:


*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

ارسال ایمیل با استفاده از کلاس phpmailer
اگرچه کاربرد تابع mail در php بسیار آسان و ساده است، اما این تابع تنها موارد اولیه را پوشش می دهد، به فرض امکان استفاده از SMTP به صورت authentication یا بررسی نام کاربری و کلمه عبور وجود ندارد، یا نمی توان سرور ارسال ایمیل را تغییر داد و محدودیت های دیگری از این دست، لذا برنامه نویسان php بسته ها و کلاس های دیگری بدین منظور نوشته اند که یکی از معروف ترین آنها کلاس phpmailer است، علاوه بر کلاس phpmailer بسته ایمیل  PEAR نیز برای php وجود دارد که البته به دلیل قدرت و انعطاف پذیری کلاس phpmailer کم تر مورد استفاده قرار می گیرد.

برای شروع آموزش این قسمت ابتدا کلاس مذکور را از لینک زیر دریافت کنید:

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

به دلیل مسدود بودن خدمات code گوگل برای ip های ایران، می توانید آخرین نسخه آن را از انتهای این مقاله دانلود کنید.

در نسخه بالا برخی فایل های غیر ضروری  مربوط به تست های جانبی کلاس، نسبت به نسخه اصلی حذف شده اند تا از سردرگمی کاربران در مواجه با تعداد زیاد فایل های این بسته جلوگیری شود، زبان فارسی نیز برای خطاها، در قسمت language قرار داده شده است که می توانید با اعمال تغییراتی در فایل class.phpmailer.php از آن نیز استفاده کنید، یادآور می شویم اگر می خواهید این کلاس را به همراه تمام فایل های جانبی در اختیار داشته باشید، بهتر است نسخه سایت گوگل را دریافت کنید، اما اگر داشتن فایل ها و مثال های اصلی برایتان مهم است و چندان اهل کنجکاوی در موارد اضافی و جانبی نیستید، این بسته نیز کامل و مناسب است.

استفاده از کلاس بالا بسیار ساده و آسان است، کافیست مطابق الگوی زیر موارد مورد نظر را با توجه به سرور خود تنظیم کرده و فایل را اجرا نمائید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

توضیح:
- همانطور که گفتیم ارسال ایمیل با کلاس phpmailer بسیار آسان و کاربردی است، کافی است ابتدا فایل اصلی برنامه یعنی class.phpmailer.php را در صفحه خود وارد کنید (با استفاده از require یا include)، سپس موارد مورد نیاز را مطابق با سرور و حساب خود تنظیم نمائید.
- در قسمت IsSMTP مشخص می کنیم که می خواهیم از SMTP برای ارسال ایمیل استفاده کنیم و برای استفاده از این امکان باید آدرس میل سرور، نام کاربری و کلمه عبور را مطابق الگو تکمیل نمائید.
- قسمت AltBody برای کسانی است که برنامه مدیریت ایمیل آنها تنها از متن ساده پشتیبانی می کند و امکان دیدن ایمیل های html را ندارند.
- قسمت MsgHTML متن پیام به صورت html را در خود جای می دهد، این متن هم می تواند با فراخوانی یک فایل جانبی (با تابع file_get_contents) باشد یا اینکه به صورت مستقیم وارد شود، به فرض در هنگام کار با فرم های ایمیل می توان متن دریافتی از فرم را به یک متغیر نسبت داده و متغیر را به عنوان محتوای ایمیل ارسالی در نظر گرفت.
- اگر نیاز به ضمیمه کردن فایل یا فایل هایی در ایمیل خود دارید، می توانید از قسمت AddAttachment که در مثال بالا غیر فعال شده است، استفاده کنید، ذکر این نکته ضروری است که فایل شما باید از قبل بر روی سرور قرار گرفته باشد و سپس آدرس آن به صورت داینامیک جایگزین شود که خود نیاز به کمی مهارت در برنامه نویسی php دارد.

استفاده از SMTP گوگل برای ارسال ایمیل در php
با استفاده از کلاس PHPMailer شما می توانید از سایر سرورهای SMTP که در آنها حساب کاربری دارید نیز برای ارسال ایمیل استفاده نمائید، البته در عمل سرویس های ایمیل معمولا پس از مدتی برخی از پورت های عمومی خود را محدود کرده یا تغییر می دهند؛ با این وجود یکی از پرکاربردترین این سرورها، سرویس ایمیل سایت گوگل است که تقریبا محدودیت های آن از سایر موارد مشابه کم تر است، البته در لحظه ای که آین آموزش نوشته می شود، ظاهرا پورت 465 SSL آن برای برنامه های جانبی مسدود شده است و خطای timeout می دهد، اما پورت 587 TLS همچنان کار می کند، در کنار این دو پورت امن، پورت 25 نیز وجود دارد که نیازی به رمزنگاری ندارد، برای اینکه این کد در سرور شما به درستی کار کند، بهتر است همه موارد را بررسی کنید، ارسال ایمیل از این طریق محاسن و در عین حال معایبی دارد، بهترین مزیت آن این است که محدودیت برخی از هاست های اشتراکی را ندارد، توضیح اینکه در بیشتر هاست ها برای ارسال ایمیل محدودیت هایی به صورت روزانه و یا ساعتی قائل می شوند، ظاهرا و به گفته تیم پشتیبانی گوگل، در سرویس این شرکت روزانه بالغ بر 2000 ایمیل از یک اکانت قابل ارسال است، اما معایب این سرویس این است که ممکن است از طرف گوگل پورت های آن مسدود شود یا بدون اطلاع قبلی تغییر پیدا کند و یا به ip های برخی کشورها سرویس ندهد و... که این استقلال برنامه ما را تحت تاثیر قرار می دهد، به هر صورت تصمیم به استفاده یا عدم استفاده از این امکان را به عهده شما می گذاریم.

بدین منظور لازم است الگوی بالا را به شکل زیر تغییر دهید:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

ارسال ایمیل در لوکال هاست و WampServer
برای ارسال ایمیل از طریق لوکال هاست و برنامه سرور محلی WampServer، با استفاده از SMTP سرویس ایمیل گوگل یا همان GMail، ابتدا لازم است که آخرین نسخه wamp را روی سیستم خود نصب کنید، این برنامه را می توانید از لینک زیر دریافت نمائید.
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

پس از نصب برنامه، به دلیل استفاده گوگل از پروتکل های امن و عدم پشتیبانی wamp (به طور پیش فرض) از این امکان، باید تغییراتی در فایل اصلی php.ini اعمال نمائید تا ایمیل شما از این طریق قابل ارسال باشد، لذا پوشه ای که برنامه را در آن نصب کرده اید باز کرده و آدرس زیر را ادامه دهید تا به فایل php.ini برسید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این فایل با استفاده از نت پد (notepad) یا هر ویرایشگر متنی دیگر و با کمک قابلیت کلمه یاب یا Find، به دنبال عبارت openssl بگردید تا به خط مربوط به extension=php_openssl.dll برسید، اگر در ابتدای این خط علامت ; بود، آن را حذف کنید و فایل خود را ذخیره کرده و برنامه WampServer را (اگر در حال اجرا بود) بسته و مجددا اجرا کنید یا از امکان شروع مجدد آن استفاده نمائید، اکنون اگر تابع ()phpinfo را در یک فایل php خروجی بگیرید، در قسمت Phar امکان OpenSSL support باید فعال یا enabled باشد، در غیر این صورت در هنگام ارسال ایمیل از طریق phpmailer و wamp، پیام زیر را دریافت خواهید کرد.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حال همه چیز آماده است تا از کلاس PHPMailer و SMTP گوگل استفاده نمائیم.

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



فایل‌(های) پیوست شده
.zip   PHPMailer5.2.1.zip (اندازه: 52/41 KB / تعداد دفعات دریافت: 6)
چاپ این مطلب

  محاسبه و نمایش پیج رنک گوگل با php
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۶:۵۰ عصر - انجمن: PHP - بدون پاسخ

پیج رنک گوگل یا google page rank که به اختصار به آن PR هم می گویند، یکی از مهم ترین و جنجال برانگیزترین مباحث بین مدیران وبلاگ ها و سایت های مختلف بوده و کماکان هست، تا جایی که برخی به هر روشی که شده، سعی می کنند پیج رنک خود را بالا ببرند و حتی خیلی چیزهای دیگر را فدای آن می کنند! به هر صورت بحث ما در مورد اینکه چگونه پیج رنک خود را افزایش دهیم یا مسائل از این دست نیست، بلکه می خواهیم ببینیم چگونه می توان با زبان برنامه نویسی PHP، نمره پیج رنک گوگل سایت یا وبلاگ خود را به دست آورد، البته در این مطلب نمی خواهیم نحوه ساخت ابزار نمایش پیج رنک گوگل را آموزش دهیم، بلکه می خواهیم پایه و مبنای اصلی کار برای برنامه نویسان، که همان عددی است که گوگل برای آدرس سایت ها و وبلاگ های درخواست شده بر می گرداند را با PHP دریافت کنیم، اینکه از این عدد چطور استفاده خواهیم کرد، بستگی به ایده های ذهنی و سلیقه خودتان دارد.

پیج رنک گوگل چیست؟

بد نیست قبل از اینکه وارد بحث اصلی شویم، مروری داشته باشیم به اینکه اصلا پیج رنک گوگل چیست؟ جواب این است که پیج رنک الگوریتمی پیچیده برای آنالیز یک لینک (صفحه) از لحاظ میزان ارزشمندی و محبوبیت در وب است، ارزشمندی یک لینک (صفحه) نیز بر اساس میزان و اهمیت صفحاتی است که به آن، لینک خروجی داده اند، به این ترتیب گوگل نمره ای از 0 تا 10 برای هر سایت (و در واقع برای هر لینک) در نظر می گیرد، هر چه این عدد بالاتر باشد، یعنی گوگل برای آن صفحه یا لینک ارزش بیشتری قائل است و اعتبار بیشتری به آن لااقل در تئوری می  دهد، البته در نمایش نتایج جستجو، پیج رنک، تنها یک بُعد کار است، الگوریتم های گوگل آنقدر پیچیده شده اند که بسیاری از عوامل را درهنگام نمایش مطالب سایت ها و وبلاگ ها در لیست نتایج جستجو دخیل می کنند، یا نوع امتیاز دهی گوگل به سایت ها و وبلاگ هایی که به فرض به تعداد زیادی لینک خروجی می دهند با سایت ها یا وبلاگ هایی که تنها به چند عدد لینک بسنده می کنند، فرق دارد، بعضا دیده شده، گوگل حتی رتبه سایتهای تبلیغاتی و پُر از لینک خروجی را به شدت کاهش داده و باعث حیرت همگان شده است.
به لحاظ تجاری عنوان پیج رنک یا page rank توسط گوگل ثبت شده است اما به لحاظ سابقه تاریخی این عنوان ابتدا متعلق به دانشگاه استنفُرد امریکا (Stanford University) بود و امتیاز آن در سال 2005 توسط شرکت گوگل از این دانشگاه خریداری شد، به تدریج با پیروی از گوگل، سایر رقبای جدی آن نیز تا حدودی این معیار را در الگوریتم های جستجوی خود اعمال کرده اند و اکنون تقریبا پیج رنک بالا تر یکی از نشانه های احتمال موفقیت بیشتر در وب است (البته تنها یکی از نشانه ها نه همه چیز!).

پیج رنک گوگل از چه آدرسی قابل دریافت است؟

پیج رنک گوگل را بر روی تولبارهای نمایش پیج رنک که در مرورگرهای مختلف تحت عنوان پلاگین نصب می شوند، می توان دریافت کرد، این تولبار ها با ایجاد درخواست به آدرس toolbarqueries.google.com و با ارسال آدرس صفحه مورد نظر، عددی را در جواب بین 0 تا 10 دریافت می کنند (برای صفحاتی که هنوز رتبه ای ندارند، هیچ چیز دریافت نمی شود) و آن عدد را به اشکال مختلف پردازش کرده و معمولا به صورت گرافیکی نشان می دهند.

محاسبه پیج رنک گوگل با کدهای php

زبان برنامه نویسی php این امکان را دارد که با ایجاد یک شبیه سازی با ابزارهای تولبار مرورگرها، به صورت مستقیم آدرس یک لینک را ارسال و عدد برگردانده شده توسط گوگل را نمایش دهد (توجه کنید که گوگل با هدف نمایش پیج رنک در تولبار خود، این سرویس را در دسترس قرار داده است، در واقع با php به نوعی این تولبار را جعل می کنیم)، در زیر به یکی از قوی ترین کدهایی که تا کنون در این خصوص نوشته شده است اشاره می کنیم؛ یادآور می شویم، چندی پیش گوگل در تولبار پیج رنک خود تغییراتی اعمال کرد که موجب از کارافتادن برخی از کدهای مشابه شد، اما این کد با سیستم جدید گوگل تطابق دارد.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
توضیح:
- کد بالا یک شبیه ساز تولبار گوگل است که پیج رنک لینک های درخواستی را نمایش می دهد (به صورت اعداد صفر تا 10).
- آدرس لینک (سایت، وبلاگ یا صفحه) خود را باید در متغیر website در بالای کد، تعریف کنید.
- سپس قسمت مربوط به if و http، https بررسی می کند که آیا لینک شما معتبر است یا خیر، اگر لینک با http یا https شروع نشده باشد، در ادامه، مقادیر به متغیر website اضافه خواهند شد تا لینک به صورت استاندارد درآید.
- در گام بعدی، تنظیمات مربوط به اتصال به سرور گوگل در آدرس toolbarqueries.google.com با یک واسط کاربری (UserAgent) فرضی (در واقع جعلی) اعمال می شود.
- قسمت های مربوط به توابع StrToNum، HashURL و CheckHash به طور ساده فرمولی است برای ایجاد کد عددی، مطابق با آدرس لینک درخواستی، این کد توسط گوگل با آدرس لینک مورد نظر تطبیق داده می شود و اگر صحیح باشد عدد پیج رنک را برمی گرداند.
- در تابع getpr، اتصال به سوکت با fsockopen و پورت 80 انجام می شود و نهایتا نتیجه به صورت عددی از 0 تا 10 به عنوان پیج رنک برگردانده می شود.

فراخوانی تابع محاسبه و نمایش پیج رنک گوگل

تابع بالا را به صورت زیر می توان فراخوانی کرد تا نتیجه محاسبه، به صورت یک عدد بین 0 تا 10 نمایش داده شود (برای صفحاتی که هنوز نمره ای دریافت نکرده اند، هیچ چیز نشان داده نخواهد شد).

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

چاپ این مطلب

  تبدیل تاریخ میلادی به شمسی، با استفاده از مبدل jdf در php
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۶:۴۴ عصر - انجمن: PHP - بدون پاسخ

یکی از دردسرهای همیشگی مدیران وبلاگ ها و سایت های فارسی زبان، مشکل نمایش تاریخ شمسی در صفحاتشان است، البته این مشکل برای سایت ها نمود بیشتری دارد چرا که وبلاگ ها معمولا از طریق سرویس دهنده خود می توانند تاریخ مطالب و محتوا را به بازدیدکنندگان به راحتی نشان دهند، اما در سایت ها وضع کمی فرق می کند، چرا که تاریخ قریب به اتفاق سرورها به میلادی است و از طرفی منطقه زمانی نیز در بیشتر سرورها بر روی GMT قرار دارد، در حالی که کشور ما ایران، به صورت استاندارد در منطقه زمانی 3:30+ GMT (و با تغییر ساعت در منطقه زمانی 4:30+ GMT) قرار گرفته است؛ در این مطلب می خواهیم به کمک برنامه مبدّل تاریخ هجری شمسی (jdf) که توسط برنامه نویسان ایرانی و به PHP نوشته و توسعه داده شده است، روش تبدیل تاریخ میلادی به شمسی را آموزش دهیم و مشکل منطقه زمانی را نیز حل کنیم.
دانلود مبدل تاریخ میلادی به شمسی به زبان php

قبل از بررسی ادامه آموزش، ابتدا آخرین نسخه برنامه مبدّل تاریخ هجری شمسی (jdf) را از لینک زیر یا فایل پیوست شده در انتهای مقاله دریافت کنید:

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


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

پس از دریافت فایل بالا، ابتدا تاریخ و زمان میلادی را به صورت Timestamp استاندارد (روز-ماه-سال) و (ثانیه-دقیقه-ساعت) از دیتابیس یا از سرور دریافت می کنیم، سپس پس از تجزیه موارد اضافه از طریق تابع explode در php و نهایتا تبدیل آرایه ها به متغیر با کمک list، با تابع mktime،  تاریخ و زمان را به صورت Unix در می آوریم؛ سپس تاریخ را به تابع jdate می دهیم و تبدیل شده شمسی آن را دریافت می کنیم؛ مثال زیر روشن است:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
توضیح:
- چنانچه خطای Fatal error: Call to undefined function: date_default_timezone_set() on line 12 را دریافت کردید، خط مربوط به date_default_timezone_set را در لاین 12 حذف کنید یا به صورت کامنت در آورید (با افزودن // در ابتدای آن)، نمایش خطا به این دلیل است که قابلیت date_default_timezone_set تنها برای نسخه 5.1.0 به بعد در php قابل دسترس است.
- در کد بالا ما تاریخ را در متغیر now و زمان را در متغیر time داریم و اختلاف از GMT را برابر صفر قرار داده ایم (اگر زمان سرور شما بر روی GMT تنظیم شده است باید برای اختلاف 3:30 عدد 12600 و برای 4:30 عدد 16200 را قرار دهید).
- هر ساعت اختلاف از GMT برابر است با 60 دقیقه ضرب در 60 ثانیه (60*60) و نتیجه برابر است با 3600 ثانیه (یک ساعت برابر 3600 ثانیه)؛ 3:30 برابر می شود با 12600 و 4:30 برابر است با 16200 ثانیه.
- list، آرایه های حاصل از تجزیه با تابع explode را در مقادیر متغیرها ذخیره می کند.
- تابع jdate یکی از توابع مفید و اصلی فایل jdf.php است که تاریخ میلادی را به شمسی تبدیل می کند.
- نهایتا نیز متغیر jalali_date را به خروجی می دهیم.



فایل‌(های) پیوست شده
.zip   jdf.zip (اندازه: 3/97 KB / تعداد دفعات دریافت: 4)
چاپ این مطلب

  آموزش ساخت نقشه سایت (Sitemap) با php و xml
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۶:۳۳ عصر - انجمن: PHP - بدون پاسخ

یکی از روش هایی که تاثیر زیادی در معرفی هرچه بهتر سایت یا وبلاگ به موتورهای جستجو دارد، ایجاد نقشه سایت یا به اصطلاح Sitemap است، هرچند اکثر کاربران ترجیح می دهند که از تگ ul و li برای نقشه سایتشان استفاده کنند، اما آنچه پروتکل استاندارد وب توصیه می کند استفاده از نقشه سایت xml است، xml زبانی است که با پلتفرم های مختلف سازگار است و اکثر موتورهای جستجوگر معروف نیز از آن پشتیبانی می کنند و عضو sitemaps.org هستند؛ در این آموزش قصد داریم نحوه ایجاد و مدیریت یک نقشه سایت را در حد امکان به طور کامل توضیح دهیم، البته یادآور می شویم که درک این مطلب نیازمند داشتن دانش اولیه در php و mysql است.
شیوه نگارش (syntax) نقشه سایت

شیوه نگارش (syntax) یک نقشه سایت معمولی به شکل زیر است:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
توضیح:
- encoding نقشه سایت باید UTF-8 باشد.
- sitemaps.org سایت رسمی پروتکل نقشه سایت است.
- تگ urlset برای هر نقشه سایت، تنها یک بار تکرار می شود.
- لینک ها را (ترجیحا) از بالاترین سطح تا پائین ترین سطح در تگ های url مرتب کنید.
- برای صفحه نخست سایت حتما / را در پایان آدرس قرار دهید.
- از به کار بردن کاراکترهای &, ', ", > و < در آدرس لینک ها خودداری کنید و به جای آنها از جایگزین html استفاده نمائید.
ایجاد نقشه سایت داینامیک

مسلما تعداد لینک های یک سایت داینامیک به چند عدد محدود نخواهد بود لذا برای مدیریت نقشه سایتمان باید از زبان های سمت سرور و از جمله php استفاده کنیم، در کد زیر ما اطلاعات فرضی را از پایگاه داده فراخوانی می کنیم و برای هر مطلب، لینک آن را به نقشه سایتمان اضافه کرده و در پایان لینک ها را در یک فایل با نام sitemap.xml کپی می کنیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

توضیح:
- فایلی با نام sitemap.xml ترجیحا در ریشه سایت بسازید.
- در کد بالا ابتدا بعد از فراخوانی فایل یک بار با متد +w محتویات آن را پاک سازی می کنیم (این کار برای جلوگیری از تکرار لینک ها در هر بار به روزرسانی نقشه سایتمان است).
- مجدد فایل را این بار با متد a باز می کنیم و می نویسیم (فرق متد a و +w در این است که متد a به محتویات کنونی فایل خللی وارد نمی کند و در انتها کد جدید را اضافه می نماید اما متد +w فایل را خالی کرده و مجدد می نویسد).
- در مثال عنوان شده اطلاعات را از جدولی فرضی به نام posts دریافت کرده ایم و برای هر مطلب یک لینک به خروجی می دهیم.
- لینک های ما باید استاندارد html باشند و لذا استفاده از کارکترهای خاص که پیشتر گفتیم مجاز نمی باشد، می توانید از تابع htmlspecialchars در php نیز استفاده کنید.
- برای آپدیت مرتب نقشه سایت می توانید به عنوان مثال آن را در صفحه ای که مطالبتان را از آن ارسال می کنید ایمپورت کنید تا با هر بار ارسال مطلب جدید، اطلاعات به روز رسانی شوند.
استفاده از نقشه سایت به لینک های معمولی محدود نمی شود، محتویات دیگر صفحات وب از جمله تصاویر، ویدئوها، اخبار و... را نیز می توان در Sitemap گنجاند:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

علاوه بر تگ که آدرس لینک ها را در آن قرار می دهیم، از چند تگ (اختیاری) دیگر نیز می توانیم در نقشه xml سایت خود استفاده کنیم، از جمله برای نمایش تاریخ ایجاد یا به روز رسانی لینک، که دوره تغییر یک لینک را مشخص می کند و که میزان اهمیت آن را نسبت به سایر لینک ها نشان می دهد.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

توضیح:
- فرمت می تواند به صورت تاریخ ساده، یا تاریخ همراه زمان و اختلاف زمانی باشد (در مثال بالا از هر دو روش استفاده کرده ایم).
- می تواند مقادیری مثل ماهیانه (monthly)، هفتگی (weekly)، ساعت به ساعت (hourly)، روزانه (daily)، سالیانه (yearly)، همیشگی (always) و یا هرگز (never) باشد.
- میزان اهمیت لینک را مشخص می کند، این مقدار می تواند به ترتیب از کم اهمیت ترین (0.0) تا پراهمیت ترین (1.0) در نوسان باشد.

چاپ این مطلب

  ارسال پارامتر به URL و دریافت مقادیر با PHP
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۶:۲۷ عصر - انجمن: PHP - بدون پاسخ

زمانی که از ارسال پارامتر در وب صحبت می کنیم، بیشتر ذهنمان معطوف به فرم های HTML و متد POST یا GET می شود، البته این شیوه مرسوم و پرکاربردی برای ارسال داده ها از مرورگر (سمت کاربر) به یک سایت (سمت سرور) است، اما گاهی مواقع نیاز است که از این قالب سنتی پا را فراتر بنهیم و از روش های دیگری نیز استفاده کنیم، به فرض از همین استاندارد POST و GET در ارسال درخواست های آژاکسی (Ajax) نیز به سرور استفاده می شود، از طرفی کدها و توابعی در PHP وجود دارد که می توانند علاوه بر ارسال پارامترها به یک سرور (آدرس URL)، پاسخ آن را نیز دریافت کنند، امکان بالقوه ای که می تواند کاربردهای زیادی داشته باشد، از جمله مهمترین این توابع file_get_contents و cURL هستند که در ادامه آموزش به آنها خواهیم پرداخت.
تابع file_get_contents

از تابع file_get_contents در PHP برای خواند اطلاعات یک فایل یا آدرس URL استفاده می شود، به عنوان مثال:



*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *


کد بالا با ارسال یک درخواست به آدرس تعیین شده، پاسخ سرور (که صفحه اول سایت «روماک» است) را به صورت رشته متنی دریافت می کند، اکنون اگر با دستور echo از متغیر فرضی homepage خروجی بگیریم، اطلاعات دریافت شده نمایش داده می شوند.
تابع file_get_contents  پنج آرگومان به شرح زیر می پذیرد:
- آرگومان اول (filename): نام (یا آدرس) فایل یا URL.
- آرگومان دوم (use_include_path): فراخوانی فایل از دایرکتوری include_path در تنظیمات PHP.
- آرگومان سوم (context): محتوایی که به همراه درخواست ارسال می شود، این محتوا باید توسط تابع  stream_context_create (و بر اساس استانداردهای HTTP context options) ساخته شود تا معتبر باشد، تنظیمات قابل اعمال در این قسمت عبارتند از: method، header، user_agent، content، proxy، request_fulluri، follow_location، max_redirects، protocol_version، timeout و ignore_errors؛
اطلاعات بیشتر:

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

تابع file_get_contents و متد POST

تابع file_get_contents علاوه بر دریافت پاسخ یک سرور، این توانایی را دارد که در چاچوب متد POST پارامترهایی نیز به سرور مقصد ارسال نماید، همان طور که در توضیح آرگومان های آن گفته شد، این پارامترها باید در چارچوب استاندارد HTTP بوده و پیش از ارسال توسط تابع stream_context_create معتبر شوند، به این ترتیب می توان نحوه کار فرم های HTML را به راحتی شبیه سازی کرد، ضمن اینکه علاوه بر ارسال پارامترها، می توان هم زمان نتیجه درخواست را نیز دریافت کرد، به مثال زیر توجه کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
نکته: برای نمایش نتیجه دریافتی می توانید از یک دستور ساده echo استفاده کرده و از متغیر result خروجی بگیرید.

تابع cURL

یکی از قدرتمند ترین کتابخانه های مربوط به کار با پروتکل های وب در PHP، کتابخانه libcurl است که از نسخه 4.0.2 به آن افزوده شده است، البته این کتابخه به صورت پیش فرض در مفسر PHP وجود ندارد، اما به جهت کاربردی بودن، معمولا در اکثر سرورها به صورت پیش فرض فعال است، به طور ساده کتابخانه libcurl دربرگیرنده مجموعه توابعی است که کار با پروتکل های وب (از جمله HTTPS، HTTP، FTP و...) را به صورت حرفه ای و با قابلیت های زیاد ممکن می کند، به مثال زیر توجه کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همان طور که در مثال بالا مشخص است، توابع مربوط به این کتابخانه با پیشوند _curl شروع می شوند، اما توضیح مختصری درباره برخی توابع این کتابخانه:
- تابع curl_init: با دریافت یک آدرس url، نشست cURL را آغاز می کند.
- تابع curl_setopt: تنظیم پارامترهای مورد نیاز برای اجرای صحیح یک نشست cURL.
- تابع curl_exec: اجرای یک نشست cURL.
- تابع curl_close: پایان یک نشست cURL.
- تابع curl_error: آخرین خطای رخ داده در نشست را نمایش می دهد.
- تابع curl_errno: شماره خطای برگردانده شده را نمایش می دهد.
البته توابع مربوط به این کتابخانه محدود به موارد گفته شده نمی شود:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
به مثالی کاربردی توجه کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *


توضیح:
- آدرس url مقصد را در قسمت curl_init مشخص کنید.
- در تنظیمات مربوط به CURLOPT_POST، متد استفاده شده در درخواست را مشخص می کنیم، اگر مقدار 1 یا TRUE باشد، مقادیر CURLOPT_POSTFIELDS از طریق متد POST ارسال شده و پارامترهای احتمالی در آدرس URL نادیده گرفته می شوند (امکان ترکیب متد POST و GET در این حالت وجود ندارد).
- در تنظیمات قسمت CURLOPT_POSTFIELDS، پارامترها و مقادیر آنها را تعیین کنید، این پارامترها در واقع نقش نام فیلد و مقادیر آنها نقش مقدار فیلد را در یک فرم HTML بازی می کنند.
- در قسمت CURLOPT_RETURNTRANSFER، مشخص می کنیم که آیا پاسخ سرور نیز پس از ارسال درخواست دریافت شود یا خیر، اگر مقدار TRUE باشد، پاسخ به صورت رشته متنی دریافت می شود و اگر FALSE باشد، پاسخ دریافت نمی شود.
- برای تکمیل یک نشست cURL باید حتما با تابع curl_exec آن را اجرا کنیم.
- در نهایت نیز با تابع curl_close، نشست cURL را خاتمه می دهیم.
نکته: برای نمایش نتیجه دریافتی می توانید از یک دستور ساده echo استفاده کرده و از متغیر result خروجی بگیرید.

چاپ این مطلب

  نمایش قسمتی از متن و پاراگراف با php
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۶:۲۱ عصر - انجمن: PHP - بدون پاسخ

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

یکی از روش های نمایش قسمتی از متن یا پاراگراف در php، تعیین تعداد و میزان کلماتی است که قصد داریم در خروجی نشان داده شوند، برای این کار از سه تابع explode ، implode و array_splice استفاده می کنیم که در تابع زیر این سه را باهم ترکیب کرده ایم.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
برای فراخوانی تابع، کافی است پاراگراف مورد نظر را در یک متغیر تعریف و متغیر را (به عنوان آرگومان اول) به همراه تعداد کلمات مورد نظر (به عنوان آرگومان دوم) و به صورت زیر فراخوانی کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
به این صورت در خروجی، تنها 5 کلمه اول از مقادیر متغیر فرضی string را خواهیم داشت.
توضیح:
- تابع explode با دریافت یک مقدار آرگومان به عنوان جداکننده (در اینجا فضای خالی یا " ")، متن مورد نظر را به صورت آرایه ای از کلمات تبدیل می کند.
- در قسمت بعدی، تابع implode مجددا آرایه ها را تبدیل به یک رشته می کند، البته در اینجا array_splice باعث می شود که تنها بخش خاصی از متن مورد نظر به خروجی ارسال شود.
نکته: برای محاسبه تعداد کلمات موجود در آرایه، می توانید از sizeof هم استفاده کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
به این صورت می توانید برنامه خود را هوشمند تر سازید؛ به فرض اگر تعداد کلمات یک متن از مقادیر مورد نظر شما بیشتر بود، قسمت array_splice اجرا شود و یا ایده های دیگری که ممکن است به ذهنتان برسد.
نمایش قسمتی از متن به صورت شمارش حروف  

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
البته این روش برای کلمات فارسی چندان کاربردی نیست، چرا که هر حرف فارسی در تابع substr دو کاراکتر حساب می شود و از این گذشته، در این تابع گاهی مواقع کاراکترهای غیر استاندارد در انتهای متن مورد نظر به خروجی داده می شود که این موضوع به دلیل یونیکد حروف فارسی است.

نمایش قسمتی از متن و پاراگراف در MySQL

علاوه بر روش های بالا که صرفا متکی بر کدهای php و توابع آن هستند، در mysql و به هنگام پرس و جو یا همان query نیز این امکان وجود دارد که بتوانیم نتایج را محدود به تعداد کلمات خاصی کنیم، برای این کار از تابع SUBSTRING و به شکل نمونه زیر استفاده می کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در مثال بالا، با استفاده از تابع SUBSTRING در MySQL از جدول فرضی articles، ستون text کاراکترهای 1 تا 30 را انتخاب کرده ایم، البته این تابع نیز نسبت به حروف فارسی در مقایسه با حروف انگلیسی، رفتاری متفاوت دارد.

چاپ این مطلب

  ساخت فید خوان آر اس اس (RSS Feed Reader) با php
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۶:۱۶ عصر - انجمن: PHP - بدون پاسخ

ساخت فید خوان آر اس اس (RSS Feed Reader) با php

همانطور که می دانیم، فید آر اس اس (RSS Feed) یا خوراک وب، یکی از کاربردی ترین روش ها برای اطلاع از به روز رسانی یک سایت یا وبلاگ است که خیلی از کاربران ترجیح می دهند از این طریق، مطالب صفحه مورد علاقه خودشان را دنبال کنند، اما استفاده از این امکان، تنها به همین مورد محدود نمی شود، به فرض می توان لیستی از مطالب سایتها یا وبلاگ ها را به صورت لینک باکس طراحی کرد و در وبلاگ یا سایت خود به نمایش درآورد یا تازه ترین مطالب بخش های مختلف سایت یا وبلاگ را در صفحه اصلی به بازدیدکننده گان نشان داد و یا هر ایده ی دیگری که به ذهنتان می رسد؛ به همین دلیل در این مطلب قصد داریم نحوه ساخت فید خوان آر اس اس (RSS Feed Reader) را با php آموزش دهیم، به امید اینکه مفید واقع شود.

آشنایی با شیوه نگارش فید آر اس اس (RSS Feed)

قبل از اینکه به قسمت کدنویسی php بپردازیم، بد نیست با شیوه نگارش (syntax) یک فید rss آشنا شویم، چرا که نهایتا برنامه php که خواهیم نوشت، فایل xml مقصد یا همان فید آر اس اس را تجزیه تحلیل خواهد کرد.
یک فید آر اس اس معمولی، از تگ های خاصی به زبان xml استفاده می کند که در زیر نمونه آن را مشاهده می کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

توضیح:
- یک فید آر اس اس از تگ هایی کلیدی تشکیل شده که هر کدام برای نمایش محتوای خاصی کاربرد دارند، مثلا تگ title برای نمایش عناوین مطالب است یا link، آدرس لینک مطلب مورد نظر را در خود نمایش می دهد، description برای پیش نمایش مطلب و pubDate تاریخ ایجاد آن را نشان می دهد.
- کد php که در ادامه به آن اشاره خواهیم کرد، با دریافت فایل xml فید، تگ های آن را تجزیه کرده و نتایج را نمایش می دهد.
کد php فید خوان آر اس اس (RSS Feed Reader)

برای نمایش محتوای فید های آر اس اس، در سایت یا وبلاگ خود، می توانید از توابع زیر که به زبان php نوشته شده اند استفاده کنید، کافی است آدرس فید را جایگزین مقادیر پیش فرض در کد کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

توضیح:
- آدرس فید خود را در متغیر url جایگزین کنید (حتما آدرس کامل را به صورت http://www یا //:http درج کنید).
- تابع xml2array مقادیر دریافتی از فید را تجزیه کرده و آن را به صورت آریه هایی قابل استفاده در تابع دوم یعنی display_feed در می آورد.
- preg_match_all و preg_match در تابع xml2array، با جایگزینی مقادیر رشته ای با آرایه ها، امکان استفاده از آنها را در php فراهم می کنند.
- در تابع display_feed، محتویات فید مقصد را با file_get_contents دریافت می کنیم.
- در ادامه، تابع display_feed، به صورت داینامیک، تگ ها را با آرایه مقایسه کرده و مقادیر آنها را جایگزین می کند تا سرانجام نتیجه کد به صورت الگوی موجود در متغیر template در هر دور حلقه foreach به مرورگر ارسال شود.
- خروجی کد بالا در بلاکی با آی دی rss-block تولید می شود و هر آیتم، کلاس (css) با نام rss-item دارد، از این کلاس ها برای ایجاد تنظیمات و استایل css دلخواه می توانید استفاده کنید (اگر در این زمینه آشنایی ندارید، می توانید از نمونه پیش فرض، در انتهای همین صفحه استفاده کنید).
تنظیمات و استایل css قابل اعمال بر روی فید خوان php

کد بالا به صورت پیش فرض تنها لینک مطالب را خروجی می دهد، اما همانطور که پیش تر گفتیم، شما می توانید هرکدام از تگ های rss را در خروجی داشته باشید، به طور مثال توضیحات مطالب را با افزودن description به صورت #description# به متغیر template، علاوه بر لینک ها نمایش دهید، به فرض در کد زیر ما این کار را برای تاریخ و توضیحات انجام داده ایم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

برای اعمال استایل دلخواه نیز می توانید در یک کلاس css مقادیر مورد نظر خود را به کلاس های rss-block و rss-item نسبت دهید، برای مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
پیش نمایش اسکریپت فید خوان آر اس اس

نمونه کامل کد  را می توانید در زیر مشاهده کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

چاپ این مطلب

  ساخت منوی هوشمند با php و css
ارسال کننده: saberi - ۹۴/۶/۲۳، ۰۶:۰۴ عصر - انجمن: PHP - بدون پاسخ

در این آموزش می خواهیم شما را با نحوه ایجاد نوعی منوهای صفحه به صفحه یا به عبارتی، منوهای هوشمند آشنا کنیم که با تغییر صفحات سایت، لینک صفحه فعال را به صورت مشخص و متمایز از دیگر منوها نشان می دهند، احتمالا کم و بیش، نمونه هایی از این نوع را در صفحات وب مشاهده کرده اید، ولی شاید برایتان نحوه ساخت آنها تا به امروز حل نشده باقی مانده باشد، اگر اینچنین است، بد نیست با ادامه این آموزش همراه ما باشید تا با هم نگاهی داشته باشیم به نحوه ساخت منوهای هوشمند در سایت با php و css.
منظور از منوی هوشمند چیست؟

همانطور که می دانیم، در حالت معمول، منوهای وب بر اساس رفتارهای قابل ایجاد با کدهای css تنظیم می شوند که به چهار حالت a:link (حالت عادی لینک)، a:visited (حالتی که لینک دیده شده است)، a:hover (حالتی که لینک فعال است و ماوس را روی آن می بریم) و a:active (حالت لحظه ای که روی لینک کلیک می کنیم) محدود می شوند، اما اگر بخواهیم به فرض وقتی کاربر صفحه ای را انتخاب کرد، منوی مربوط به آن صفحه را متمایز از سایر منوها و به حالت انتخاب درآوریم، این روش های معمولی به تنهایی کافی نیستند، لذا باید دست به دامن کدهای سمت سرور و از جمله php شویم تا به طور داینامیک، صفحه ای که کاربر در آن قرار دارد را شناسایی کرده و کلاس متفاوتی به منوی مربوط به لینک آن صفحه در مقایسه با سایر منوها نسبت دهیم، این چیزی است که به اصطلاح می توان بر آن عنوان منوی هوشمند را نهاد.
ساخت منو با تگ ul li

قبل از هر چیز باید منوهایی در صفحه خود بسازیم که قابلیت پذیرش کلاس های css را داشته باشند، در اینجا ما از تگ های استاندارد ul و li بدین منظور استفاده کرده ایم، در زیر یک نمونه ساده را ملاحظه می کنید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
توضیح:
- همانطور که ملاحظه می کنید، ما از ترکیب کدهای php در html برای ایجاد کلاس های داینامیک استفاده کرده ایم (در ادامه خواهیم دید).
- لینک های این منوها کاملا فرضی هستند و صرفا به جهت جنبه آموزشی کار، درج شده اند، در عمل باید آنها را متناسب با سایت خود تنظیم نمائید.
تعریف استایل css برای منوها

پس از اینکه منوهای خود را به صورت ترکیب تگ های html و php ساختیم، باید حالت های فعال و غیر فعال آنها را بر اساس کلاس های css تعریف کنیم، در زیر این کار را جهت نمونه انجام داده ایم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
 
توضیح:
- اگر دقت کنید، دو کلاس با نام  menu-off و menu-on با اندکی اختلاف در کدنویسی، در استایل بالا نوشته ایم، کلاس menu-off برای زمانی است که لینک منو در حالت عادی و انتخاب نشده قرار دارد و در مقابل کلاس menu-on برای حالتی است که کاربر بر روی لینک کلیک کرده و وارد آن صفحه شده است.
- دقت کنید که تنظیم شکل ظاهری منو ها بستگی به ذوق و سلیقه خودتان دارد و مهم این است که شما با تکنیک پایه ی کار آشنا شوید، هدف از این آموزش نیز همین است.
کد php و ساخت کلاس داینامیک

اکنون که قسمت html کار را به پایان رسانده ایم، باید با کدنویسی سمت سرور، قابلیت هوشمندی به منوهای خود بدهیم، به این صورت که با شناسایی منوی انتخاب شده توسط کاربر، کلاس  menu-on را برای آن لینک تنظیم کنیم و برای سایر منوها، از کلاس menu-off استفاده نمائیم، این کار چندان پیچیده نیست، کافی است به طور ساده و با متد get پارامتر درخواستی کاربر را شناسایی کرده و متناسب با آن خروجی دهیم.
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

توضیح:
- ابتدا متغیر فرضی url را با دریافت پارامترهای درخواستی کاربر تنظیم می کنیم.
- سپس بررسی می کنیم تا ببینیم چه منویی توسط کاربر انتخاب شده است، در این حالت اگر بررسی ما درست (true) بود، کلاس آن را به صورت menu-on خروجی می دهیم و مابقی منوها را به صورت menu-off.
- همانطور که ملاحظه می کنید، تنها با دو دستور ساده if و else در php یک منوی هوشمند ساخته ایم.
کد html و php منو + پیش نمایش

در زیر کد کامل منو به صورت html و php به همراه تصویری جهت نمونه و پیش نمایش قرار داده شده است که می توانید از آن استفاده کنید.


.jpg   php-css-smart-menu-example.jpg (اندازه: 11/38 KB / تعداد دفعات دریافت: 1)

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

چاپ این مطلب