ፒኤችፒ ተለዋዋጮችን ወደ ሕብረቁምፊ መተካት። Str_replace - ሁሉንም የፍለጋ ሕብረቁምፊዎች በተለዋጭ ሕብረቁምፊ ይተካል። በ PHP ውስጥ የሕብረቁምፊዎች መግለጫ

በቅርብ ጊዜ የPHP ቋንቋ በሀበሬ ላይ የተደረጉ ውይይቶች ውስብስብ ስርዓቶችን የመንደፍ ችሎታ ላይ የበለጠ ወርደዋል, ይህም ጥሩ ዜና ነው. ሆኖም በደርዘን የሚቆጠሩ በጣም የታወቁ የድር ማዕቀፎችን (Zend Framework, Adept, CakePHP, CodeIgniter, LIMB, Symfony, MZZ እና ሌሎች) ከተመለከትኩ በኋላ ከአንደኛ ደረጃ ማመቻቸት አንጻር በአንዳንዶቹ ላይ ጉልህ ድክመቶችን በማግኘቴ በጣም ተገረምኩ. .

ይህንን ርዕስ በቴክኒካል ተኮር ለማድረግ ውጤቶቹ ይበልጥ ጥብቅ በሆነ መልኩ ቀርበዋል ይህም ግንዛቤን በተወሰነ ደረጃ ሊያወሳስበው ይችላል።

ስለዚህ፣ እንሂድ... ስራው እጅግ በጣም ቀላል ነው፡ በነጠላ እና በድርብ ጥቅሶች ከንዑስ ሕብረቁምፊዎች ሕብረቁምፊዎችን የመፍጠር ፍጥነት ላይ ሙከራዎችን ያካሂዱ። በመርህ ደረጃ፣ ይህ ጥያቄ በPHP ውስጥ ባሉ የሕብረቁምፊዎች ሂደት ባህሪዎች ምክንያት ለረጅም ጊዜ ጠቃሚ ይሆናል።

በሩሲያኛ እና በሌሎች ቋንቋዎች የስክሪፕቶችን መሰረታዊ ማመቻቸት ላይ ብዙ መጣጥፎች አሉ። ስለ ሕብረቁምፊዎች ብዙም አይናገርም, ነገር ግን በድርብ ጥቅሶች ውስጥ ያሉ ገመዶች ለተለዋዋጮች እና ለቁጥጥር ቁምፊዎች "የተተነተኑ" (ልክ እንደ ኦፊሴላዊው ሰነድ) እውነታ ያስተውላል. ከዚህ በመነሳት በድርብ ጥቅሶች ውስጥ ሕብረቁምፊዎችን መጠቀም በነጠላ ጥቅሶች ውስጥ ካሉት ተመሳሳይ ክዋኔዎች ጋር ሲነፃፀር በተወሰነ ደረጃ ቀርፋፋ እንደሚሆን መገመት ምክንያታዊ ነው።

ተለዋዋጮችን ወደ ሕብረቁምፊዎች ከመተካት እና ተለዋዋጮችን ከንዑስ ሕብረቁምፊዎች ጋር ከማጣመር በተጨማሪ ፒኤችፒ ሕብረቁምፊዎችን ለመፍጠር ቢያንስ አንድ ተጨማሪ መንገዶችን ይተገበራል፡ ከ sprintf ተግባር ጋር አብሮ መስራት። ይህ ዘዴ ከ "መደበኛ" ጋር በእጅጉ ያነሰ ይሆናል ብሎ ማሰብ ምክንያታዊ ነው, ምክንያቱም አላስፈላጊ ተግባር ጥሪ እና ሕብረቁምፊ በመተንተን.

ብቸኛው ተጨማሪ ፣ የፈተናውን ስክሪፕት ኮድ ከማቅረቤ በፊት-ቀላል እና “የላቀ” ኮድ አሰጣጥ ዘይቤን ከግምት ውስጥ በማስገባት በድርብ ጥቅሶች ውስጥ ከሕብረቁምፊዎች ጋር ለመስራት 2 ሊሆኑ የሚችሉ አማራጮችን ማጤን ያስፈልጋል። ምናልባት ተለዋዋጮቹ በመስመሮቹ መጀመሪያ ላይ መሆናቸውን ትኩረት መስጠት የለብዎትም - እነሱ ምሳሌዎች ብቻ ናቸው-
$string = "$_SERVER["HTTP_HOST"] የኡሊያኖቭስክ ክልል አስተዳደር አይደለም የሩስያ ቋንቋን እንወዳለን እና የሚናገሩትን አንወድም...."
እና
$string = "($_SERVER["HTTP_HOST")) የኡሊያኖቭስክ ክልል አስተዳደር አይደለም. እኛ የሩስያ ቋንቋን እንወዳለን እና የሚናገሩትን አንወድም.

የሙከራ ቁጥር አንድ.
ደህና ፣ ሁሉም የተያዙ ቦታዎች የተያዙ ይመስላል - የሥራውን ውጤት ለማሳየት ጊዜው አሁን ነው። ለሞካሪው ምንጭ ኮድ ሊገኝ ይችላል.

ቅጽበታዊ ገጽ እይታዎች የእኔ መላምት እንዳልተረጋገጠ ያሳያሉ። ብቸኛው ትክክለኛ ግምት በ sprintf በኩል ከሕብረቁምፊዎች ጋር ስለ መሥራት ነው። በጣም ፈጣኑ በተለይ ከድርብ ጥቅሶች ጋር የሚሰሩ ተግባራት ነበሩ።

ስለ ሁኔታው ​​በአጭሩ ካሰላሰለ በኋላ ማብራሪያው በራሱ መጣ፡- ነጥቡ በሙሉ ተተኪዎቹ የተደረጉበት የማመሳከሪያ ሕብረቁምፊ በጣም አጭር ነው፡-በእንደዚህ አይነት ሕብረቁምፊ ውስጥ ያለው የፓርሰር ማለፊያ ቁራጭ ኬክ ነው። ነገር ግን፣ እዚህም ቢሆን ተለዋዋጭን ወደ ሕብረቁምፊ መተካቱ ከ"ምጡቅ ዘይቤ" የበለጠ ጥቅም እንደሚሰጥ ግልጽ ነው።
ይህ ደግሞ የመገጣጠም አቀራረብ ድክመት ነው፡ የገባው መረጃ መጠን ከንዑስ ሕብረቁምፊዎች መጠን ይበልጣል። ቀደም ሲል በተጠቀሰው ሃብራቶፒክ ውስጥ የትርፍ ወጪዎች ከየት እንደሚመጡ ማንበብ ይችላሉ.

ይሁን እንጂ, እነዚህ ሀሳቦች እንኳን መረጋገጥ ነበረባቸው. ይህ ለእንደዚህ አይነቱ ያልተጠበቀ (ለእኔ) ባህሪ በተጠቀሱት ምክንያቶች ላይ ለውጥ ያለው ሁለተኛ ፈተና አስፈልጎ ነበር። በግልጽ ለማየት እንደሚቻለው, በአምስተኛው ስሪት ውስጥ ብዙ ተስተካክሏል (እቀበላለሁ, በአምስተኛው የ PHP ስሪት ውስጥ 1 ሙከራ ብቻ ያደረግሁት: የድርድር ክፍሎችን ለመሻገር)።

ፈተና ቁጥር ሁለት.
ሁለተኛ መላምት: የማጣቀሻ ሕብረቁምፊን ማራዘም በመጨረሻ በድርብ ጥቅሶች ውስጥ ሕብረቁምፊዎች ከመፍጠር ጋር የተቆራኙ የሙከራ ተግባራት የሥራ ጊዜ መቶኛ ይጨምራል ፣ ከሙከራ ቁጥር 1 ውጤቶች አንፃር ተመሳሳይ ሁኔታ ፣ በንድፈ-ሀሳብ መታየት አለበት የ sprintf ተግባር አሠራር ጋር በተያያዘ. ይህ በመጀመሪያ ደረጃ ገመዶችን ለመተንተን አስፈላጊነት እና በዚህ ላይ የሚጠፋው ጊዜ መጨመር ምክንያት ነው. ነጠላ ጥቅሶች ውስጥ ንዑስ ሕብረቁምፊዎች concatenation ጋር ያለውን ሁኔታ ውስጥ, እኔ በግምት ተመሳሳይ ውጤት የመጀመሪያው ፈተና ውስጥ ይታያል, ይህም ጥቅሶች_3 () ተግባር አፈጻጸም ጊዜ ያለውን ድርሻ ላይ ትንሽ ቅናሽ ይሰጣል አፈጻጸም ጊዜ ጋር ሲነጻጸር ይሆናል ይመስለኛል. የጠቅላላው ስክሪፕት (ነገር ግን የአፈፃፀም ትርፍ አይደለም).

