Free Web Hosting by Netfirms
Web Hosting by Netfirms | Free Domain Names by Netfirms

 

صفحه‌ي اصلي         مقاله          تازه ها         كامپيوتر          ترفند          وبلاگ          نظر شما          درباره‌ي ما          تماس با ما

صفحه 3  صفحه 2   صفحه 1

گروه بندی

شما با قرار دادن سمبلهایی كه تا كنون آموخته اید ،در داخل پرانتز ها، می توانید طرح های جدیدی را ایجاد كنید

كلاس ها

فرض كنید كه شما بخواهید مثلا طرحی ایجاد كنید كه با استفاده از چهار كاراكتر خاص متناظر شود ، در این صورت باید از كلاس ها استفاده كنید.

 متناظر كردن و جایگزینی طر ح ها

هر چند توابعereg()  وeregi() برای بررسی تناظر بین یك رشته و یك طرح مناسب می باشد ولی شما می توانید به عنوان یك گام فراتر از توابع دیگری استفاده كنید كه بعد از متناظر كردن رشته وطرح ،رشته را با یك طرح دیگر و یا یك متن خاص جایگزین کند .

Ereg_replace(“pattern ” , “replace” , “string”) ;

برای مثال یك طرح دقیق برای متناظر كردن آدر س های E_mail به صورت زیر است :

$pattrn = “^([0-9a-z]+)([0-9a-z\._]+)@([0-9a-z\.-]+)\ . ([0-9a-z]+) “ ;

كوكی ها

كوكی ها از جمله قابلیت هایی هستند كه با وجود موارد استفاده متعدد ،كمتر كسی اقدام به یادگیری آنها می كنند . قبل از ایجاد كوكی ها ،تاریخچه ای از مراجعات كاربران در سایت های وب ثبت نمی شد.

 جلسات Session

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

کوکی ها فایل ها ی کوچک را روی کامپیوتر سرویس دهنده ذخیره می کنند که مرورگر طبق در خواست سرویس دهنده آن را پس خواهد فرستاد .

در php حمایتی از جلسات به عمل نمی آمد .حمایت از جلسات توسط یک کتابخانه اسکریپتی به تام phplib بدست  آمد . توابع جلسه ای phplib در اسکریپت هایی که باید درون هر اسکریپت مورد نیاز حمایت جلسه لحاظ شود , تعریف شده بودند. پشتیبانی در php4 سریعتر و آسان تر از توابع جلسه ای phplib است .

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

 افزودن پشتیبانی جلسه به php

بسیاری از توزیع های php  با صفحات پیکر بندیی می آیند که می توانیم در آْنها مواردی را که می خواهیم در داخل ساختار php  لحاظ نماییم را انتخاب کنیم .

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

یک فرمان خاص پیکربندی استاندارد php4  که خصوصیات جلسه خاصی را فعال می کند به صورت زیر است :

$./ configure—enable-track-vars—enable-trans-sid—enable-register-globals\--[other configuration options]

 

–enable-track-vars

این دستور به php می گوید که ثبت خودکار متغیر های منتقل شده از طریق در خواست های get ویا post وهمچنین از متغیرهای ذخیره شده در کوکی ها و جلسات را فعال  کند .

 -- enable-trans-sid

این گزینه به php  امکان منتقل نمودن id جلسه را به طور شفاف به خودش می دهد .این دستور پیکربندی به ما اجازه می دهد که جلسه رااز طریق URL انتقال دهیم .در غیر این صورت ,id  جلسه بوسیله متد  getوURL بوسیله متد POST منتقل شود . و یا با استفاده از کوکی ها این کار صورت پذیرد که همیشه قابل اتکا نیست .

–enable-register-globals

این گزینه  پیکربندی به متغیر های محیطی get,post,cookie,session امکان می دهد به عنوان متغیر های عمومی ثبت شوند.

 ثبت متغیر جلسه

Boolean session_register(mixed name [, mixed…])

مااز session_register(“username”) برای ثبت یک متغیر حاوی نام login یک کاربر استفاده می کنیم .در اینجا از $username استفاده نمی کنیم ,بلکه در عوض به session_register() می گوییم تا یک متغیر با نام username را ثبت کند .هر گونه تغییری که روی متغیر های session_register اعمال می گردد , به صورت خودکار توسط php بروزرسانی می گردد و برای صفحات دیگری که از متغیرها استفاده می کنندذخیره می گردد.

 ایجاد یك كوكی و خواندن از آن

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

كوكی ها توسط تابع setcookie() ارسال می شوند :

Setcookie(“name”,”value”) ;

