უცოდველი განყოფილება php. ფაილების PHP-თან დაკავშირება მოიცავს და მოითხოვს. კვეთის ელემენტის ვიკორისტანის გაცვლა

). კანის ტეგი (განყოფილება)დამნაშავე დედა წყვილი (/განყოფილება). აშკარა პარამეტრები є სახელიі მარყუჟი. ციკლის (სექციის) სახელი შეიძლება იყოს ასოები, რიცხვები და სიმბოლოები. ციკლები (განყოფილება)შეიძლება იყოს ბუდირებული და ბუდეების (სექციების) სახელები შეიძლება იყოს უნიკალური ერთმანეთისთვის. ზმინნა მარყუჟი(მნიშვნელობა - მასივის მნიშვნელობა) მიუთითებს ციკლის გამეორებების რაოდენობაზე. შუა მონაკვეთის შეცვლის საათზე, განყოფილების სახელწოდება შეიძლება იყოს დავალებული, რომ შეცვალოს კვადრატული მკლავები. (ნაწილი სხვა)ეს შეესაბამება პარამეტრს მარყუჟიშურს ნუ იძიებთ მნიშვნელობაზე.

ატრიბუტის სახელი ტიპი ობოვიაზკოვი Დასასვენებლად აღწერა
სახელი სიმებიანი Ისე ნ/ა განყოფილების სახელი
მარყუჟი შერეული Ისე ნ/ა მნიშვნელობა, რომელიც მიუთითებს მარყუჟის გამეორებების რაოდენობაზე.
დაწყება მთელი რიცხვი არა 0 პოზიციის ინდექსი, საიდანაც იწყება ციკლი. თუ მნიშვნელობა უფრო უარყოფითია, cob პოზიცია ითვლება მასივის დასასრულად. მაგალითად, თუ ციკლში არის 7 ელემენტი და დაწყების ატრიბუტის მნიშვნელობა არის -2, მაშინ საწყისი ინდექსი იქნება 5. არასწორი მნიშვნელობები (მნიშვნელობები, მასივის პოზიციები) ავტომატურად ამოიჭრება უახლოეს მოქმედ მნიშვნელობამდე.
ნაბიჯი მთელი რიცხვი არა 1 კლდის მნიშვნელობა, რომელიც გამოიყენება მასივში გასავლელად. მაგალითად, step=2 განსაზღვრავს მასივის გავლას 0,2,4 ელემენტებით... თუ ელემენტი უარყოფითია, მაშინ მასივის გადაკვეთა იქნება სწორი წინ.
მაქს მთელი რიცხვი არა 1 გამეორებების მაქსიმალური რაოდენობა მარყუჟისთვის.
შოუ ლოგიკური არა მართალია ავალებს ამ განყოფილების ჩვენებას

შენიშვნა

Smarty 1.5.0-დან დაწყებული, სესიის სინტაქსი იცვლება (%sectionname.varname%)-დან ($smarty.section.sectionname.varname). ძველი სინტაქსი კვლავ მხარდაჭერილია, მაგრამ თქვენ ისწავლით ახალი სინტაქსის გამოყენებას.

ინდექსი გამოიყენება ნაკადის ინდექსის მასივის საჩვენებლად, დაწყებული ნულიდან (ან დაწყების ატრიბუტი, როგორც განცხადებებში) და იზრდება ერთით (ან ნაბიჯის ატრიბუტის მნიშვნელობა, როგორც განცხადებებში).

ტექნიკური პატივისცემა

თუ ნაბიჯი და დაწყების ატრიბუტები არ არის მითითებული, ინდექსი მსგავსია გამეორების განყოფილების ატრიბუტისა, გარდა იმისა, რომ ის იწყება 0-დან და არა 1-ით.

iteration გამოიყენება გამეორების ციკლის ხაზის ნომრის საჩვენებლად.

შენიშვნა

მნიშვნელოვანია მოტყუება დაწყების, ნაბიჯის და მაქსის ავტორიტეტის ქვეშ, ინდექსის ავტორიტეტზე. მეორეს მხრივ, გამეორებები იწყება ერთიდან და არა ნულიდან, როგორც ინდექსები. rownum - ეს არის სიმძლავრის გამეორების სინონიმი, მაგრამ ისინი მუშაობენ.

7.38. სიმძლავრის (სექციების) გამეორება

assign("custid", $id); ?> (სექციის სახელი=cu loop=$custid start=5 ნაბიჯი=2) iteration=($smarty.section.cu.iteration) index=($smarty.section.cu.index) id=($custid)
(/განყოფილება)

გამარჯვებული კონდახის შედეგი:

გამეორება=1 ინდექსი=5 id=3005
iteration=2 ინდექსი=7 id=3007
iteration=3 ინდექსი=9 id=3009
iteration=4 ინდექსი=11 id=3011
iteration=5 ინდექსი=13 id=3013
iteration=6 ინდექსი=15 id=3015

ეს მაგალითი იყენებს გამეორების ძალას ცხრილის სათაურის გამოსაჩენად ხუთი მწკრივის მეშვეობით (vikory (თუ) mod ოპერატორთან - ჭარბი არის დაყოფაში).

(სექციის სახელი=co loop=$contacts) (თუ $smarty.section.co.iteration % 5 == 1) (/თუ) (/განყოფილება)
სახელი>მთავარიუჯრედიელფოსტა
ხედი ($contacts.name) ($contacts.home) ($contacts.cell) ($contacts.email)


დოკუმენტის ადგილმდებარეობა

1. ფუნქცია config_load

Სინტაქსი:
(config_load ფაილი = "im_file")

ეს ფუნქცია გამოიყენება ცვლილებების ნიმუშის გასაუმჯობესებლად კონფიგურაციის ფაილები. გარდა ფაილის სახელისა, რომელიც მნიშვნელოვანია, ამ ფუნქციას შეიძლება ჰქონდეს მეტი ვარიაციები დამატებითი პარამეტრები. მაგალითად, განყოფილების პარამეტრი, რომელიც მიუთითებს ჩასართავად სექციების სახელებს. მეტი დეტალური ინფორმაციაამ და სხვა პარამეტრების ნახვა შესაძლებელია Smarty-ის დოკუმენტაციიდან.

კონდახი:
(config_load ფაილი = "task.conf")

2. გადაღების ფუნქცია

Სინტაქსი:

(დაიღეთ სახელი = "im_block"
assign = "im'ya_zminnoi") ...
(/გადაღება)

ეს ფუნქცია შექმნილია იმისთვის, რომ შეინახოს შაბლონის გამომავალი მონაცემები ეკრანზე გამოსახვის ნაცვლად.

ყველაფერი (capture name = "varname") და (/capture) შორის ჩაიწერება ცვლადში სახელად varname. ამ გზით შინაარსის აღბეჭდვა შესაძლებელია შაბლონიდან დამატებითი სპეციალური ცვლილების გამოყენებით $smarty.capture.varname, სადაც varname არის მნიშვნელობა, რომელიც გადაცემულია სახელის ატრიბუტი გადაღების ფუნქციაზე. თუ ცვლილების სახელი არ არის დაინსტალირებული, შეირჩევა ნაგულისხმევი სახელი.

სხვა პარამეტრი, მინიჭება, განსაზღვრავს ცვლილების სახელს, რომელიც მიენიჭება შენახულ გამომავალ მნიშვნელობას. ეს პარამეტრი, ისევე როგორც სახელი, არ არის სავალდებულო.

3. განყოფილების ფუნქცია

Სინტაქსი:

(section name = "section_name"
loop="change_for_the_number of_Iterations"
[,start="index_cob_position"]
[, step="croc"] [,max="maximum_iteration"]
[,show="show_section"] )...
(/განყოფილება)

Section Section არის ციკლი მასივის ელემენტების გადასასვლელად. სავალდებულო პარამეტრებია name, რომელიც განსაზღვრავს განყოფილების სახელს და ციკლი, რომელიც ცვლადია, რომელიც განსაზღვრავს ციკლის გამეორებების რაოდენობას.

როგორც წესი, მარყუჟი არის ცვალებადი ტიპიმასივი და განმეორებითი სექციების რაოდენობა უდრის ამ მასივის ელემენტების რაოდენობას. ციკლის შუაში ცვლილების შესატანად, თქვენ უნდა შეიყვანოთ ცვლილების სახელის შემდეგ კვადრატული მკლავებიისინი სექციებია.

(სექციის სახელი=art loop=$title)

სათაური: ($title)

(/განყოფილება)

მარაგი 15.8. ციკლი მასივის ელემენტებზე გადასასვლელად

4. Foreach ფუნქცია

Სინტაქსი:

(foreach from="im'ya_masivu"
პუნქტი = "თემის_საგნის_სახელი")
...(/ foreach)

გარდა ამისა, შეგიძლიათ გამოიყენოთ დამატებითი ატრიბუტების გასაღები - გასაღების სახელი მასივის ნაკადის ელემენტისთვის და სახელი - მარყუჟის სახელი, რომელიც დაგეხმარებათ უარი თქვათ მის ავტორიტეტებზე წვდომაზე. ატრიბუტები საწყისი და ელემენტი - obov'yazkovi.