መደምደሚያዎቹ በእውነቱ አዎንታዊ ብቻ ናቸው እና መላምቱን ያረጋግጣሉ. በማጣቀሻው ሕብረቁምፊ ውስጥ ትንሽ በመጨመር ትልቅ ጭነት ይታያል, ይህም ከድርብ ጥቅሶች እና sprintf ጋር ለመስራት የተግባሮችን አፈፃፀም እንዲቀንስ ያደርጋል.

በነጠላ ጥቅሶች ውስጥ ያሉ ሕብረቁምፊዎችን በተመለከተ ያለው ግምትም ትክክል ሆኖ ተገኝቷል፡ በመጀመሪያው ሙከራ ከ36.75% ጊዜ ይልቅ፣ በሁለተኛው የጥቅሶች_3() ተግባር 33.76% የስክሪፕት ማስፈጸሚያ ጊዜ ወስዷል።

ተግባራዊ ዋጋ.
በቀላል አነጋገር፣ ከመረጃው በማንሳት መደምደም እንችላለን፡ መተኪያው የሚሠራበት ሕብረቁምፊ ረዘም ላለ ጊዜ በድርብ ጥቅሶች ውስጥ ተለዋዋጭ ከመፈለግ ይልቅ የማገናኘት ክዋኔው በፍጥነት ይከናወናል። በጎ ፈቃደኞች አስፈላጊ የሆኑትን የማስገቢያ መለኪያዎች (የተለዋዋጮች ብዛት ፣ የማጣቀሻ ሕብረቁምፊ ርዝመት ፣ በተለዋዋጭዎቹ ውስጥ ያሉ የሕብረቁምፊዎች ርዝማኔዎች) የማስፈጸሚያ ጊዜዎችን እኩልነት ለማርካት መሞከር ይችላሉ ።

ያ ብቻ ነው፣ በእውነቱ። በፕሮግራም አወጣጥ ውስጥ ምንም ትንሽ ነገር አለመኖሩን መጨመር ብቻ ይቀራል (“በክብሪት ላይ መቆጠብ” ለማለት ለሚፈልጉ ማለቴ ነው (ሐ) አደልፍ)። እንደነዚህ ያሉትን ጥቃቅን ነገሮች ማወቅ እና እነሱን ከግምት ውስጥ በማስገባት በሁሉም ደረጃዎች የሚሻሻል ኮድ መጻፍ ይችላሉ;)

PS፡
Zend Studio For Eclipse 6.0.0 (አራሚ + ፕሮፋይለር ተካትቷል) በመጠቀም የተደረጉ ሙከራዎች።
ፒኤችፒ ስሪት 5.2.5
ዴቢያን ሊኑክስ ኦኤስ

ፒፒኤስ፡
አንድ ሰው የእነዚህን ፈተናዎች ውጤታቸውን ከለጠፈ ደስተኛ ነኝ። ይህ አንድ ወይም ሌላ የመተካት ዘዴን ወደ ሕብረቁምፊዎች የመጠቀም አስፈላጊነት የበለጠ ተጨባጭ ግምገማን የሚፈቅድ ይመስለኛል። በተጨማሪም የአቀራረብ ዘይቤ እና ዲዛይን ጤናማ ትችቶችን አደንቃለሁ።

(PHP 4፣ PHP 5፣ PHP 7)

str_replace - ሁሉንም የፍለጋ ሕብረቁምፊዎች በተለዋጭ ሕብረቁምፊ ይተካል።

መግለጫ

ይህ ተግባር በርዕሰ ጉዳይ ላይ ሁሉንም የፍለጋ ክስተቶች በመተካት አንድ ሕብረቁምፊ ወይም ድርድር ይመልሳል።

ውስብስብ የፍለጋ/የመተካት ህጎች (እንደ መደበኛ አገላለጾች ያሉ) ካላስፈለገዎት ይህንን ተግባር በመጠቀም ከቅድመ-መተካት () ይመረጣል።

የመለኪያዎች ዝርዝር

ፍለጋ እና መተካት ድርድሮች ከሆኑ፣ str_replace() በርዕሰ ጉዳይ ላይ ለመፈለግ እና ለመተካት እያንዳንዱን እሴት በተዛማጅ ድርድር ይጠቀማል። የመተኪያ ድርድር ከፍለጋ ያነሱ አካላት ካሉት ባዶው ሕብረቁምፊ ለቀሪዎቹ እሴቶች ምትክ ሕብረቁምፊ ሆኖ ያገለግላል።

ፍለጋ ድርድር ከሆነ እና ምትክ ሕብረቁምፊ ከሆነ፣ ይህ መተኪያ ሕብረቁምፊ ለእያንዳንዱ የፍለጋ ድርድር አካል ጥቅም ላይ ይውላል። የተገላቢጦሽ ጉዳይ ምንም ትርጉም የለውም.

ፍለጋ ወይም መተካት ድርድሮች ከሆኑ፣ አባሎቻቸው ከመጀመሪያው እስከ መጨረሻው ይከናወናሉ። የፍለጋ እሴት፣ እንዲሁም በመባል ይታወቃልመርፌ

(መርፌ)። ለብዙ የፍለጋ እሴቶች ድርድር መጠቀም ትችላለህ።

ተካ

የመተኪያ እሴቱ የፍለጋ ዋጋዎችን ለመተካት ጥቅም ላይ ይውላል. ለብዙ እሴቶች ድርድር መጠቀም ትችላለህ።

ርዕሰ ጉዳይ የሚፈልግ እና የሚተካው ሕብረቁምፊ ወይም አደራደር ይከናወናል፣እንዲሁም በመባል ይታወቃልድርቆሽ

ርዕሰ ጉዳዩ ድርድር ከሆነ፣ በእያንዳንዱ ርዕሰ ጉዳይ ላይ መፈለግ እና መተካት ይከናወናል፣ እና የተግባሩ ውጤት እንዲሁ ድርድር ይሆናል።

ካለፈ፣ በተደረጉት መተኪያዎች ብዛት ይዘጋጃል።

ዋጋዎችን ይመልሱ

ይህ ተግባር በተተካው እሴት ሕብረቁምፊ ወይም ድርድር ይመልሳል።

ምሳሌዎች

ምሳሌ #1 str_replace() የመጠቀም ምሳሌዎች

ምሳሌ #2 በstr_replace() ሊሆኑ የሚችሉ ብልሃቶች ምሳሌዎች

ማስታወሻዎች

ማስታወሻ፡ ይህ ተግባር ሁለትዮሽ ደህንነቱ የተጠበቀ ነው።

ማስጠንቀቂያ

ስለ መተካት ሂደት ማስታወሻ

str_replace() ከግራ ​​ወደ ቀኝ ስለሚተካ ብዙ መተኪያዎችን ሲጠቀሙ ቀድሞ የገባውን እሴት በሌላ መተካት ይችላል።

በዚህ ገጽ ላይ ምሳሌዎችን ይመልከቱ።

ማስታወሻ፡-

ይህ ተግባር ጉዳዩን የሚነካ ነው። ለጉዳይ የማይሰማ ምትክ str_ireplace() ይጠቀሙ።

ፒኤችፒ በአሁኑ ጊዜ የድር መተግበሪያዎችን ለመተግበር በጣም ታዋቂ ከሆኑ ቋንቋዎች አንዱ ነው። ይህ ኮርስ መሰረታዊ ነገሮችን ለማጥናት ያተኮረ ነው። አጽንዖቱ የተገኘውን ችሎታዎች በተግባራዊ አተገባበር ላይ ነው.