این دستور یك كوكی ،  دو مقدار name,value به سیستم كاربر ارسال می كند .

پروتكل های وب محدودیت ارسال حداكثر 20 كوكی ،از یك سرویس دهنده به یك كاربر را تعیین می كند برای بازیابی اطلاعات یك كوكی باید به متغیر نام كوكی اشاره كنید .این متغیر مانند متغیر های مربوط به عناصر یك فرم html ، تولید می شود برای مثال اگر یك كوكی با استفاده از كد زیر تولید شده باشد

Setcookie(“username” , “larry”) ;

شما برای بازیابی این اطلاعات باید از متغیر $username استفاده کنید.

توجه

 مقادیر یك كوكی به صورت خودكار ،در هنگام ارسال رمزگذاری می شود و همچنین در هنگام بازیابی توسط php رمزگشایی می شوند .

 افزودن پارامتر به یك كوكی
با وجود اینكه در اكثر موارد ،استفاده از دو آرگومان اول تابع setcookie() نیاز های ما را برآورده می كند ، ولی باید بدانید كه این تابع دارای چهار آرگومان است:
Setcookie(“name”,”value” ,”expiration” , “path” , “domain”, “secure”) ;

آرگومان expiration یك زمان مشخص را برای موجود بودن كوكی ،تعیین می كند . اگر مقداری برای این آرگومان مشخص نشود ، كوكی تا زمانی كه كاربر مرورگر را نبندد ،به كار خود ادامه می دهد .

آرگومانهای ”expiration” , “path”   كوكی ها را محدود به یك شاخه و یا حوزه خاص می كنند .مقدار آرگومان secure مشخص میكند كه آیا از طریق اتصالات امن HTTP  ارسال شود . مقدار1 برای این آرگومان ،استفاده از چنین اتصالی را الزامی می كند .اما مقدار0 مشخص می كند كه چنین اتصالی لازم نیست . برای مثال :

Setcookie(“name”,”value” ,”time()-+00” , “” , “”, “1”) ;

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

 پاك كردن یك كوكی

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

برای پاك كردن یك كوكی می توان از یك كوكی كه حاوی هیچ مقداری برای value نمی باشد ،استفاده كرد برای مثال برای پاك كردن یك كوكی كه توسط دستور زیر ایجاد شده است :

Setcookie(“username” , “larry”) ;

می توان از چنین دستوری استفاده كرد :

Setcookie(“username” , “ ”) ;

فایل ها و دایركتوری ها

در  phpدو روش برای ذخیره داده ها وجود دارد :استفاده از فایل ها و استفاده از پایگاه داده0

روش اول در مقابل روش دوم دارای دو  مزیت می باشد: مزیت اول این است كه شما اگر از فایل ها برای ذخیره داده استفاده كنید دیگر لازم نیست كه با پایگاه داده كار كنید ومزیت دوم این است كه دیگر لازم نیست  مبلغ اضافی  را كه میزبانهای  وب از شما برای دسترسی به پایگاه داده  در خواست می كنند  ، پرداخت كنید ولی با این حال پایگاه داده امنیت بیشتری نسبت به فایل دارد .

 مجوز های فایل

مجوزهای فایل و دایركتوری ،مشخص می كنند كه چه كسی ، چه كاری روی فایل ویا   دایركتوری می تواند انجام دهد .گزینه ها ی موجود عبارت هستند از : خواندن ،نوشتن ،واجرا . معمولا به طور پیش

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

 نوشتن بر روی یك فایل

برای نوشتن بر روی یك فایل كه در سرویس دهنده قرار دارد ،سه مرحله را باید طی كنید : در مرحله اول فایل را باز كنید ،سپس داده های خود را بر روی آن بنویسید و در آخر هم آن را ببندید .

خوشبختانه توابع پیش ساخته شده php برای انجام هر یك از این مراحل ،دارای نام واضحی می باشند :

$firstName = “data.txt” ;

filepointer =fopen($filename ,”mode”) ;

fwrite ($filepointer , “data tobe witten”)  ;

fclose ($filepointer) ;

ابتدا برای راحتی كار ،نام فایل را در یك متغیر ذخیره می كنیم .مسیر این فایل به صورت نسبی مشخص می شود . بعد از مشخص كردن فایل ،باید باید یك اشاره گر فایل در زمان باز كردن  فایل ،ایجاد كنید . مساله مهم به هنگام باز كردن فایل انتخاب یك حالت برای آن می باشد . مد چگونگی باز كردن فایل رامشخص می كند .معمولا از a+برای حا لت باز كردن استفاده می شود .در این حالت شما می توانید از فایل برای خواندن ونوشتن استفاده كنید . در جدول زیر تمام حالت ها ی ممكن مشخص می شود :

 

