کامپیوتر و IT و اینترنتعلوم مهندسی

فصل ششم درس برنامه نویسی وب

صفحه 1:
فصل: ششم(اشیای داده) ورد ی استاد: دانشگاه: ارائه دهندگان:

صفحه 2:
امنیت و کارایی- هنكام استفاده از يايكاه هاى داده ممكن است ساخت يك رشته |50 در رديف قوانين SoD ee Eee Tee Ente ‏ا‎ Le Dies) اين رديف ها حتى نبايد از نحوه ذخيره سازى اطلاعات (فايل متنى» رن ذخیره شده مطلع باشند هرگونه اطلاعاتی که ذخیره می‌شوند باید از ردیف قوانین تجاری به ردیف داده‌ها ارسال شوند. ‎ner res tree eey)‏ ۳ 020 به اين ترتیب ردیف رابط و ردیف قوانین تجاری از هرگونه تغییرات در نوع متدهای ذخیره سازی( فایل ‎ore y ile ey Sie > rere ele ro Comy cree ele | Mery‏ ل دريافتى) و آيتم هايى كه از رديف داده بركردانده شده اند بايد در طول حيات برنامه بدون تغيير باقى بمانند. تا زمانی که این موارد بدون بمانند هنكامى كه تغييراتى در رديف داده روى مىدهد در ساير رديف ها نبايد باز به اعمال تغييرات وجود داشته باشد. ‎One Tee)‏ ا ا ‎eee hte See‏ این کار باعث بروز یک حفره امنیتی بزرگ در برنامه می‌شود . 0 ole ws BSS Eko By ees eee (| eset ep Teles DE e lst ee eae Sey ERIS nes ee Teele Shee feo Lee Nee eee eee ores oe ie SEM) a Pana برای یک دستر 50۱ ۷۷۲۱۴86 نیز ایده بدی است زیرا ممکن است به هکر‌ها اجازه دهد هر ترکیبی از داده ها را در پایگاه داده حذف کنند یا تغییر ۳