የPHP ቋንቋ የተፈጠረው በበይነመረብ ላይ የተወሰነ ተግባራዊ ችግር ለመፍታት ነው (ይህም የትምህርቱን የመጀመሪያ ንግግር በማንበብ ሊገኝ ይችላል)። እንዲሁም በንድፈ ሃሳባዊ አመክንዮ ብዙ ላለመከፋፋት እንሞክራለን፣ እና በእያንዳንዱ ንግግሮች ውስጥ አንድ የተወሰነ ችግር ለመፍታት እንጥራለን። አብዛኛዎቹ ምሳሌዎች የተወሰዱት ከእውነተኛ ህይወት ስርዓት ነው፡ የኮምፒውተር ሳይንስ ታሪክ ምናባዊ ሙዚየም። የትምህርቱ የመጀመሪያ ክፍል የአገባብ እና የቁጥጥር አወቃቀሮችን መሰረታዊ ነገሮችን ለማጥናት ያተኮረ ነው። ከዚህ በኋላ የደንበኛ አገልጋይ ቴክኖሎጂ እንደ ፒኤችፒ ቋንቋ ዋና የመተግበሪያ ቦታ ተደርጎ ይቆጠራል። ከዚያም በአስተያየታችን ውስጥ በጣም ጠቃሚ የሆኑትን አብሮ የተሰሩ ተግባራትን በማጥናት እና በእነሱ እርዳታ ተግባራዊ ችግሮችን ለመፍታት እንቀጥላለን. ምንም እንኳን በ PHP ቋንቋ ውስጥ ያለው የነገር ሞዴል በጣም ሀብታም ባይሆንም ፣ መሰረታዊ መገኘቱ የነገር መረጃ ሞዴሎችን በተፈጥሮ ለመግለጽ ያስችልዎታል። እንደ መሰረታዊ ሞዴል, የቨርቹዋል ኮምፒዩተር ሳይንስ ሙዚየም የሰነድ ሞዴል ግምት ውስጥ ይገባል. ከዚህ በኋላ, በርካታ የተተገበሩ ገጽታዎች ከግምት ውስጥ ይገባሉ-ከፋይል ስርዓቱ ጋር አብሮ መስራት, የውሂብ ጎታ, ሕብረቁምፊዎች, ክፍለ-ጊዜዎች, DOM ኤክስኤምኤል - ይህ ሁሉ የቋንቋውን ተግባራዊ አጠቃቀም ቁልፍ ተግባራትን እንድናስብ ያስችለናል.

መጽሐፍ፡ አብነቶችን በ PHP መጠቀም

በ PHP ውስጥ አብነቶችን መጠቀም

አብነቶች ምንድን ናቸው እና ለምን ያስፈልጋሉ?

በአንዱ ንግግሮች ውስጥ የአብነት ምሳሌን አስቀድመን ተመልክተናል። ይህ ሰነዶችን ለማሳየት አብነት ነበር። ተጠቃሚው የኤችቲኤምኤል መለያዎችን በመጠቀም ምልክት የተደረገበት የጽሑፍ መስመር ፈጠረ እና ልዩ ዘይቤዎችን (እንደ) አስገብቶ ፕሮግራማችን በመቀጠል በተዛማጅ አካላት እሴቶች ተተካ። ለምን እንደዚህ አይነት አብነት አስፈለገን? ስለዚህ, ለምሳሌ, የፕሮግራሙን ኮድ ሳይቀይሩ የሰነዱን የማሳያ ዘይቤ መቀየር ይችላሉ.

አብነቶች ለምን እንደሚያስፈልጉ ለሚለው ጥያቄ በጣም የተለመደው መልስ እንደዚህ ያለ ይመስላል-የመተግበሪያውን አመክንዮ ከመረጃው ከሚቀርብበት መንገድ ማለትም ከንድፍ ለመለየት አብነቶች ያስፈልጋሉ።

የቀረበው ምሳሌ አብነት በጣም ቀላሉ አንዱ ነው። እሱን ለማስኬድ፣ የመተካት ተግባር str_replace() ብቻ ጥቅም ላይ ይውላል። ብዙውን ጊዜ, ከአብነት ጋር ለመስራት, የክፍል ቤተ-ፍርግሞች ይፈጠራሉ. በመርህ ደረጃ ፣ ብዙ በነጻ የሚሰራጩ የአብነት ቤተ-ፍርግሞች ስላሉ የእራስዎን ቤተ-መጽሐፍት መፍጠር አስፈላጊ አይደለም ፣ የእነሱ ተግባራዊነት በትልልቅ የገንቢዎች ቡድን የሚሰራ ፣ ሁለንተናዊ ፣ ኃይለኛ እና ፈጣን ለማድረግ እየሞከረ ነው። ከእነዚህ ቤተ-መጻሕፍት አንዳንዶቹን እንመለከታለን። ግን በመጀመሪያ ፣ የተለያዩ አብነቶችን አጠቃቀም ለማሳየት የመፍትሄውን ምሳሌ በመጠቀም ችግሩን እንፍጠር ።

ስለዚህ ተግባሩ፡-

በመረጃ ቋቱ ውስጥ የሚገኙትን መጣጥፎች ዝርዝር የያዘ ድረ-ገጽ ማመንጨት ያስፈልጋል። ለቀላልነት፣ አንድ መጣጥፍ የርዕስ ርዕስ፣ ደራሲ፣ ረቂቅ ማጠቃለያ እና ሙሉ የጽሁፍ ይዘት እንዳለው እንገምታለን ይህም በመረጃ ቋቱ ውስጥ እንደ ጽሁፍ ወይም የፋይል ማገናኛ ሆኖ የቀረበ ነው። ዝርዝሩ መደራጀት ያለበት የአንቀጹን ርዕስ ሲጫኑ ሙሉ ይዘቱ በአዲስ መስኮት እንዲታይ ነው።

የዱር ካርድ ቅጦች

እንዲህ ዓይነቱ ችግር በቀላል መተካት እንዴት ሊፈታ ይችላል, ማለትም. ሰነዶችን የማሳየትን ችግር የፈታንበት ዘዴ?