حالت های فایل

حالت

برای ....اجازه می دهد

R

خواندن از فایل

w

نوشتن بر روی فایل (اگر فایل موجود نباشد آن را ایجاد می كند ولی اگر موجود باشد در انتهای آن می نویسد)

A

افزودن داده های جدید به مطالب قبلی در صورت وجود فایل ،وایجاد یك فایل در صورت عدم وجود فایل

R+

خواندن از و نوشتن بر روی فایل

W+

خواندن از و نوشتن بر روی فایل

A+

خوندان از و نوشتن بر روی فایل

توجه

 با استفاده از تابع is_writeable  قبل از باز كردن فایل ، می توانید بررسی كنید كه آیا سرویس دهنده اجازه نوشتن بر روی فایل را می دهد ، یا خیر.

 خواندن از فایل ها

برای خواندن از روی فایل ها نیز همانند نوشتن بر روی فایل ها ،باید سه مرحله را طی كنید : باز كردن فایل ،خواندن فایل ، بستن آن .

$filename =”data.txt” ;

$filepointer = fopen ($filename , “mode”) ;

$Array = file ($filename) ;

fclose ($filepointer) ;

تابع فایل یكی از توابع از پیش ساخته شده php است كه تما م داده های یك فایل را می خواند و آنها را در خانه های یك آرایه قرار می دهد .محدوده هر یك از عناصر آرایه با یكی از كاراكتر ها ی خط جدید مشخص می شود.

برای مثال اگر فایل data.txt دارای دو خط باشد كه در انتهای هر خط یك كاراكتر خط جدید (/n) قرار گرفته شده باشد ، نتیجه اجرای تابع فایل file() ، یك آرایه با دو خانه خواهد بود كه در هر خانه یكی از خط های فایل قرار دارد .

 دایركتوری ها

دایركتوری در این قسمت به معنای یك بخش از دیسك سخت می باشد كه فایل ها و دایركتوریها ی دیگر را در خود ذخیره كرده  است .

دستوری كه در php برای ایجاد دایركتوری به  كارمی رود ، به این صورت می باشد :

Mk (“path” , “permissions” ) ;

پارامتر path  ،شامل نام و مسیر دایركتوری می شود . در حالی كه پارامتر permission مجوز لازم برای این دایركتوری را مشخص می كند .

كنترل upload فایل ها

در php كنترل اطلاعات ارسال شدده توسط فرم های html  بسیار ساده است . این سادگی در مورد فایل هایی كه كاربر از طریق فرم های html  ،upload می كند نیز صادق است .

برای اینكه این قابلیت راایجاد كنیم كه كاربران بتوانند از طریق فرم های html ، یك فایل را ارسال كنند ،باید دو متغیر در فرم های استاندارد اعمال كنید.

اولا دربرچس <FORM>  باید ازعبارت =”multipart/form-data ENCTYPE استفاده كنید تا بدین وسیله مشخص كنید كه به همراه داده های دیگر یك فایل نیز توسط فرم ارسال می شود.همچنین برای ایجاد یك فیلد برای مشخص كردن فایل از كدی مانند <inpute type=file name= “name” >  باید استفاده كنید .یك فایل بعد از مشخص شدن توسط كاربر ،در هنگام ارسال همراه داده های دیگر به سرویس دهنده upload می شود و شما می توانید توسط اسكریپت های php  ،این فایل را به راحتی كنترل كنید و در اختیار خود بگیرید .

یك فایل بعد از uploade شدن در یك دایركتوری به صورت موقت ،جای  می گیرد .اولین كاری كه شما باید بكنید این است كه آن را به صورت دایم در یك دایركتوری دیگر ذخیره كنید .

برای كپی كردن یك فایل،از یك مكان به مكان دیگر ،از تابع copy() استفاده می شود :

Copy( “sourceName” , “DestinationName”) ;

سپس با استفاده از تابع unlink() ،باید نسخه موقت این فایل را پاك كرد .

 تغییر نام و حذف فایل و دایركتوری ها

در php توابع از پیش ساخته شده ای برای تغییر نام و پاك كردن فایل ها و یا دایركتوریها وجود دارد  همچنین تابعی نیز برای نمایش فایل ها ی یك دایركتوری  در نظر گرفته شده است .

تابعی كه برای تغییر نام فایل ها و یا دایركتوریها به كار می رود ، تابع rename() می باشد از این تابع به صورت زیر استفاده می شود:

Rename(“ old name” , “naw name” ) ;