Foreach მარყუჟები არის განყოფილების მარყუჟების ალტერნატივა. foreach ფუნქციის მოქმედება ძალიან ჰგავს foreach ციკლს PHP-ში.
(ფორეach from=$articles item=art)
სათაური: ($art)

(/ foreach)

კონდახი 15.9. foreach loop

ციკლები ძალაუფლების ძალაში ჩნდება. თქვენ შეგიძლიათ მათზე წვდომა ასე: ($smarty.foreach.foreachname.varname), სადაც foreachname არის სახელის პარამეტრით მითითებული მარყუჟის სახელი, ხოლო varname არის ავტორიტეტის სახელი.

5. If, elseif, else განცხადება

Სინტაქსი:

(თუ ვირაზ) block_diy
(elseif გამოხატვა1) action_block1
(სხვა) block_diy2
(/თუ)

ოპერატორის მოქმედება პრაქტიკულად ჰგავს if...elseif...else ოპერატორს PHP-ში.

ვირუსებს შეიძლება ჰქონდეთ სხვადასხვა ოპერატორი: eq, ne, neq, gt, lt, lte, le, gte, ge, არის ლუწი, არის კენტი, არ არის ლუწი, არ არის კენტი, არა, mod, div by, ლუწი, კენტი. , ==, !=, >,<, <=, >=. მათგან კანი ხშირად დამნაშავეა გაძლიერების გამო ზედმეტი ხარვეზების გამო. Virases-ში შეგიძლიათ აირჩიოთ მრგვალი მკლავები და აირჩიოთ PHP ფუნქციები.

(თუ $name eq "ვასია")
ჩვენ გთხოვთ, ვასია.
(elseif $name eq "Petya")
გთხოვ, პეტრე.
(სხვა)
ჩვენ გთხოვთ. Ვინ ხარ?
(/თუ)

კონდახი 10/15. ოპერატორები if, elseif, other

(* ეს კონდახი არ დამუშავდება, ფრაგმენტები არ არის განთავსებული კლირინგში ოპერატორებთან *)
(თუ $name=="ვასია" || $name=="პეტია")
...
(/თუ)
კონდახი 11/15. გამოუსადეგარი კონდახი

საიტების დამოუკიდებლად შექმნისას (ვიკი ჩარჩოების, CMS-ის და სხვა მოდური ნივთების გარეშე, რაც უადვილებს ცხოვრებას ვებ დეველოპერებს) ჩვენ ვაწყდებით საიტის რედაქტირების პრობლემას, თუ ბევრი გვერდია.

იმის უზრუნველსაყოფად, რომ ჩვენ არ მოგვიწევს საიტის რომელიმე ნაწილის შეცვლა თითოეული გვერდის ფაილებში, ჩვენ შეგვიძლია გამოვიყენოთ სახელმძღვანელო PHP ინსტრუქციები, რომლებიც საშუალებას გვაძლევს, ყველა გვერდზე საჭირო კოდით ფაილები შევიტანოთ კოდის მხოლოდ ერთ მწკრივში. შემდეგ, ჩართული ფაილის შეცვლით, ჩვენ ვცვლით კოდს საიტის ყველა გვერდზე. როგორც არ უნდა შეხედო.

ახლა მოდით გადავხედოთ მოხსენების ფაილების დაკავშირების გზებს:

Wikoristanny მოიცავს და მოითხოვს

თქვენ ნახავთ, რომ არსებობს ფუნდამენტური განსხვავებები ამ ორ ინსტრუქციას შორის, მაგრამ არსებობს რამდენიმე ნიუანსი:

როდესაც მოთხოვნა ბრძანების შესრულებისას ხდება გაფრთხილება, პარსერი უარყოფს ფატალურ შეცდომას და გვერდითი კოდი წყდება, ხოლო ჩათვლით გამოჩნდება გაფრთხილებად და ფაილის დამატება გრძელდება (ფაილი უბრალოდ არ იქნება დაკავშირებული).

სიცხადისთვის, მოდით შევხედოთ უმარტივეს კონდახს.

ჩვენ გვაქვს ჩვენი მინი-საიტი, რომელშიც სათაური და ქვედა კოლონტიტული ყველა მხრიდან ერთნაირია და დოკუმენტის ტექსტი შეცვლილია.

ჩვენ ვქმნით ფაილებს header.php და footer.php, რომლებიც შეიცავს კოდს, რომელიც ერთნაირი იქნება ყველა გვერდზე, ხოლო ფაილებისთვის index.php და newpage.php ვაკონფიგურირებთ სტატიკური ნაწილების კავშირს. შედეგი შეიძლება გამოიტანოს:

header-ის ნაცვლად.php

< header> < nav> < a href= "newpage1.php" title= "მენიუს ელემენტი" >მენიუს ელემენტი < a href= "newpage2.php" title= "მენიუს ელემენტი" >მენიუს ელემენტი < a href= "newpage3.php" title= "მენიუს ელემენტი" >მენიუს ელემენტი

ძირის ნაცვლად.php

< footer> < p>ჩვენ მიერ ზრობლენო

საიტის სხვა გვერდების ნაცვლად

მინიზიტი

ბევრი სასარგებლო ინფორმაცია

ჩვენი გვერდით გატაცების შედეგად ჩნდება შემდეგი სურათი:

იაკ მი ბაჩიმო, ყველაფერი სასწაულად მუშაობს.

ვაფასებ იმ ურჩხულს, რომელზედაც მათ კონდახი გაუშვეს ლოკალური სერვერი Denwer, PHP-თან მუშაობისთვის, თქვენ უნდა გქონდეთ სერვერი მხარდაჭერით. თუ თქვენ შექმნით ვებსაიტს უბრალო მამისთვის კომპიუტერზე, ვერაფერს გააკეთებთ.

ჩვენ მიერ განხილულ მაგალითში, ჩვენ გამოვიყენეთ vikory დასაკავშირებლად სათაურის მოთხოვნა და ქვედა კოლონტიტულის დასაკავშირებლად. როგორ გამოიჩინოთ თავი თქვენს საიტებზე - გთხოვთ მითხრათ. როგორც უკვე ითქვა, მათ შორის განსაკუთრებული განსხვავება არ არის. თუმცა, თქვენ უნდა პატივი სცეს ამ ინსტრუქციას.

ფაქტის მიღმა ის უბრალოდ აკოპირებს ყველაფერს ფაილში, მიდის იქ, სადაც ჩვენ მივუთითებთ, დოკუმენტის შუაში, სადაც ის მდებარეობს.

Wikoristanny მოიცავს _ერთხელ და მოითხოვს _ერთხელ

საიტზე მუშაობისას შეიძლება წარმოიშვას პრობლემები იმის გამო, რომ ერთი და იგივე კოდი ერთ ფაილს არაერთხელ უკავშირდება.

მისაღებია, რომ ეს იმიტომ მოხდა, რომ საიტზე რამდენიმე ადამიანი მუშაობდა და თუ კოდები გაერთიანდა, ეს ყველაზე ცუდი შემთხვევაა...

ასეთი პრობლემების თავიდან ასაცილებლად, დეველოპერები ხშირად იყენებენ include _one და მოითხოვენ _one განცხადებებს. მათი მოქმედების პრინციპი იგივეა, რაც მოიცავს მოთხოვნას, გარდა იმისა, რომ ფაილი ასეთი ინსტრუქციებით უკვე დაკავშირებულია ჩვენამდე, მაშინ ხელახალი დაკავშირება არ იქნება.

ნაკლოვანებამდე ამ მეთოდითთქვენ შეგიძლიათ ჩართოთ ისეთებიც, რომლებიც მუშაობენ უფრო ეფექტურად და გამოთვლითი რესურსების უფრო დიდ ხარჯებთან ერთად, მაგრამ მისი წინამორბედები მოიცავს მოთხოვნას, რადგან საჭიროა ყველა კავშირის ფაილის დამახსოვრება და მათი განახლება დიახ, კოდის დუბლირების თავიდან ასაცილებლად.

შენიშვნა

  • საიტის გვერდების ფაილებისა და მათი ფრაგმენტების ფაილების გამოყოფის გასაადვილებლად, რომლებსაც ჩვენ მათში ვდებთ, დაამატეთ inc ნაწილი სახელს. ჩვენი აპლიკაციის მონაცემების დათვალიერებისას, ფაილიდან header.php ჩვენ ამოვიღეთ ფაილი header.inc.php და ასე შემდეგ. ეს მიდგომა იდეალურია სამომავლოდ საიტის სტრუქტურის გასამარტივებლად.
  • ფაილის კოდი, რომელსაც ჩვენ ვუკავშირდებით, აჩვენებს იმ მწკრივის ხილვადობის არეალს, რომელშიც არის დაკავშირებული ხაზი. ტობი მხოლოდ ოჯახის შუაშია გლობალური ტერიტორია, ხოლო შუაში ფუნქციები ლოკალურია.
  • Mi can vikoristati მოიცავს ზ მოითხოვენ დე მი ზავგოდნო. მოათავსეთ სკრიპტების შუაში.