صفحه 3:
BP MOS TO ‏ا ل ا ا‎ EC EES ioe Coe] ‏حذف اطلاعات است‎ 0 Ese Pe SS Tee Tey es Eee rei Bye for Ce Tes PE Case he FUnts TPO PTC CS UTM ES EPPO ee LS 7 PSB eee re Ny Ube Mose pa wes eee es] rte prot emer ies eset 0 700 نگیداری و اعمال تغییرات در اطلاعات در حافظه سرور » به جای مکان تخیره سازی بسیار کارآمدتر است . ذخیره اطلاعات ؛ فقط ‎ee Priel perspec is Te‏ اا 1[ اا ‎POPES eee Pers ee penta an Core PESTS TIS > ies‏ ‎(Ge pres es Uwe ere ey cee ice pt fo eee Sree‏ PPOLMLDTES MES TCTs Cote eB le aM ‏ا‎ Sige ere pe ‏ا‎ ere ‏ای خودکار فراهم می کند . با فرض اینکه یک نمونه از کلاس دادهتنها در صورت وجود الزام برای به روزرسانی اطلاعات ؛ ایجاد‎ . خواهد شد سازنده کلاس می تواند برای بازیابی اطلاعات از مخزن ذخیره سازی و قرار دادن آن در حافظه سرور استفاده کند هنگامی که شی داده 1 ۱ اطلاعات از حافظه به مخزن ذخیره سازی به کار برد

صفحه 4:
class dog dita 1 finction __construd { Samlile =file_ge_contents(get_dog_application( datasterage")), simpleanl loed_string@zml file) ruy)$onlstang, print_nSanzy به فراهم سازى اطلاعات سودمند از يك فايل 1/الابسيار نزديك مى شود . مثد ‎aa‏ 0186145©_غ0©6_ه11 يك فايل متنى ا ا ا ل 22 اين نمونه سازند را باز میکند . محتویات را درون یک رشته قرار می دهد و فایل را می ‎TOL Ey‏ و نب 9 دا Cee تلاش مى كند تا داده 1/11ا را به يك أرايه تبديل كند . اين دستور (/اق2.1) تلاش مى كند تا از تبديل نوع استفاده كند . ‎eve easyer atl) ee‏ 586

صفحه 5:
<?xml version="1.0" <dogs> <dog> ame>Woik/dog_name> eight>12</dog_weight> <dog_coler>Yellow</dog_coler> <dog_breet>Lab</dog_breed> <idog> <dog> <dog_name>San</dog_name> <dog_weight>10</dog_weight> <dog_oolor>Brown</dog_color> <dog_breed>Lab</dog_breed> </dog> </dogs> Amay (dog] => Array (0] => Simp leXMLElement Odjet (do; [dog_weight] => 12 [dog coler] => Yellow [dog breed] => Lab )[1] => SimpleXMLElement Cbject ((dog_name] => Sam [dog weight] => 10 [dog_coler] => Brown [dog_breed] =>Leb

صفحه 6:
cless dog dita finction __constrid) { Sxmlile =file_get_contents(get_dog applicationt datastorag = simpleanl loed_sinng@ynléle, json_moodeanisinng), print_r(Sjson), } } } {'dog* ((*dog_ name’ Wolf," dog_weight! 'dog_coler*:*Yellow’,'dog_breadt * "},{*dog_name' ,"dog_weight?:*10"," dog color’ *Brown','dog_breed* “Lab* ([( اخت 150101 تغيير مى دهد . شما مى تو ا ا 00 ls sslPHP ‏در‎ json_encode a:. Aa Se) 0 eae

صفحه 7:
class dog dita findion _ const) { 891210 = fle_get_contents(get_dog_application(* datastornge')) $xmlstring= simplex! load_string@emnlfile), $)son=json_encode$xmlstring), $dogs_aray = json_deoode! print_xSdogs_amay), } Amy (dog) = Amy ( (0] => Array (dog_name] => Wo [dog_weight] => 12[deg_color] => Yellow (dog, breed] => La ]1[ << Angy (dog_name] => San [dog weight] => 10 [dog color] => Brown [dog_breed] => Lib ))) همانگنه که می توانید بینی. دیگر تریبی از آرایه ها وشیا و و و ا 0 eee Dene 52200000000 )با تلم ستون ارجاع “7 از کلمات کلیدی ۱ 1 ere ues ote eer ure eres een on ‎lM RR em el MCD)‏ اين سطرها و ستون هارا مى توان با استفاده از برخی تکنیک هایی که در فصل های پ ‎ ‎1010101 1 0 ‎ ‏ونین تجاری) ۰ اطلاعات را به مكان ذخيره سازى در مخرب باز خواهيد كردا ‎

صفحه 8:
private $dogs_aray =s:rayO, // deSned as an emply array initially fimction __constructO fran file = file_get_contentsg¢e_dog_applicationt’datastorage ». Sanlsinng= smplecnl load_stangG-anlsle, $json =jsen_moode(anisinnp, Sthis->dogs arnay =json_deodejson, TRUE), 2 finction __destructO < Sanlstnng = "<?xml vasion="1_ 0" encoding— UT F-S*?>", Sonlsinng =*\n<degsin*, Sxeeach Cthis->dogs_armay as $dogs=>$dogs_value ¢ ‎dogs value as Sdog => $dog_value)‏ ل دم € ‎Sumlstring .="<Sdogs>\n*,‏ ‎Breach (Sdog_value az $oclumn => $oclurmn_valuc)‏ < ‎Sumisting =*<Scolumn>* Sdog_value[$colurm]‏ ‎> ‎Sxmistring .=*</$dogs>\n". ‎“</Scolumn>\n*, ‎

صفحه 9:
‎EE STE oer es)‏ ا ا ا ل ا ل ل ا ا ا ا اا ا ا ااا ا 0 اولین حلقه ۴0/۴۸۲۷ برای عبور از اولین آرایه (005 )به کار گرفته می شود . ۱ ‎۳ 03 1=) Clg eae oe eee) ‏سومین حلقه؛ نام ستون ها را بازیابی می کند (از 201111/۱!6) و آنها را درون تگهای ۱۱/1 قرار می دهد . ‎ene 6S Cnr eee Ste Eee TO) KO UI CEES Cee‏ لل ا ل ا همان تك ها و ساختارهاى مشابه تك ها و ساختارهاى موجود در فايل 1/11ا را فراهم مى كند . ‏باشید که هر خط شامل یک کاراکتر خط جدید ( (1برای نمایش خطوط مختلف موجود در فایل است . ‎ ‎oes ‎ETT eee Te eee te SE eS SE es ESE Te ‏ا‎ ‎۱0 A VIMCHIN CC WEE See een rer eee om (VON ‏ل ل‎ IRCHE Ce Cee cay Fe) me) C] = LOL WY Vs (ONO) \ omg | =i OOO) \ N= DERM oe eos eS ‏فايل؛ اقدام به استفاده‎ at ‎ ‎

صفحه 10:
تجزیه 261۷/1 بیِ لازم است یک 0 4) | pce FRE Co re ene pe NTE ‏ل را‎ OUT Suey ea oer ST Perea QU aay =arayQ, defined as on empty aray initially » ntanal_arorstrie), et_contents(get_dog_application(' datastorege') load_stringanlale), Failed loading XML (ibztnl get_evers) 25 Serer) { SareStnng =Saror->message * throw new Exception(SererString), }