ለዚህ ገጽ አብነት ማምጣት እና የሆነ ቦታ (በፋይል ወይም የውሂብ ጎታ ውስጥ) ማከማቸት ያስፈልግዎታል. በመረጃ ቋቱ ውስጥ ምን ያህል ጽሑፎች እንዳሉ ስለማናውቅ ለጠቅላላው ገጽ አብነት ማምጣት እንደማንችል ግልጽ ነው። በአብነት ውስጥ፣ html እና ሜታ ቁምፊዎችን ብቻ ለመጠቀም ተስማምተናል። ስለዚህ, ለዝርዝሩ አንድ መስመር ብቻ አብነት መፃፍ እንችላለን, ይህም በፕሮግራም ወደ አስፈላጊ የመስመሮች ብዛት መለወጥ አለበት.

  • target=አዲስ>
    ()

    በተጨማሪም ፣ ሌላ ማጭበርበሪያ አለ - ወደ መጣጥፉ ሙሉ ጽሑፍ አገናኝን በማሳየት። የመተኪያ ደንቡን ከተከተልን (ከመረጃ ቋቱ ውስጥ ሁሉንም ሜታ ቁምፊዎችን ወደ እሴቶቻቸው ይለውጡ) ፣ ከዚያ ወደ ጽሁፉ አገናኝ ሳይሆን ጽሑፉን እንዳናስገባን ሊሆን ይችላል። ማለትም፣ ይህ ኤለመንት ከመተካቱ በፊት ተጨማሪ ፍተሻን እና የሙሉ ጽሑፍ መስኩ የጽሁፉን ጽሑፍ እንጂ የፋይሉን አገናኝ ካልሆነ አንዳንድ ተጨማሪ እርምጃዎችን ይፈልጋል። ህይወታችንን አናወሳስበው እና የሙሉ ጽሑፍ መስኩ ሁል ጊዜ ወደ ፋይሉ የሚወስድ አገናኝ ብቻ እንደሚይዝ እንስማማ። ከዚያም ችግሩ በሚከተለው መንገድ ሊፈታ ይችላል.

    አብነት ከላይ ከተጠቀሰው ጋር ተመሳሳይ ከሆነ የሚከተለውን የመሰለ ነገር እናገኛለን።

    የ PHP መግቢያ (Savelyeva N.V.)

    ትምህርቱ የ PHP ቋንቋ ምን እንደሆነ ፣ ለምን በመጀመሪያ እንደተፈጠረ እና አሁን እንዴት ጥቅም ላይ እንደሚውል ፣ ምን ችሎታዎች እንዳሉት ሀሳብ ይሰጣል።

    የሶፍትዌር ጭነት እና ውቅር (ኢቫን ኢቫኖቭ)

    በመርህ ደረጃ, ዘዴው በጣም ቀላል እና ምቹ ነው, ነገር ግን ከቀላል እሴት ምትክ የበለጠ ውስብስብ ችግሮች በሚፈጠሩበት ጊዜ ከፕሮግራም አውጪው ተጨማሪ ጥረት ይጠይቃል. ሙሉ ብሎኮችን ለመተካት ወይም ሁኔታዎችን ለመፈተሽ የሚያስፈልጉዎትን ችግሮች ለመፍታት እንደ FastTemplate እና Smarty ያሉ የአብነት ክፍሎች ተፈጥረዋል። የበለጠ በዝርዝር እንወያይባቸው።

    ፈጣን አብነቶች

    FastTemplate ከአብነት ጋር እንዲሰሩ የሚያስችልዎ የክፍሎች ስብስብ ነው። ሎጂክ ወደ FastTemplate ሊታከል አይችልም, ሁሉም በፕሮግራሙ ኮድ ውስጥ መሆን አለባቸው. የ FastTemplate አብነቶች የሚሰሩበት መንገድ ማንኛውም ትልቅ ገጽ ከብዙ ቁርጥራጮች የተሰራ ነው, ከነሱ ውስጥ ትንሹ ተራ የጽሑፍ መስመሮች ናቸው, እና ስም እና እሴት ተሰጥቷቸዋል.

    የ FastTemplate ፋይል ምንድን ነው? ይህ የልዩ ዓይነት ተለዋዋጮችን ሊይዝ የሚችል መደበኛ የኤችቲኤምኤል ፋይል ነው፣ እነሱም በመቀጠል በFastTemplate ክፍል ዘዴዎች ይከናወናሉ።

    በFastTemplate አብነቶች ውስጥ ያለው ተለዋዋጭ አገባብ በሚከተለው አገላለጽ ተገልጿል፡(+))

    ይህ ማለት ተለዋዋጩ በተጠማዘዘ ማሰሪያ መጀመር አለበት "(" ሁለተኛው እና ተከታዩ ቁምፊዎች ከዐቢይ ሆሄያት ከኤ እስከ ዜድ፣ ቁጥሮች ወይም ከስር ያሉ መሆን አለባቸው። ተለዋዋጩ የሚገመገመው በመዝጊያ ጥምዝ ቅንፍ ")" ነው።

    (TITLE)
    (AUTH20)
    (TOP_OF_PAGE)

    ቀደም ሲል እንደተገለፀው የፈጣን አብነት ዋና ሀሳብ የጎጆ አብነቶችን በመጠቀም ገጽ መፍጠር ነው። ለምሳሌ ችግራችንን ለመፍታት ሶስት የአብነት ፋይሎችን መፍጠር ትችላለህ፡-


    (TITLE_)


    (ዋና)



      (LIST_ELEMENT)

  • (TITLE)
    ((ደራሲ))

    (አብስትራክት)

    አብነቶችን ፈጠርን እና የንድፍ አውጪውን ስራ አጠናቅቀናል. አሁን እነሱን እንዴት ማቀናበር እንደሚችሉ መማር ያስፈልግዎታል, ማለትም. የፕሮግራም አድራጊውን ስራ ይስሩ. አሁን ከላይ ያሉትን አብነቶች ለማስኬድ ፕሮግራም እንፍጠር።

    ከ FastTemplate አብነቶች ጋር መስራት ከመጀመርዎ በፊት, ይህንን የመማሪያ ክፍሎችን ከፕሮግራማችን ጋር ማገናኘት ያስፈልግዎታል. በእውነተኛ ህይወት ውስጥ የ FastTemplate ክፍሎች ስብስብ በአንድ ፋይል ውስጥ ይጻፋል, ብዙውን ጊዜ class.FastTemplate.php3 ተብሎ ይጠራል, ስለዚህ ሊያገናኙት ይችላሉ, ለምሳሌ, ትዕዛዙን በመጠቀም:

    ማካተት ("ክፍል.FastTemplate.php3");

    ቀጣዩ አስፈላጊ እርምጃ የFastTemplate ክፍልን ነገር መፍጠር ነው፣ እሱም በመቀጠል የምንሰራው፡-

    $tpl = አዲስ ፈጣን አብነት(
    "/ መንገድ / ወደ / አብነቶች");

    የእኛ አብነቶች ወደሚገኙበት ቦታ የሚወስደው መንገድ እንደ መለኪያ ተላልፏል.

    ከ FastTemplate ጋር ለመስራት አራት ዋና ዘዴዎችን ማወቅ አለብህ፡ መግለፅ፣ መመደብ፣ መተንተን እና FastPrint።

    ዘዴን ይግለጹ

    አገባብ፡

    ፍቺ (ድርድር (ቁልፍ=> እሴት፣
    ቁልፍ 1 => ዋጋ1, ...))

    የመግለፅ() ዘዴ የአብነት ፋይል ስም በፕሮግራሙ ውስጥ ጥቅም ላይ ሊውል ከሚችል አጭር ስም ጋር ያዛምዳል። ማለትም "ቁልፉ" በፕሮግራሙ ውስጥ ከአብነት ፋይል ጋር ለማገናኘት የምንጠቀምበት ስም ነው, ስሙ በ "እሴት" መስመር ውስጥ ተጽፏል. ከተገለፀው ዘዴ በስተቀር እውነተኛ የአብነት ፋይል ስሞችን በማንኛውም ቦታ መጠቀም አይመከርም። የመግለፅ() ዘዴን ሲደውሉ በውስጡ የተገለጹት ሁሉም አብነቶች ይጫናሉ።

    $tpl-> ይግለጹ (አደራደር (ዋና => "main.tpl",)
    list_f => "list.tpl",
    list_el=> "list_element.tpl"));

    እዚህ ለአብነት የፋይል ስሞች ተለዋጭ ስሞችን እንመድባለን። እነዚህ የውሸት ስሞች፣ ማለትም. ዋናዎቹ ተለዋዋጮች፣ list_f እና list_el፣ ከተዛማጅ የፋይል ስሞች main.tpl፣ list.tpl እና list_element.tpl ይልቅ በፕሮግራሙ ውስጥ ጥቅም ላይ ይውላሉ።

    ዘዴ መድብ

    አገባብ፡

    መድብ ((ቁልፍ/እሴት ጥንዶች) ወይም
    (ድርድር (ቁልፍ/እሴት ጥንዶች))

    የመመደብ () ዘዴው ለተለዋዋጮች እሴቶችን ይሰጣል ፣ “ቁልፍ” የተለዋዋጭ ስም ነው ፣ እና “እሴት” ለእሱ የሚመደብ እሴት ነው። በአብነት ውስጥ ያለ ተለዋዋጭ በዋጋ ለመተካት ያ እሴት የመመደብ () ዘዴን በመጠቀም መመደብ አለበት። በአገባቡ መሠረት ይህ ዘዴ በሁለት የተለያዩ ቅርጾች ጥቅም ላይ ሊውል ይችላል. በFastTemplate ውስጥ አንድ ድርድር ብቻ አለ፣ ስለዚህ እሴትን ለተመሳሳዩ ቁልፍ እንደገና ካዘጋጁት ይተካል።

    $tpl-> መድብ(ድርድር(ድርድር)
    TITLE => "የሶፍትዌር ጭነት እና ማዋቀር"
    TITLE => "የ PHP መግቢያ");

    እዚህ TITLE በተባለው የአብነት ፋይሎች ውስጥ የሚገኘውን የተለዋዋጭ እሴት እያዘጋጀን ነው። ይህ ተለዋዋጭ ለእሱ የተመደበው የመጨረሻው እሴት ይኖረዋል, ማለትም. ከ "PHP መግቢያ" መስመር ጋር እኩል ነው.

    የመተንተን ዘዴ

    አገባብ፡

    ትንተና (ተለዋዋጭ መመለስ ፣
    የአብነት ምንጮች)

    የመተንተን() ዘዴ በ FastTemplate ውስጥ በጣም መሠረታዊው ነው። የተመለሰውን ተለዋዋጭ ዋጋ ከተጠቀሱት ምንጮች ወደ ተቀነባበሩ አብነቶች ያዘጋጃል. ዘዴው በሶስት ዓይነቶች ጥቅም ላይ ሊውል ይችላል-ቀላል, ድብልቅ እና መቀላቀል.

    $tpl-> ትንተና (MAIN, "ዋና");
    // ቀላል ቅጽ
    $tpl-> ትንተና (MAIN፣ ድርድር ("list_f", "ዋና"));
    // ድብልቅ ቅፅ
    $tpl-> ትንተና (MAIN፣ ".list_el");
    // የመቀላቀል ቅጽ

    በጣም ቀላል በሆነ መልኩ አብነት ተጭኗል "ዋና" (ቀድሞውኑ ካልተጫነ), ሁሉም ተለዋዋጮች ተተክተዋል, ውጤቱም እንደ ዋና ተለዋዋጭ እሴት ተቀምጧል. ተለዋዋጭው (MAIN) በኋለኞቹ አብነቶች ውስጥ ከታየ "ዋና" አብነት በማዘጋጀት ምክንያት በተገኘው ዋጋ ይተካል. ይሄ የጎጆ አብነቶችን እንዲፈጥሩ ይፈቅድልዎታል.

    የትንተና() ዘዴ ውሁድ ቅርጽ የተቀየሰው እርስ በርስ ውስጥ አብነቶችን ለመክተት ቀላል ለማድረግ ነው። የሚከተሉት ግቤቶች እኩል ናቸው፡

    $tpl-> ትንተና (MAIN, "list_f");
    $tpl-> parse (MAIN, ".ዋና");

    ይህ ተመሳሳይ ነው

    $tpl-> ትንተና (MAIN፣ ድርድር ("list_f"፣ "ዋና"));

    ድብልቅ ቅፅን በሚጠቀሙበት ጊዜ, በዝርዝሩ ውስጥ ከመጀመሪያው በኋላ እያንዳንዱ አብነት አብነቱን የማስኬድ ውጤቶቹ የሚተላለፉበትን ተለዋዋጭ መያዙ አስፈላጊ ነው. ከላይ ባለው ምሳሌ ዋና ተለዋዋጭ (MAIN) መያዝ አለበት፣ ምክንያቱም የlist_f አብነት የማስኬድ ውጤቶች የሚተላለፉበት ይህ ነው። ዋናው ተለዋዋጭ (MAIN) ከሌለው የlist_f አብነት ሂደት ውጤት ይጠፋል።

    የአባሪው ዘይቤ የአብነት ሂደት ውጤቶችን ወደ የውጤት ተለዋዋጭ እንዲጨምሩ ያስችልዎታል። ከአብነት ፋይሉ በፊት ያለው ነጥብ FastTemplate ያንን አብነት የማስኬድ ውጤት ከመፃፍ ይልቅ በተመለሱት ውጤቶች ላይ እንዲጨምር ይነግረዋል። ይህ ዘይቤ ብዙውን ጊዜ ጥቅም ላይ የሚውለው በተለዋዋጭ የረድፎች ብዛት ሰንጠረዦችን ሲገነቡ ነው ፣ ለምሳሌ ፣ በመረጃ ቋት መጠይቅ ምክንያት።

    የ FastPrint ዘዴ

    አገባብ፡

    FastPrint(የተሰራ ተለዋዋጭ)

    የ FastPrint() ዘዴ ወደ እሱ የተላለፈውን የተቀናጀ ተለዋዋጭ ይዘቶች ያትማል። ያለ መመዘኛዎች ከተጠራ, በ parse () ዘዴ ጥቅም ላይ የዋለው የመጨረሻው ተለዋዋጭ ታትሟል.

    $tpl-> FastPrint ();
    /* ያለፈውን ምሳሌ ከቀጠልን
    ከዚያ ይህ ተግባር እሴቱን ያትማል
    ተለዋዋጭ ዋና */
    $tpl-> FastPrint("ዋና");
    // ይህ ተግባር እንዲሁ ያደርጋል

    በስክሪኑ ላይ ሳይሆን ለምሳሌ ወደ ፋይል ማተም ከፈለጉ የማምጣት () ዘዴን በመጠቀም የመረጃውን አገናኝ ማግኘት ይችላሉ።

    $ ውሂብ = $tpl-> ማምጣት ("ዋና");
    መፃፍ($fd፣ $data); // ወደ ፋይል ውሂብ ይፃፉ

    FastTemplates በመጠቀም ችግሩን መፍታት

    አሁን ችግራችንን ለመፍታት ሁሉንም የተጠኑ ዘዴዎችን አንድ ላይ ለማድረግ እንሞክር.

    የችግሩ መፍትሄ ከመጀመሪያው ጉዳይ ይልቅ በተወሰነ ደረጃ የተወሳሰበ መሆኑን ልብ ይበሉ, መደበኛ የመተካት ተግባር ብቻ ጥቅም ላይ ከዋለ. ግን እዚህ ሶስት የተለያዩ አብነቶችን መለወጥ እንችላለን (ሰነዱ በአጠቃላይ ፣ ዝርዝሩ እና የዝርዝሩ አካል)።

    ይህ የአብነት ክፍል ከPHP3 ጋር ለመስራት PHP4 ከመውጣቱ በፊት ታየ። የተሰጡትን ምሳሌዎች ለመሞከር የ FastTemplate ክፍል ቤተ-መጽሐፍትን ማውረድ እና ይህን ፋይል ወደ የስራ ማውጫዎ መቅዳት ያስፈልግዎታል. ከ PHP4 ጋር እየሰሩ ከሆነ በክፍል ላይ ሁለት ለውጦችን ማድረግ ያስፈልግዎታል FastTemplate.php3 ፋይል , ከዚህ ቤተ-መጽሐፍት ጋር በተያያዙ ሰነዶች ውስጥ ተገልጸዋል.

    ብልህ አብነቶች

    Smarty ከነባር ፒኤችፒ ፕሮጄክቶች አንዱ ነው፣የኦፊሴላዊው ድር ጣቢያ http://smarty.php.net ነው። እዚያ ሁለቱንም የ Smarty ክፍሎች ስብስብ እና ለእሱ ሰነዶችን ማውረድ ይችላሉ. ይህ የአብነት ማቀናበሪያ ክፍሎች ከ FastTemplate የበለጠ ኃይለኛ እና ተግባራዊ ነው Smarty እንደ FastTemplate ካሉ የአብነት ክፍሎች እንዴት ይለያል? በመጀመሪያ ደረጃ አመክንዮ እና ይዘትን ሙሉ በሙሉ አይለይም. በ Smarty ገንቢዎች መሰረት የውሂብ ማሳያን በተመለከተ ያለው አመክንዮ በአብነት ውስጥ ሊኖር ይችላል. ስለዚህ፣ Smarty አብነት ሁኔታዊ መግለጫዎችን፣ የፋይል ማስገቢያ መግለጫዎችን፣ ተለዋዋጭ የለውጥ መግለጫዎችን፣ loops፣ ወዘተ ሊይዝ ይችላል። ሌላው የ Smarty ባህሪ የአብነት ማጠናቀር ነው። አብነቶች ወደ ፒኤችፒ ኮድ ተተርጉመዋል፣ እና ፒኤችፒ ተርጓሚው እሴቶችን ለመተካት ሁሉንም አስፈላጊ እርምጃዎችን ያከናውናል። ሥራን ለማፋጠን፣ የተጠናቀሩ አብነቶች ተደብቀዋል።

    የ Smarty አብነት ሞተር አንዳንድ መሰረታዊ ንድፎችን እንመልከት።

    መጫን

    የምንጀምረው የመጀመሪያው ነገር Smarty ን መጫን ነው. እዚህ ያለው ሁሉም ነገር እንደ FastTemplate ቀላል አይደለም። Smarty አንድ የPHP ፋይል ከክፍል መግለጫ ጋር አያካትትም ነገር ግን ሙሉ የተለያዩ የቤተ-መጽሐፍት ፋይሎች ስብስብ ነው። ከSmarty አብነቶች ጋር ለመስራት እነዚህን ቤተ-መጻሕፍት ለሁሉም ፕሮግራሞችዎ ተደራሽ ማድረግ አለቦት። በ Smarty ስርጭት /libs/ ማውጫ ውስጥ ይገኛሉ። የ Smarty ክፍል ፍቺን የያዘው ፋይል Smarty.class.php ይባላል። Smarty ክፍል ቤተ መፃህፍት መኖራቸውን ለማረጋገጥ የሚከተለውን ስክሪፕት መፃፍ አለቦት።

    በሂደቱ ላይ ስህተት ከተፈጠረ, ከዚህ በታች ከተዘረዘሩት አማራጮች ውስጥ አንዱን መሞከር ያስፈልግዎታል.

    ቤተ-መጻሕፍት የያዘውን ማውጫ ወደ ዱካ አካትት (በዚህ አጋጣሚ ኮዱን መቀየር አያስፈልግም)።

    አሁን፣ ቤተ-መጻሕፍቶቹ መገኘታቸውን ካረጋገጥን በኋላ፣ ለ Smarty ሥራ አስፈላጊ የሆኑትን ማውጫዎች መፍጠር አለብን፣ በነባሪነት የሚከተሉት ስሞች አሏቸው።

    አብነቶች - የተፈጠሩ አብነቶችን የምናከማችበት ማውጫ;

    Templates_c - Smarty የተጠናቀሩ አብነቶችን የሚያከማችበት ማውጫ;

    Configs - የማዋቀሪያ ፋይሎችን ለማከማቸት ማውጫ;

    መሸጎጫ - መሸጎጫ ማውጫ.

    እነዚህ ስሞች የተገለጹት በSmarty ክፍል በ$ Template_dir፣$compile_dir፣$config_dir፣$cache_dir ንብረቶች ነው፣ስለዚህ ሊሻሩ ይችላሉ። ከSmarty አብነቶች ጋር ለሚሰራ ለእያንዳንዱ መተግበሪያ የተለየ የማውጫ ስብስቦችን ለመጠቀም ይመከራል። የተዘረዘሩት ማውጫዎች በSmarty ቤተመፃህፍት ይደርሳሉ እና በጭራሽ በድር አሳሽ በኩል አይገኙም። ስለዚህ የደህንነት ችግሮችን ለማስወገድ እነዚህን ማውጫዎች በ www.

    በ Smarty የተዘረዘሩትን ማውጫዎች በ c:/smarty_dirs/book/ እንፍጠር። እባክዎ ከዚህ በአሳሽ በኩል ውሂብ ማንበብ እንደማይችሉ ልብ ይበሉ። ፕሮግራማችን (ወይም አፕሊኬሽኑ) በ /~my/tasks/book/ የሚገኝ ይሁን። የ$compile_dir እና $cache_dir Smarty ማውጫዎች የመፃፍ መዳረሻ ያስፈልጋቸዋል፣ ስለዚህ አገልጋይዎ በነባሪነት እየሰራ ላለው የአውታረ መረብ ተጠቃሚ ተገቢውን ፍቃዶች ማዘጋጀት ያስፈልግዎታል (ብዙውን ጊዜ www ወይም ማንም)።

    ያደረግናቸውን መቼቶች ለመፈተሽ ቀላል አብነት እና ስማርት ሞተሩን በመጠቀም የሚያስኬድ ፕሮግራም እንፍጠር።

    index.tpl (Smarty አብነት ነው እና በአብነት ማውጫ c:/smarty_dirs/book/ አብነቶች/ ውስጥ ይገኛል)

    (*ስማርት አብነት*)
    ጤና ይስጥልኝ (ስም)!

    index.php (የፕሮግራማችን ኮድ ነው እና በ /~my/tasks/book/ directory ውስጥ ይገኛል ወይም ተመሳሳይ ነው በ c:/users/my/tasks/book/ directory)

    በዚህ ምክንያት የሚከተሉትን ማግኘት አለብዎት:

    ጤና ይስጥልኝ Vasya!

    ለመተግበሪያችን አሠራር አስፈላጊ የሆኑ ሁሉም መቼቶች በተለየ ፋይል ውስጥ ሊቀመጡ እና እንደ የ Smarty ክፍል ማራዘሚያ ሊደራጁ ይችላሉ።

    መሰረታዊ አገባብ

    Smarty ቴምፕሊንግ ክፍል ብቻ አይደለም፣ ሙሉ ለሙሉ አብነት ቋንቋን ይገልፃል። ዋና ዋናዎቹን ነገሮች ብቻ እንነካለን. ስለዚህ የ Smarty አብነት ምንድን ነው? ይህ የልዩ ግንባታዎች (ተለዋዋጮች፣ ተግባር እና ዘዴ ጥሪዎች፣ ወዘተ) እና የኤችቲኤምኤል መለያዎች ስብስብ ነው። የSmarty አብነት ቋንቋ ሁሉም አካላት (መለያዎች) በገዳይ ቁምፊዎች መካከል ተዘግተዋል። በነባሪ እነዚህ የተጠማዘዘ ቅንፍ ቁምፊዎች "(" እና ")" ናቸው፣ ነገር ግን እነሱን መቀየር ይችላሉ። በእንደዚህ ያሉ ገደቦች ውስጥ ያልተዘጉ ነገሮች ሁሉ በ Smarty እንደ ማቀነባበሪያ የማይጠይቁ ቋሚዎች ይያዛሉ. ከላይ ባለው index.tpl አብነት ውስጥ ($ ስም) ተለዋዋጭ ነው, እና ሕብረቁምፊዎች "ሄሎ" እና "!" - በአብነት ሂደት ውስጥ የማይለዋወጡ ቋሚዎች።

    በ Smarty ውስጥ ያሉ አስተያየቶች የተጻፉት በሁለት ኮከቦች መካከል ነው፡

    (* ይህ አስተያየት ነው። አብነቱን ከተሰራ በኋላ
    በማያ ገጹ ላይ አይታይም *)

    እያንዳንዱ Smarty መለያ የተለዋዋጭ እሴትን ያሳያል ወይም ተግባርን ይጠራል። ተግባሩ እንደሚከተለው ተጽፏል።

    (የተግባር_ስም ባህሪ1 = "እሴት1"
    መለያ2 = "እሴት2")

    የአብነት ተለዋዋጮች ከብዙ ዓይነቶች ሊሆኑ ይችላሉ፡-

    በተጠቃሚው ፒኤችፒ ስክሪፕት ውስጥ እሴታቸው የተመደበላቸው ተለዋዋጮች ከስማቸው በፊት የዶላር ምልክት ሊኖራቸው ይገባል።

    ለምሳሌ፡ ($ የመጀመሪያ ስም)

    በተጠቃሚው ፒኤችፒ ስክሪፕት ውስጥ እሴታቸው የተመደበላቸው የድርድር ክፍሎች አገባብ ($array_name.associative_key) በመጠቀም በአብነት ውስጥ ይገኛሉ።

    ለምሳሌ፡ ($person.last_name)

    የማይዛመድ ድርድር አካላት የካሬ ቅንፍ አገባብ በመጠቀም ይደርሳሉ፡ (array_name[numeric_index])

    ለምሳሌ: ($ ሰው)

    በPHP ስክሪፕት ውስጥ የተገለጹ የነገር ንብረቶች የሚከተለውን አገባብ በመጠቀም በአብነት ውስጥ ይገኛሉ፡(የነገር_ስም->የንብረት_ስም)

    ለምሳሌ፡ ($ ሰው->ኢሜል)

    ከውቅረት ፋይሎች የተጫኑ ተለዋዋጮች (ትንሽ ቆይተው ምን እንደሆኑ እንነግርዎታለን) በ# ምልክቶች መካከል ተዘግተዋል። እንዲሁም እንደ $smarty.config አሶሺዬቲቭ ድርድር አካላት ይገኛሉ።

    ለምሳሌ፡ (#bodyBgColor#) ወይም ($smarty.config.bodyBgColor)

    በተጨማሪም፣ ለአንዳንድ ልዩ የአብነት ተለዋዋጮች፣ እንደ HTTP ጥያቄ ተለዋዋጮች፣ የቀን እና የሰዓት ተለዋዋጮች፣ ወዘተ የተቀመጠ ተለዋዋጭ (ስማርት) አለ።

    ብልጥ አብነቶች በተለዋዋጮች፣ በተጠቃሚ የተገለጹ ተግባራት ወይም ሕብረቁምፊዎች እሴቶቻቸውን ለማሻሻል ሊተገበሩ የሚችሉ በርካታ መቀየሪያዎችን ይገልፃሉ። መቀየሪያን ለመተግበር የተተገበረበትን ተለዋዋጭ፣ ተግባር ወይም መስመር ስም ተከትሎ ከቋሚው አሞሌ በኋላ ስሙን መግለጽ አለብዎት።

    ለምሳሌ፣ የተለዋዋጭ ($ ርዕስ) እሴትን ወደ አቢይ ሆሄ ለመቀየር የላይኛውን መቀየሪያ በእሱ ላይ መተግበር ያስፈልግዎታል፣ ማለትም። የሚከተለውን ይፃፉ: ($ ርዕስ | የላይኛው)

    ብዙ ማሻሻያዎችን በአንድ ጊዜ መጠቀም ይችላሉ, እርስ በእርሳቸው ቀጥ ያለ ቀጥ ያለ መስመር ይለያሉ. ለምሳሌ፣ ($title|የላይ|truncate) የተለዋዋጭውን ዋጋ ወደ አቢይ ሆሄ ይለውጠዋል እና ወደ 80 ቁምፊዎች ይከርክመዋል።

    ሁሉንም የሚገኙ መቀየሪያዎችን አንዘረዝርም። የእነሱ ዝርዝር በ Smarty ሰነድ ውስጥ ሊገኝ ይችላል. በእነሱ እርዳታ የቁምፊዎች ፣ የቃላቶች እና አንቀጾች ብዛት መቁጠር ፣ መስመር ማከል ፣ ቀኑን እና ሰዓቱን ለማሳየት ቅርጸት ማዘጋጀት ፣ መደበኛ መተኪያዎችን እና ሌሎችንም ማድረግ ይችላሉ እንበል ።

    የማዋቀር ፋይሎች

    የማዋቀር ፋይሎች ነጠላ ፋይልን በመጠቀም በአብነት ውስጥ ጥቅም ላይ የሚውሉትን ዓለም አቀፍ ተለዋዋጮች ለማስተዳደር ያገለግላሉ። ሀሳባቸው ከ css ቅጥ ሉሆች ጋር በጣም ተመሳሳይ ነው። የማዋቀሪያው ፋይል የተለዋዋጮች ስብስብ እና እሴቶቻቸውን ይዟል። ተለዋዋጭ ስም እንደ የዶላር ምልክት ባሉ ተጨማሪ ቁምፊዎች አይቀድምም. ተለዋዋጭ እሴቱ በአማራጭ በጥቅሶች (ድርብ ወይም ነጠላ) ተዘግቷል ፣ እሱ ብዙ መስመሮችን ካካተተ ፣ ከዚያ በሶስት እጥፍ ጥቅሶች ውስጥ ተዘግቷል።

    # ዓለም አቀፍ ተለዋዋጮች
    pageTitle = "የሰነዶች ዝርዝር"!}
    bodyBgColor = # 000000
    tableBgColor = # 000000
    rowBgColor = # 00ff00
    pageTitle = "የጽሁፎች ዝርዝር"!}
    መግቢያ = ""ይህ እሴት ያካትታል
    በርካታ መስመሮች. ስለዚህ አስፈላጊ ነው
    በሶስትዮሽ ጥቅሶች አክል"""
    # የተደበቀ ክፍል
    [.ዳታቤዝ]
    አስተናጋጅ = localhost
    db=መጽሐፍ
    ተጠቃሚ = ኒና
    ማለፍ=123

    የማዋቀሪያው ፋይል ብዙ ክፍሎችን (ክፍሎችን) ሊያካትት ይችላል, እያንዳንዱም ስም ያለው እና ከሌሎቹ ክፍሎች ተለይቶ ሊጫን ይችላል. የክፍሉ ስም በካሬ ቅንፎች ውስጥ ተዘግቷል። ከክፍሎች በተጨማሪ የውቅረት ፋይሉ ዓለም አቀፋዊ ተለዋዋጮችን ሊይዝ ይችላል - በማንኛውም ክፍል ውስጥ አይካተቱም እና የማዋቀሪያው ፋይል በሚጫንበት ጊዜ ሁልጊዜ ይጫናሉ. አንድ ክፍል ከተጫነ, ተለዋዋጮች እና አለምአቀፍ ተለዋዋጮች ይጫናሉ. ተለዋዋጭ እንደ ሁለንተናዊ ተለዋዋጭ እና ክፍል ተለዋዋጭ ከሆነ, የክፍሉ ተለዋዋጭ ጥቅም ላይ ይውላል. በተመሳሳዩ ክፍል ውስጥ ሁለት ተለዋዋጮችን በተመሳሳይ መንገድ ከሰየሙ, የመጨረሻው ጥቅም ላይ ይውላል. ከላይ ባለው ምሳሌ ውስጥ ሁለት ክፍሎች አሉ - ደንበኛ እና ዳታቤዝ ፣ እና ከነሱ በተጨማሪ ፣ የአለምአቀፍ ተለዋዋጮች ገጽ ርዕስ ፣ የሰውነት BgColor ፣ tableBgColor እና rowBgColor ተቀናብረዋል።

    የአንድን ተለዋዋጭ ወይም አጠቃላይ ክፍል ዋጋ ለመደበቅ ከስሙ ፊት አንድ ነጥብ ማስቀመጥ ያስፈልግዎታል። በዚህ አጋጣሚ, የማዋቀሪያውን ፋይል ሲጫኑ, ይህ ውሂብ ሊነበብ አይችልም. በምሳሌው ላይ ግንኙነቱን ለመመስረት የሚጠቅመው የይለፍ ቃል እና የተጠቃሚ ስም እንዳይታወቅ የውሂብ ጎታ ክፍሉን እንዲደበቅ አድርገናል።

    የተቀላቀለ preg_replace (የተደባለቀ ስርዓተ-ጥለት፣ የተቀላቀለ ምትክ፣ የተቀላቀለ ርዕሰ ጉዳይ [፣ int limit])

    የስርዓተ-ጥለት ግጥሚያዎችን ለማግኘት የሕብረቁምፊውን ርዕሰ ጉዳይ ፈልጎ በመተካት ይተካቸዋል። የገደብ መለኪያው ከተገለጸ, የአብነት ገደብ ክስተቶች ይተካሉ; ገደቡ ከተተወ ወይም ከ -1 ጋር እኩል ከሆነ ሁሉም የስርዓተ-ጥለት ክስተቶች ይተካሉ።

    መተካቱ የ \\ n ወይም (ከPHP 4.0.4 ጀምሮ) $n ማጣቀሻዎችን ሊይዝ ይችላል፣ ሁለተኛው ተመራጭ ነው። እያንዳንዱ እንደዚህ ያለ ማጣቀሻ ከ n "n ንኡስ ጥለት ጋር በሚዛመድ ንዑስ ሕብረቁምፊ ይተካል። n ​​ከ 0 እስከ 99 እሴቶችን ሊወስድ ይችላል ፣ በማጣቀሻ \\ 0 (ወይም $ 0) ከጠቅላላው ስርዓተ-ጥለት ክስተት ጋር ይዛመዳል። ንዑስ አንቀጾች ከአንድ ጀምሮ ከግራ ወደ ቀኝ ተቆጥረዋል።

    የንዑስ ስርዓተ-ጥለት ማጣቀሻዎችን በመጠቀም የዱር ካርድ ምትክ ሲጠቀሙ, ጭምብሉ ወዲያውኑ በቁጥር የተከተለበት ሁኔታ ሊፈጠር ይችላል.

    በዚህ ሁኔታ፣ እንደ \\n ያለ ምልክት ስህተትን ያስከትላል፡-የመጀመሪያው ንኡስ ክፍል ማጣቀሻ ከቁጥር 1 ቀጥሎ \\11 ተብሎ ይጻፋል፣ እሱም እንደ አስራ አንደኛው ንዑስ ክፍል ማጣቀሻ ይተረጎማል።

    ይህ አለመግባባት ሊወገድ የሚችለው ግንባታ \$(1)1 በመጠቀም ሲሆን ይህም የመጀመሪያውን ንኡስ ንድፍ ለብቻው የሚያመለክት ሲሆን ከዚያም ዲጂት 1 ነው.

    የዚህ ምሳሌ ውጤት የሚከተለው ይሆናል-

    ኤፕሪል 1,2003


    በተግባር አፈጻጸም ወቅት የስርዓተ ጥለት ተዛማጅ ከተገኘ፣ የተሻሻለው የርዕሰ ጉዳይ እሴት ይመለሳል፣ አለበለዚያ ዋናው ርዕሰ ጉዳይ ይመለሳል።

    የፕሪግ_መተካት() የመጀመሪያዎቹ ሶስት ግቤቶች ባለ አንድ-ልኬት ድርድሮች ሊሆኑ ይችላሉ። አደራደሩ ቁልፎችን የሚጠቀም ከሆነ፣ ድርድርን በሚሰራበት ጊዜ በድርድር ውስጥ ባሉበት ቅደም ተከተል ይወሰዳሉ።

    የፕሪግ_መተካት() የመጀመሪያዎቹ ሶስት ግቤቶች ባለ አንድ-ልኬት ድርድሮች ሊሆኑ ይችላሉ። አደራደሩ ቁልፎችን የሚጠቀም ከሆነ፣ ድርድርን በሚሰራበት ጊዜ በድርድር ውስጥ ባሉበት ቅደም ተከተል ይወሰዳሉ።

    ለስርዓተ-ጥለት እና ለመተካት በድርድር ውስጥ ያሉትን ቁልፎች መግለጽ አማራጭ ነው።

    የርዕሰ-ጉዳዩ ግቤት ድርድር ከሆነ፣ ጥለት ፍለጋ እና መተካት ለእያንዳንዳቸው አካላት ይከናወናሉ።

    የተመለሰው ውጤትም ድርድር ይሆናል።

    ስርዓተ-ጥለት እና መተኪያ መለኪያዎች ድርድሮች ከሆኑ፣ preg_replace() ከሁለቱም ድርድሮች ጥንድ ንጥረ ነገሮችን በማውጣት ለፍለጋ እና ለመተካት ስራ ይጠቀምባቸዋል።


    የመተኪያ አደራደሩ ከስርዓተ-ጥለት የበለጡ ንጥረ ነገሮችን ከያዘ የጎደሉትን ንጥረ ነገሮች ለመተካት ባዶ ሕብረቁምፊዎች ይወሰዳሉ።

    ስርዓተ ጥለት ድርድር ከሆነ እና መተካቱ ሕብረቁምፊ ከሆነ እያንዳንዱ የስርዓተ-ጥለት ድርድር አካል ተፈልጎ በስርዓተ-ጥለት ይተካዋል (ሁሉም የድርድር አካላት በተራው ስርዓተ-ጥለት ይሆናሉ ፣ ምትክ ሕብረቁምፊው ተስተካክሎ ይቆያል)።

    ስርዓተ-ጥለት ሕብረቁምፊ ሲሆን መተካት ደግሞ ድርድር ሲሆን ያለው አማራጭ ትርጉም አይሰጥም።


    የ/e መቀየሪያው የፕሪግ_replace() ተግባርን ባህሪ ይለውጣል፣ተለዋዋጭ መለኪያው አስፈላጊውን ምትክ ካደረገ በኋላ እንደ ፒኤችፒ ኮድ ይተረጎማል እና ከዚያ በኋላ ለመተካት ብቻ ጥቅም ላይ ይውላል። ይህንን ማሻሻያ ሲጠቀሙ ይጠንቀቁ፡ የምትክ መለኪያው ትክክለኛ ፒኤችፒ ኮድ መያዝ አለበት፣ አለበለዚያ የአገባብ ስህተት የ preg_replace() ተግባር ጥሪ በያዘው መስመር ላይ ይከሰታል።

    ምሳሌ 3. ብዙ ንድፎችን በመጠቀም መተካት

    ይህ ምሳሌ ይወጣል፡-

    • ሁሉንም የኤችቲኤምኤል መለያዎች ወደ አቢይ ሆሄ ይለውጣል
    • ምሳሌ 5፡ HTML ወደ ጽሑፍ መለወጫ
    • የሕብረቁምፊ ዓይነት እሴቶች የጽሑፍ ሕብረቁምፊዎች (ሕብረቁምፊዎች ለአጭር) ናቸው። ሕብረቁምፊ የዜሮ ወይም የበለጡ ቁምፊዎች ቅደም ተከተል ነው። ቁምፊዎች ፊደሎችን፣ ቁጥሮችን፣ ሥርዓተ-ነጥብ፣ ልዩ ቁምፊዎችን እና ክፍተቶችን ያካትታሉ።
    • ሕብረቁምፊ በአራት መንገዶች ሊገለጽ ይችላል፡-
    ድርብ ጥቅሶች

    ነጠላ ጥቅሶች

    ሄዶክ አገባብ

    Nowdoc አገባብ


    ድርብ ጥቅሶች ውስጥ ሕብረቁምፊ

    ሕብረቁምፊ በድርብ ጥቅሶች፡-

    የማምለጫ ቅደም ተከተሎችን በድርብ በተጠቀሱ ሕብረቁምፊዎች ውስጥ መጠቀም ትችላለህ። የማምለጫ ቅደም ተከተሎች የጽሑፍ ውፅዓትን ለመቅረጽ የሚያገለግሉ ልዩ ቁምፊዎች ናቸው። የሚከተሉት የማምለጫ ቅደም ተከተሎች በ PHP ውስጥ ይገኛሉ፡-

    ድርብ-የተጠቀሱ ሕብረቁምፊዎች ዋና ንብረት በሕብረቁምፊዎች ውስጥ ተለዋዋጮችን የማስተናገድ ችሎታ ነው።

    የዶላር ምልክት: \$";

    በድርብ ጥቅሶች ውስጥ የተዘጉ ሕብረቁምፊዎች ነጠላ ቁምፊዎችን ሊይዙ ይችላሉ፡

    ከድርብ-የተጠቀሱ ሕብረቁምፊዎች እና የሐዲስ አገባብ በተለየ፣ በነጠላ ጥቅሶች ውስጥ የተዘጉ ተለዋዋጮች እና የቁጥጥር ቅደም ተከተሎች (ከአንድ በስተቀር) አይሰሩም። ይህ ማለት እንደ መደበኛ የሕብረቁምፊ ቁምፊዎች ይተረጎማሉ ማለት ነው፡-

    $num = 10; አስተጋባ" ቁጥር: $num
    ድርብ ጥቅሶች ውስጥ ሕብረቁምፊ

    ነጠላ ጥቅሶችን በነጠላ ጥቅሶች ውስጥ በተዘጋ ሕብረቁምፊ ውስጥ ለመጠቀም፣ ከኋላ ማጥፋት (\) በመጠቀም ማምለጥ ያስፈልግዎታል።

    አስተጋባ "ውስጥ \" ነጠላ \" ጥቅሶችን ተጠቀም"; አስተጋባ "Backslash: \\";

    በነጠላ ጥቅሶች ውስጥ የተዘጉ ሕብረቁምፊዎች ድርብ ጥቅሶችን ሊይዙ ይችላሉ፡-

    አስተጋባ "ድርብ ጥቅስ:";

    ሄዶክ አገባብ

    ሄርዶክ አገባብ ሕብረቁምፊዎችን ለመጻፍ አማራጭ መንገድ ነው።

    በHeredoc አገባብ የተገለጸው ሕብረቁምፊ በድርብ ጥቅሶች ውስጥ ከተዘጋው ሕብረቁምፊ ጋር ተመሳሳይ ነው። በሄሬዶክ እና በድርብ በተጠቀሰው ሕብረቁምፊ መካከል ያለው ልዩነት ከሄሬዶክ ጋር ድርብ ጥቅሶችን ማምለጥ አያስፈልግም።

    Heredoc አገባብ በሦስት ቁምፊዎች ይጀምራል