تابع دیگر ،تابع filesize() است كه برای مشخص كردن اندازه یك فایل بر حسب بایت به كار می رود . برای مثال:

$number = filesize(“filename”) ;

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

بعد از باز كردن دایركتوری ،تمام نام فایل ها را می خوانیم و سپس دایركتوری را می بندیم .

$handle =opendir (“path”) ;

readdir ($handle) ;

closedir ($handle) ;

ازآنجایی كه  تابع readdir() ،هر بار ، تنها یك نام فایل را می خواند شما برای دریافت تمام نام فایل   ها   ، باید این تابع را در داخل یك حلقه قرار دهید .      While(readdir ($handle) ) {

Statements;

 String Getcwd( )

می توان دایرکتوری فعلی را با استفاده از تابع بالا به دست  آورد .این تابع دایرکتوری فعلی را برمی گرداند .

Int opendir()

برای خواندن محتویات یک دایرکتوری را باز کنید .تابع بالا دایرکتوری مشخص شده بوسیله آرگومان path را باز می کند .این تابع یک اداره کننده دایرکتوری را در صورت موفقیت باز می گرداند .که می تواند برای اشاره به دایرکتوری باز شده در فراخوانی های بعدی تابع به کار رود .

String  readdir()

هنگامی که دایرکتوری را باز کردید می توانید محتویات آن را با تابع readdir بخوانید . این تابع نام ورودی بعدی در دایرکتوری را بر می گرداند .

 استفاده از include و require

برای استفاده یک صفحه ,از کد صفحه دیگر از توابع  include()وrequire()  استفاده می شود :

Include(“file.php”) ;

Require(“file.php”) ;

این  دوتابع همانند یکدیگر عمل می کنند , با این تفاوت که تابع require() اگر در هر جای برنامه استفاده شود , حتما فراخوانی می شود , حتی اگر داخل یک ساختار شرطی با شرط همیشه نادرست قرار گیرد .اما تابع include() مانند توابع دیگر فراخوانی می شود . بنابر این از تابع require() زمانی استفاده می شود که حتما بخواهیم فایل را به صفحه الحاق کنیم و از تابع include زمانی استفاده می شود , که الحاق به شرایطی بستگی داشته باشد .

هر یک از دو تابع reqire() و include() فایل ذکر شده را به فایل اصلی , الحاق شده به صورت html  در نظر گرفته می شود , مگر اینکه داخل برچسب های php  قرار داده می شود .مگر اینکه داخل برچسب های php  قرار داده شده باشند . بعد از فراخوانی هر یک از این توابع متغیر های هر یک از فایل ها در داخل فایل دیگر نیز قابل دسترسی هستند .

 استفاده از عنوانهای http

یک عنوان Hypertxet Transfer   گیرنده وسرویس دهنده به کار می رود . این اطلاعات معمولا به صورت html  می باشند .به همین دلیل است که آدر س های صفحات وب با http:\ آغاز می شوند

مبحث عنوان های http  بسیار گسترد است و کاربرد های زیادی برای آن در نظر گرفته می شود .یکی از معمولی ترین کاربرد های عنوان های HTTP هدایت کاربر از یک صفحه به صفحه دیگر می باشد .

در php  برای بکار بردن عنوانها از تابع header() استفاده می شود .

برای هدایت مرورگر کاربر , در php  از این کداستفاده می شود :

Header(“location:page.php”) ;

شما هخچنین می توانید برای ارسال کوکی ها از تابع header استفاده کنید .

نکته حائز اهمیت در مورد تابع header این است که این تابع ,همانند تابع setcookie() باید قبل از ارسال هر گونه اطلاعاتی از صفحه به مرورگر کاربر فراخوانی شود .

String getcwd()

می توان دایرکتوری فعلی را با استفاده از تابع بالا به دست آورد .این تابع دایرکتوری فعلی را برمی گرداند .

Int opendir()

برای خواندن محتویات یک دایرکتوری را باز کنید .تابع بالا دایرکتوری مشخص شده بوسیله آرگومان path را باز می کند .این تابع یک اداره کننده دایرکتوری را در صورت موفقیت باز می گرداند که می تواند برای اشاره به دایرکتوری باز شده در فراخوانی های بعدی تابع به کار رود .

String  readdir()

هنگامی که دایرکتوری را باز کردید می توانید محتویات آن را با تابع readdir بخوانید .این تابع نام ورودی بعدی در دایرکتوری را بر می گرداند.

صفحه‌ي قبل

 

Copyright 2004 - 2006 Iman Niki Borujeny . All rights reserved .