صفحه 11:
‎ne eerie‏ ا لا ا ا ا ا ل ‏.متد ( عدءع) 1015ع_اهورقغ10_ع5نا:01 6 ]اين خطاها را برطرف مى كند. رن ‎VE) eer ee ge ee ean‏ ا ا 1 ‎eae ah Lece eS ee eee MOM ales alee‏ استفاده می کند . هنگامی که تمام خطاها گردآوری شدند » با ارسال 6۳۳0۳5۲۳۱۳95 استثنایی آشکار خواهد شد . ‏همان طور که در فصل ۵ نشان داده شده برنامه 1۳66۳۲066_ 409 این خطا را دریافت خواهد کرد و آن را ارسال می کند . ‏اين مثال ۰ یک فرض نامناسب را در نظر می گیرد)که مثل را ساده می کند( . این مثال فرض را بر اين می گذارد که 6۲۲۵۲5۴95از ‎is POTENT erCan MIS e hice Ir ee bah Ree ee I‏ 1 ‏515 ازاز اين اندازه فراتر رود . اين محدوديت را مى توان در قابل ييكربندى 5118 تنظيم كرد. ‎00 ‏ال ا ا‎ E EE ‏انجمنی چند بعدی را تنظیم کنند . اجازه دهید م ا ا ل ل ل آن را دیده‎ ul ‏در برنامه ۲6۵06۲۲۵۲۱09 (در مثال ۵-۸) متد 061616۳660۲۵ را ساختید . این متد برای آرایه های چند بعدی با قاعده ( منظم ) به کار اكرفته شد . ‎ ‎ ‎

صفحه 12:
) (مداهت_ دوهی breach Sdogs Solum: { $4ogs_value{$J][Scolumn] =$dogs_valuel$J + 1[Scolumn], ‎ced‏ وات ‎dogs array («size$ + ‎ ‎ ‏ها می توانند از اشاره گر ‎ ‎ ‎ ‏كه قراراست حذف شوند[ ةمع 10/06 9 0ع )

صفحه 13:
BPMs (ole (IB ‏ا‎ eee sen) dV |B cise (ole pea eee yep poke ee Eee ee) PNB ABN ‏ا‎ Pees ewe Prey Ne olor BY ole -1- (api me ‏ما‎ SRN SOB Ee ESE IS See SY ee (ole ene, mee nee ooo: ‏ا ا ل‎ RECS ECR ETSY ۱ ( يك ارايه با مقاديرى در ی ای یی ۱ ‎ees ee‏ م م ا بت نس ياك ‏متد دامع براى تعيين اندازه أرايه 009 استفاده مى كند . متد 051ا0عاندازه أرايه را برمى كرداند و نه آخرين موقعيت آرايه . بنابراين» شمارنده حلقه بايد كمتر از ‏(<) اندازه ای که از 0۱001 برگردانده شده است باشد . یک واحد از اين مقدار کم میشود . آخرین مکان آرایه , دیگر مورد نیاز نخواهد بود که همین امر باعث کاهش ‏تعداد حلقه های مورد نیاز به اندازه یک واحد می شود ‏در مثال فصل ۵ یک حلقه 0۲برای واکی در ستون از سطر و قرار دادن آن در سطر بالا به کار گزفته میشود . با یک آرایه انجمنی ۰ از یک حلقه 0۳636] استفاده می کنید ۰ پارامتر 0۱0000۳5 شامل نام ستون است ( [8 حاوی شمارء سطر است ) تا مقادیر موجود در ستون ها را در مکان های مناسب قرار دهد . پس از ‎ern ae oe [ree om ee ep kere Pena e eek ee Pees) ee Tene EC‏ 1۱ ‎Preven Me IS es PCPS or ee ee Sede nee ale ote ‏تقريبا در هر زبان برنامه نويسى مى توان از منطقى مشابه‎ Web mee oer bee Need | ere ee Se Peres Ene eke ‏ا‎ nee S mee) ee eee Lee eet bees en. ee ee ya eee cee ee ee rer ey ‎Bese ern feo eee en eee n eS See eee eo eee are ee Is) er need eee eee eee oe See he er elec SR eee cea LN ۱ Se ee e191 eee ee eet ee ie hee he ne eee ‎ ‎ ‎

صفحه 14:
finction readR ‏ا وم‎ iffrecordNumb ‏"ىق‎ ‎retum shis~ dogs ray doe't retum $his>dogs_array["dog"][SreconiNumb ay]; ۳ همان گونه که مشاهده می 0 تنسبت به متد 015013۷8660۲05 این متد به برنامه فراخوانی کننده واگذار می شو )در صورت نیاز ( ۰ به خاطر ی می دهد » نه در ردیف داده ها ( ردیف قوانین تجاری ) . شید که نمایش و قالب دهی خروجی در ازه می دهد تمام رکوردها یا رکو ROR Ce herr ony yee es ‏رکورد خاص مورد نظر) چه با تمام سطرها یک آرایه را برمی گرداند . هنگامی که تمام سطر‌ها برگردانده میشو‎ ( | 0 er eh ES Secs Sr BTC) eer ecru nee VI Ba Be متد 5۵1660۲05 یک آرایه انجمنی را با نام اندیس هایی که قبلا اشاره شد» می 5 ها براى فايل ‎never‏ ا ل rr SA aa

صفحه 15:
finction insetReconis(Srecords_avzy) { Sdogs_may_size = coumt(Sthis->dogs_arayl"dog"D, fex($I=0,$1< count $reccrds_arey), $144) { Sthis->dogs_anay[*dog' I'Sdogs_anay size + SI] =$reconds_mrzy[S], فرآيند ساخت ‎cua‏ 000 بااستفاده از تقليع ‎SJSON‏ ‎De ih‏ گر غابل 2۲ ,009_012 تن ‎Pale‏ ال بر ار Re oe Pe ean) ار ضور کنونی ل ل رك ا ا ا ات ل ا ا . متد ساختار 101 براى تعيير ‎ge Mar eas‏ 0 ۳ ارايه را توليد مى ‎PROCS eS AEN e ere:‏ ی ولرد کردن یک رکو ار قرار PPE Wir a . از آنجایی که ند ۱۳۳۳ ‏ل ار سر‎ i

صفحه 16:
۰ ۳ i essary ‏از برای قرار دادن یک رکورد ) . در تکرار بعدی در حلقه رکورد دوم در 2701/5 5660805 ( 8اتوسط حلقه فزایش یافته است)‎ ‏ما 7 ج اولین رکورد است.‎ که دیگر رکوردی در ۲۵60۲053۳۳۵۷5 باقی نمانده باشد . به هر حال ۰ این متد نیز .مانى كه به عنوان يك آرايه انجمنى ارسال شود ) . اين علقه تنها يك بار أرسال خوافه كن ‎cs ain cn er‏ ‎eer‏ Se ers ey حلقه تا زمانی آذآمه می fiction updateReconds(Srecords_ssrzy) foewech (Srecords_amyy a: Srecerds=>drecerts valu) { foreach Greconts value as Srecord => Srecord_value) { Sthis->dogs_aray{'dog'|(Srecords) = Srecerds,aray[ records) ا که به ازاء ی هر موقعیت موجود دز ارایه دازای مقداز ‎eecn‏ د Re ee eer rence اين متدها را مختصراً بررسى تنها دو تگ 6وجود دارد که در این متدها گنجانده شده اند(009,0095) ,حتی این دو تگ را نیز می توان از فایل 1/(بازیابی کرد . در هر صورت » این فرض که 001000001 0001 (Uae eer) | (dog_bread , dog color , dog_weight , dog_name) S22 s4S ali 4815 اعمال کرد.تگ ها

صفحه 17:
موه ‎intemal‏ م۳ SxmiDoc= new DOMDocumentO; ]رس تاه وود وه لک ‎existe‏ 6۱ SemiDoe-lond¢eSdog applcatlms.xml") SsearchNode= SxrnlDoc> geUFlanautsByTagNamet type); Foremdy(SsearciNode as SsearehNode) ‘SvaluelD = SvearchNode> geeatributecID), ifgvahuelD—"dalastorage’) ‘Sxanll.ocation = SsearchNode- >gaElementsByPagName("locstian” مادام لو ‎‘Sthis>dog. dat‏ وود 0 cls {throw new Exception¢’ Dogapplicatians xml file missing or corrup le_get_contents(hisodog_data zl), Snnlstnng=sinplemml:load_stnng(Sumlile, 0 fils) { ScrerStnng = "Failed loading XML", EreochGibranl get_creesQ) as Sac) { ] Serr >imessage wow new ExceptienSaversting), } S)son=json_encode($mmistring), ‏رده تیدا دح‎ = json devodijson, TRUE), ) مسمسلا منتفدة

صفحه 18:
مثال ۶-۱ Dog_data.php Sxmlstring .="in<dogs>\n’, ‏بو‎ value) Semlstiag =*<$dog>\n', zreach ($40g value 23 $20 ‘Soohunn_value) smn". $dog_value(Scoluma) *</Scoluma>', تاه dogs>in, s->dog_ dete_xml, Sxmlstning) fiction deleteReccrd(SrecerdNumber) 1 ] (this >dogs_aney as Sdogs=> dogs value) { ‏لک هلق‎ > count(Sdcgs_valud) fireach (Sdogs_valud $1] ‏ده‎ Scolum 4 Sdogs_ valudSJ[Scolumn] = Sdogs_y ‏ل‎ ‎1 unset (Sdogs_valuefccunt(Sdogs_value) -1D), ) fiction readR eoords(Srecoré Number)

صفحه 19:
SecerDenber retum Shie->dogs_aray{tdog") مثال ۶-۱ else { Dog_data.php is->dogs_anay( dog" ISreoord ener), ‏ره دننامه هنم‎ 1 ۳۳۴ ‏تنها ل ل 0 ار ل‎ Stes are ey ops ey se +] = Sees are Rot ten error ne mse: me Teton 1 ‏و نام فایل ]20 که حاوی داده های مربوط به است اضافه ميشود.‎ finction updateRecerds(trecords_aray) fereach (records aay as Srecerd fread) Giecords_yalue 25 Srecord { Sthis->dogs_aray{"dog'I[Secords] = Srecords_array{srecords}, } بل 009-0313۰101

صفحه 20:
<?php | php*), Stester =new dog_datzO, Sreconds_aray = ۳ مثال ۶-۲ testdata.php Srecords_aray ale Ges ->reaRecords(* ALL’ Sreca 1=>Amy ree "dog. breed" ester >updteR ecords(Sreconds_arsy), t_r Glester->readRecords(ALL? مثال2- برخی از سناریوهای ممکن را با ستفده از کلاس 618۰ _009تست و بررسی می کند. توجه داشته باك ‎re ween‏ ا ‎eens Sens‏ زر ‏بد كه آخرين خط اين كد اقدام به ‎ ‎ ‏فراخوانی مخرب(ذخیره سازی داد ‎ ‏500 ‏شی میشود . ‏ا 70 ‎ep fer seieteereferece Ep I‏ ل ‎Be Jone ere = ee Le TEES SE ecresSeD)

صفحه 21:
JSON ol اجازه دهید به مطالب قبلی باز هنگام استفاده از سا ۳1[ مو توانايى خوائدن و نوشتن داده هاى 15010 را بررسى كن ا ا ا ا ‎Ree Ree‏ ‎ee Pe‏ ا ل ا ‎ ‎$json= file_get_conts Rau ->dog_data_JSON), ‎1 on_decode($}son,T RUE), if (Sthis>dogs_avay null && json_last_arer) I= JSON_ERROR_NONE) { ‎throw new Exception? JSON aror- *. json_lsst_aror_msg0), ‎json 06 33 ‎001 1171-7 ‎Perr errr ctr rete) ‎

صفحه 22:
داده های 5077[ >dogs_aray), >dog_ data JSON, $json), aS De hes ties nase s Tella y متد ©7©00ع_خ]ووزداده هاى آرايه نجمتى را به قالب 50110[ تبديل مى كند . سيس متد 017661185©_نام_18/ اطلاعات را در مكان مناسب فايل [501إقرار مى دهد .(000_0363_[50895<-5أط) و ‎Bee ree‏ توجه : یک نمونه برنامه با استفاده از داده های 501[ در وب سایت کتاب تحت فصل ۶ موجود است. JSON} 7 ۱ ۱ ee eee eee eee

صفحه 23:
یادی را صرف یا 1 1 ۲۳۷5۵۲ از زمان انتشار 0/005,5]حذف شده است, توصیه میشود که از /۲۱۷50با !۵010-۲۳۷5۵ استفاده شود mysqli =mnysqli_oonnect(Ssaver, $db_usamane, $db_password, Sdstabase), (mysqli_conned_amoQ) rod ‏لايك‎ ‎throw new Exceplicn¢ MySQL connedion avor * mysqli_connect_arort Sac Benne $sql="SELECT * FROM Dogs", Sresult=mysqli_quey(Soon, $59), Té$result—null) throw new Exceplion(’No records retneved fom Database"), Sthis>dogs_aray =mysqli_ftch_sssocSres mnysqli_fee_result(sves mysqli_closeCfeen),

صفحه 24:
ى از كدهاى مورد نياز براى مند سازنده مربوط به برقرارى اتصال ‎١‏ بازبابى و قطع ارتباط با بايكاه داده است . ‎ti mysqli_connect x.‏ PSC AMEE | 8-15-1100) 60 6:9 PREPS ‏ل ا ا را ها‎ PSO ‏اال بایگاه داده استفاده میکند.‎ ۱۳۳ ‏را ا زا‎ CA] اکر میج خطایی موجودنباشد .یک عبارت ( [۹56) 58167 560 بای بازیابی تسام رکوردهاز جدول 10095 در پایگه ده به کار گرفته می 0 0 ‏ا ل ا ا ل 0 0 ا‎ Ey CC ‏داده ها رااز 9]الا5ع]آزاد مى كند.‎ mysqli_free_result =,Le 50 0 0 ‏ل ا‎ || Me (es=y ava 1 ‏ا ا‎ Oe od

صفحه 25:
Srysqli =new mysqli(Ssever, $db_usemame, $4b_passvond, Sdetabase), if (mysqli->conned_ame) { : 12 Senysql:->quey(DROP TABLE IF EXISTS Dogs") || (Smysql:->quey¢ CREATET ABLE IF NOT EXISTS Dogs (dog_1d CHAR(4), dog_name CHAR dog_weight CHAR(G), dog_color CHAR(5), dog_breed CHARGS)') ) { throw new Exception('Dog table cantt beawated or deleted Emer: " . ‏,فده < نلودريدة‎ 1 foreach (Stius->dogs_amay a5 ‏(#نالهب_عومل؟<سمومل5‎ ) Ereach Gdegs_value as $dog => Sdog_value) { throw new Exexption(’MySQL connedion eror* Snysqli->eonnect_ercx), Silog_id= dog ‏وم تن‎ one= Sop value doy. sare) og valuel*dog_wesght) ‏و عادو‎ Siog_breal = $og valud'dog ‏ند‎ ( ‏تروق‎ >queyC INSERT INTO Dogs(dog id, dog. name ‏اوم اجافس يو‎ dog breed) VALUES (Stog_s4, ‘Sdog_name’, 'Sdog_ weight, ‏وملو:‎ ‎'$éog_breed’y)) ‎2 ‎throw new Exception( Dog Tableinset Exror * Smysqli-

صفحه 26:
داده های ۷7[ ‎SOL‏ متد مخرب تلاش میکند تا به پایگاه داده متصل شود . ا ل الا ا و ا ا 0 فيلدهاى مورد نياز ايجاد مى كند ( توجه: احتمالا روش بهتر تغيير نام جدول قبلى و ايجاد يك 1 ‏م ا‎ Ie ee) ; dog_coler , $dog_waight , $dog_name$ }!|, ,slis SQL INSERT j=. ‏از جدول وارد مى كند‎ (alo ل ا 00 را یک برنامه تموئه در وب سایت کتاب تحت فصل ۶ موجود است . نکته برنامه نویسی - سرور 06 باید به درستی پیکر بندی شود و ب1]7860 باید به درستی نصب شود تا مابه | اجرآ شود فپ ۱۳ ۳ ‏ا اا ا ل‎ Solo MmIVout-TudC 255 ن تموته پایگاه داده ( یک نموته

صفحه 27:
پشتیبان گیری و بازیابی findion proces (Schange Type, $records_arzy) { switch(Schange Type) { \ شكلى بيش حالى ت بايد بيش از ذخيره ‎case "Dele‏ وت از ند ؛ بهعلاوه اید رای رویاروبی ‎Gis >eeleleRecorGreerds ary),‏ مال که م ‎ie ۰ mre ene‏ case "Insat" ee ‘Sthis->insertR econds(Sreoords_arzy), 7 9 case "Update! his >updat ‏م كلسم سمه‎ 1۳۳ ‎Gas)‏ سر “رق روط جه دا د ‎SthisreadReoonds(Srecords ary), (6-1 Je) degda‏ 5 لی ایجاد خواه ‎Brats Process‏ ‎ ‎ ‏9 الق بعديت ‎throw new Exception Invalid XML fle change type Schange Typ‏ ‎

صفحه 28:
ال تمام درخواست ها براى اعمال قغبیر ات از ابن مت ارسال خر اهند شد . این متد یک نوع تغییر [ ‎ee‏ ۱ ‎array + » ESE a G9) Sec eme el 1c)‏ ا ا ال ا ا ‎STG‏ ‏ار لنچ ‎EOWeETN ED NS IB IB Peecep‏ اجازه مى دهد فراخوانى يك متد ‎lees‏ را بپذیرد) که یکی از الزامات یک زبان شی گراست ( در کنار قابلیت های کپسوله سازی دا ا ل ا سس« اگر یک نوع نامعتبر ارسال شود » ل ار امثیت و کارایی- در یک محیط پویا و «زنده » » ارسال « کد » به اين نوع متدها به جای روش استفاده از مقداری که خواهد بود . ER Pe ‏ل ا ا م ا‎ one) ‏که کدها را بررسی کند تا متد موردنظر برای ف راخوانی را تعیین کند‎ با لا ۱

صفحه 29:
پشتیبان گیری و بازیابی ال شد زیرا مورد نیاز متد 61666 بو هو ناو )۱95۵ , آرای عد 010665518866005 مر 01000 تس "| معط ۰۱ a:1.{1.0,a4 {s 8 "dog nane',s 7 "Spet!,s ‏موه 9۰و‎

صفحه 30:
ک رشته مرتب شده(86۳151126) را ) (8۱69_ ۱09 6۱96 .\dog_application data كه از متد ©0318 و نا استفاده از متد ©056/7131126نا 07142015042510 | Inset| 8:1:41:0,3:4:45 ‏تقصهول":8‎ ‎"dog_weight",s 2" 19";s:9:* dog_color*;s'5"Green' “dog_weight",s:2."19;s:9."dog_color*,s:5."Green*,s:9."dog_breed',s:3. 7142015042510 | Delete | 1

صفحه 31:
داده هاى موجود در يك رشته مرتب شده(56]131126) را مى توان با استفاذه آز متد 5611311260] لابه يك قالب آرايه ( يك قلب ديكر ) بركردائد ‎pee eeS‏ ا الل ل ا ا ری( لك RCS AES oyu ‏ار‎ سپس رشته ساخته شده ۰ با استفاده از متد 2۳۳0۲109 به این قابل ثبت ارسال مشود . محتویات این قابل ثبت مشابه این خواهد بود . اين قالب ‎٠‏ تمام اطلاعات مورد نياز براق كمك به فرايند بازيابى را فراهم مى كنذ ‎١‏ اكر نسخه كنونى قابل داذه 009 مخدوش شود .قابل ثبت تغييرلت را و[ 033 مورد نياز است . افزودن چند خط کد در مخرب است

صفحه 32:
مثال ۶-۲ و ‎private $dogs_aray =array0, //defined as an empty array initially‏ ‎Dog_data.php‏ pawvate $dog_deta_2anl prwvate Shrange ‏ار وه‎ ‏متمد‎ construct { ibxml use_mntemal_erers(true), SmlDoc = new DOMDoaiment0, if Gle_enists( e5dog_opplications xml") ){ ‘SemlDoc>loadeSdog_applicaticas xml), SsearchNode = SemIDoc>gaElementsByT agNimet type" ); frachSseachNode as SseachNode )( SvaluelD =$searchNode-> getAlinbuteCD9, iRSvalueD —" datastorage’) { SnmlLocation = SsemchNode- >gaElementsByT agNemet location’ ), Sthis>dog_deta_xml = SmnlLocai >nedeValue, real, dise { throw new Exception¢ Dog applications aml file missing or commupt* ‘Senile = Gle_get_contents(Silus->dog_data_san}), Senlstrng= smplemml:load_sting(SanlSl0, if coamisting— sis) { SarerString = “Failed loading ‏ت20‎ ‎Sreadh(hbuml get_eresd a Sexe) { SerorStnng = Senor>message .""; } throw new Bxceplion(SarexStnng), } $ys0n =}s00_eicode(anltning), Sihis->dogs_aray =json_decnde(tjson, TRUE), ند

صفحه 33:
fiction _ destruct { Smmlstang="<?xml vasion="1.0' encoding="UTF-8"7>', $umistnng ="\n<dogs>\n', fbreach (Sthis->dogs_avay as Sdogs=>Sdogs foreach (Sdogs Value as Sdog => So} Sxenlstiing ="<$dogs>\n’ foreach Gdog. value as Scslumn => $column_value) 3 Sanlstinng.="<Scolumn>". $dog_valud$columa] "</$columa>ta', 2 Smnistring =*</Sdogs>\n', misting, Snow yalld_data flle= preg replace 10-9147, ", Sthis>dog data_xml), Ws xemove the previous date and time if Itexists Soldxinldata = dateCmdYhis'). Snew valid_data_file, if Qrmame(Sthis>dog_data_xrmi, Soldxmidata)) { throw new Exception(’ Backup file Soldxmldata could notbe created. ‏:ا"‎ ( file_put_contents¢mew_valld_data_file,Semlstrg; 1 private function deleteRecord ($recordNumber) {

صفحه 34:
unset (Sdogs_value{coumt($dogs_value) -1D, / Schange_string = date¢maYhis’). " | Delete |" . SrecordNumber ‘Schge_log_file= dateCmaYhis’) . Sthis>change log file, exror_logchange_string3,$cige log file); //mightexceed 120 ch مثال۶-۳ Dog_data.php 1 private function readRecords(SrecordNumber) 1 ‏(اتلمص دهاز‎ ) return Sthis.>dogs_ ray" dog"), pelse{ ۱ ‏مص ةعلدمددة ]*يدة‎ } ‘Shas odogs_enay{*dog!|Sdogs_ ray size + $1] = Seecords_emay{ST, Schange string =dateCmaYhis’). " | Insert |". serialle(Srecords_array) date¢ ma Yhis'). Sthis> change og f crror_logtSchange string3,Schge log file), /‘mnlghtexcced 120 chars ۱ (ردسريع قم | تسعد ة دصر لمع - ‎Sthis>dogs_aray('dog"Jifrecons)‏

صفحه 35:
مثال۶-۳ Dog_data.php error_log(Schangr _string3,$chge log file); // might exceed 120 chars } function setChangeLogFile(®value) 1 Sthis>dog_data_xml= Svalug 1 function processRecords(Schange Type, Stecords_array) 1 switch Schange Type) 1 case "Delete Sthis>deleteRecord Srecords_array), break; case “Insert” ‘Sthis>insertRecords(Srecords_array); break; case "Update": Sthis>up dateRecords(Srecords_array), break, default: throw new Exception("Invalld XML file change type: Senne Tyre

صفحه 36:

صفحه 37:
1 ۲ oiolsite U>dse eat £8 Moe tee Ones 9 Pde eae Ls

صفحه 38:
peer rics \.Getbreeds.php ۱ م 01۲6610۳ با مقدار "۳ نا Clea) eee شده را نمایش میده کناطنای برنمه را ودار خر 5 ‎a eee‏ 1

صفحه 39:
هیچ تغیری تا زمانی که تغیرات مربوط ب بخش اول این فصل پیاده سازی مشوند برنامه 5۳1۷۲۳۱۸۸۱۷6۶0 ماو تغیرات در کلاس ‎cle oaks alts cl og 42 1JSON (cla vals DOG_DATA‏ ا ل ‏پشتیبانگیروو بازیابی‌داده هايا ۱/۷5 ‎00 ‏ا ا‎ nes ee eee nen ena Fee Se Coed ear Va Oe ort er Fear ye Dee Og Cr rou oon eo Oe Pen Peas pes ©) ‏طور که پیشتر نشان داده شد تنها یک دستور ]92لا ,را اجرا کنید ‎2 ‏ا در د‎ Rel em ‏شما ميتوانيد فايل اسكرييت نويسى.را بر اساس ركورد هابى در آرايه اتجمنى كه تغير نيافته اند ايجاد كنيد.شما ميتوانيد از فايل ثبث. ليستى از ا ل ا ا ا ا ۱ ‏.میتوان آن را برای رفع هر نوع مخدوش برگرداند ‎ ‎ ‎

صفحه 40:
لمع تاد دزن شما می‌توانید هر دستور موره نیاز 10۳10۸۳2 سای 5 را private ‏ا‎ ‎Schge log fle =dateCmmdYhis’), his >change | Schge_ sine ‏اقم‎ Garetords siray as Sreconts—>Srecerds_value) 2 ای مت اس سس اي 0 Stins change log ‏نی در‎ 120 chars private finction ‏ی هبعک‎ dogs_arsy

صفحه 41:
aT vert وت رو rand. 5 ot ald char(4) vate fndtion insetRecedstrecods_arzy) Sdige string = dogs anay_sice = coun(Sthis>dogs_ ara ‏جا ملسمو مه كانم‎ ‘his dogs aryl dog IStogs_enay size + SI) S4og.id=rand(0.5999) ge amumberbewem 0 nd hile Gn_aray(Sdog i, Stus->dogs_ any, tue) Minar og id= rend 9999), if ised nother cmber [ ده و ‎Sehge string. = Sreonts_eraSTI‏ رمرم توس پوت وه Saige log_fle =detetmdYhis) Shs >change lox fle, cert logge string 3 Seige Jog, S19, Mmught exced 120 cars | ۱0000سگ مجازاست

صفحه 42:
‎[fe esc rea oes eas er eee rear eee ACs A Cee Cea‏ اک[ کلاس 209 ازکلاس 013]8_ 109 برای ذخیره سازی اطلاعات مربوط به سک ها در یک فایل 26]1.استفاده میکند ‎WS Car ety‏ ا ا ا ا ا ل 7 1۳ ‏ار ا لكا ‎econ CL-Lello oe W=) 0) o) Cet] alo] | Neoware‏ ا استفاده میکند که چندین بار برای جستجوی نام فایل کلاس 009_60۳۵106۲ ‏مورد نیاز در فایل-] 26 مربوط به برنامه 000].مورد بحث قرار گرفت متدمم3_غ56 به شما اجازه ميدهد نوع برنامه را براى جستجودر ۷ ‎ ‎ ‎ ‎

صفحه 43:
مثال ۶-۵ فایل ۱و0 که از ۱( ها۵2_و10 برای تخیر دسازی دلده‌ها استفاده می‌کند «او۱> ‎class Dog‏ { |

صفحه 44:
ir gnanod_exiss¢dog_container, ‏تراهم‎ > ‏ی[‎ Sprepetier asaya Lever = Bhis-ad_dog_naneGprepatio: m0) —TRUE? TRUE, ‏ها کمن دی دج سس ردو‎ RUE? TRUE FALSE, ‏تتسد‎ arom Suis ssa Gop waanGprepation stays) —=TRUE? TRUE ۳ TRUE? TRUE.’ مص هج مده جع تمه ی میاه :یدصت موه همم سم ماو function ctean_inputo OF private function tave-dom dato, 1 0 a ‏لش یت‎ fontainer. php"): //1se chapter 5 container we cnet ‘dtrow new Exeep ton" Dog container filemussing or corupe'>: 2 maar, Beers ner new dog_containerc*dogdata"> // sets the tagname ta look for in Sproperties_array = armayC'dogdatay: // notused butimust bepasted into ‏سه‎ ‏پرودووی من روج نم ؤحاف_عام مه جر درام مت - ماه كج"‎ // creates dog date وه ‎Sinethod_nrray = get_clarx_ethods(Sdog_datny:‏ ‎aring> =‏ لد ‎Sine‏ ‎Sinahoa. method array {sia posttiony:‏ ‎Stecond_Atray = array(anayCdog naineo>"Sunis>dog fare”,‏

صفحه 45:
0 ‏م‎ wright’, “dog. color'a>" Sinte>dog color sdog precio Sthio dog Bre) 2056 data smanod jamet Insert”, Srecord_Arrayy Eekaae- sorts 1 راد جع وم مه تفص عع سس عج سم مه ونده ورمدسه وده بحيو بجع ‎ewan sien)‏ 2 مومدی سر جاجح ‎Serene‏ نج ‏ی 1 مادم دوه سم هه ‎Potion‏ ‎i‏ ‎Gop ‏مادک وش‎ ©. (value > OLS $value <= 1209)? sthus->dog_w ‎Sakis grernerige = FALSE. ‏تخد مج ‎Savor message = TRUE: ‎Gere raidier preedGvahie)) ——TRUED? stine->dog_ breed —Svale ius-nerer mestege = FALSE, ‎fen Shu Serer mecae } ‏ای امعم ‏یاهدس موه ‎Savor‏ ‎Gopeaiphadvahie) S&S strlnnGvalue) <= 15)? Shis Sdog. color ‏هیک‎ ‎SHES tor messege = PALES ‎fourm ShisSerer messes, ‎1 5207 ‎۳ ‏عصم ومدح مه مس ‏موه سوه عی لصو ‎Eoction get_dou ovate‏ ‎fom Shir doa ‏و‎ ‎Sanction ga_dos_breedo (ies iia ret 0 ‎Enction get_dog_colerO 9 ‎feu Shis->dog_ cote: ‎

صفحه 46:
fiction ge_propatiesO :>dog_weight, this >dog breed, $this >dog_colee | fle = smplemr 1 ‏ام عم ناح ونج تجو‎ ‏عت الود‎ - Sbreed_fle>2s300L0, AsiristroanlT ext, $value) ——FALSE) ‎TRUE,‏ مسا 11 ‏حل برنامه 1008 دارای سه ردیق کامل لت (عکل ۳.ع. ‎ ‎ ‎ ‎ ‎

صفحه 47:
Sree nie Ree se eal ie ose ene) این اطلاعات با حس 0 ‎٩‏ تجاری از مکان نام هرکلاس یا متد موجود در ردیف 000 داده بی خبر است‌این اطلاعات نيز ‎ao la‏ امکان استقلال کامل هر ردیف را فراهم بت .میکند که اجازه میدهد تفیرات در یک ردیف به وقوع ببیوندند بدون نیاز به اعمال تغیرات در دو ردیف دیگر باشد

صفحه 48:
با تشکر از توجه شما هميشه موفق باشید.

39,000 تومان