Dynamic web 7

1,758 views

Published on

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
1,758
On SlideShare
0
From Embeds
0
Number of Embeds
590
Actions
Shares
0
Downloads
0
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Dynamic web 7

  1. 1. LOGO PHP хэлний зарим стандарт функцуудХичээлийн нэр: Динамик вэб програмчлалХичээлийн төрөл: Лекц /№7-8/Багшийн нэр: Г.Өсөхжаргал
  2. 2. Хичээлийн агуулга Regular expression Огноо болон цаг хугацаатай ажиллахфункцууд Математик функцууд 2
  3. 3. Regular expression 3
  4. 4. Regular Expression-ын тухай Regular Expression нь текст болон тэмдэгтмөртэй ажиллах, түүн дээр хайлт, тулгалт,боловсруулалт хийхэд ашиглагддаг хүчирхэгхэрэгсэл юм. PHP хэлэнд Regular Expression дэмждэгфункцуудыг POSIX (ereg /Extended Regular Expression /гэсэн үгээр эхэлнэ.) Perl (Perl нь preg /Perl Regular Expression /гэсэн үгээр эхэлнэ) гэж хуваан үздэг 4
  5. 5. Хайлт буюу тулгалт хийхБичигдэх хэлбэр: ereg(загвар бүхий хайх т_мөр, хайлт явуулах т_мөр) Тэмдэгт мөрөөс загвар бүхий тэмдэгт мөр байгаа эсэхийг шалгаад Boolean төрлийн утга буцаана. if (ereg("cat", "raining cats and dogs")) print "Found cat"; // "Found cat“ хэвлэнэ 5
  6. 6. Тэмдэгттэй ажиллах[ ]-өгөгдсөн нэг тэмдэгтийг төлөөлнө.$var="pap is pop song. This is pep. Oh pup";if(ereg("p[aeiou]р",$var)) echo "Oldloo"; //биелэнэ else echo “Oldsongui";$var хувьсагчийн утгаас 3 үсгээс бүрдсэн, р үсгээрэхлээд, р үсгээр төгссөн, голын үсэг нь a, e, i, o, uүсгүүдийн аль нэг байх тэмдэгт мөрийг хайж байна. 6
  7. 7. Тэмдэгттэй ажиллах$found = ereg("[ABC][123]", "A1 Quality");өгөгдсөн тэмдэгт мөрөөс эхнийх нь тэмдэгт, хоёр дахь ньтоо гэсэн хоёр тэмдэгтээс бүрдсэн "A1", "A2", "A3","B1", ... гэх мэтчлэнгийн тэмдэгт мөрийг хайж байна.$found = ereg("[0-3][0-9]", "27"); //үнэн$found = ereg("[0-3][0-9]", "42"); //худал 7
  8. 8. Тэмдэгттэй ажиллах. –ямар ч хамаагүй нэг тэмдэгтийгтөлөөлнө. ereg("c.t", "cat");Өгөгдсөн тэмдэгт мөрөөс 3 үсгээс бүрдсэн, с үсгээрэхлээд, t үсгээр төгссөн, голын үсэг нь ямар ч хамаагүйбайх тэмдэгт мөрийг хайж байнаereg("c.t", "cut"); //үнэнereg("c.t", "c t"); //үнэнereg("c.t", "ct"); //худалereg("c.t", "bat"); //худал 8
  9. 9. Тэмдэгттэй ажиллах^ – бусад тэмдэгт гэдгийг төлөөлнө.$found = ereg("p[^h]p","pap"); //үнэнӨгөгдсөн тэмдэгт мөрөөс 3 үсгээс бүрдсэн, р үсгээрэхлээд, р үсгээр төгссөн, голын үсэг нь h-ээс бусадтэмдэгт байх тэмдэгт мөрийг хайж байна. "pap", "pbp", "pcp“ байж болох ба "php"байж болохгүй 9
  10. 10. Тэмдэгттэй ажиллах[0-9] 0-ээс 9 хоорондох ямар нэг цифр[a-z] жижиг a-аас жижиг z хоорондох ямарнэг тэмдэгт[A-Z] том A-аас том Z хоорондох ямар нэгтэмдэгт[a-zA-Z] том A-аас жижиг z хоорондох ямарнэг тэмдэгтийг төлөөлнө.$found=ereg("[^0-9a-zA-Z]","123abc");//худалТоо, үсгээс бусад тэмдэгтийг хайж олно. 10
  11. 11. Эхлэл, төгсгөлийг тулгах^ - эхлэлийг төлөөлнө.$ - төгсгөлийг төлөөлнө.echo $match=ereg("^to",$var);//үнэнecho $match=ereg("be$",$var);//үнэнecho $match=ereg("^or",$var);//худал 11
  12. 12. Эхлэл болон эсрэгийн ялгаа$var="1234567";$match=ereg("^[0-9]",$var);//тоогоор эхэлсэн тэмдэгт мөрийг хайж байна.$match="[^0-9]", $var);//ямар нэг цифр агуулаагүй тэмдэгт мөрийг хайжбайна. 12
  13. 13. Заавал болон давтагдсныг хайх? – дэд тэмдэгт мөр 0 эсвэл 1 удаа давтагдсанбайхыг төлөөлнө. Өөрөөр хэлбэл тухайн тэмдэгтмөр заавал байх ёстойг илэрхийлнэ$found=ereg("pe?p","pep");// үнэн$found=ereg("pe?p","pp"); // үнэн$found=ereg("pe?p","peep"); //худалЭхний болон сүүлчийн үсэг нь р, дунд нь e үсэг нэгудаа орсон эсвэл ороогүй тохиолдолыг хайжбайна. 13
  14. 14. Заавал болон давтагдсныг хайх+ – дэд тэмдэгт мөр заавал 1 түүнээс олон удаадавтагдсан байхыг төлөөлнө.$found=ereg("ab+a", "aa");// худал$found=ereg("ab+a ", "aba"); // үнэн$found=ereg("ab+a ","abba"); //үнэнХоёр захын тэмдэг нь а үсэг бөгөөд, дундаа b үсгийг1-ээс олон удаа давтагдсан байх хэлбэртэй тэмдэгтмөрийг хайж байна. 14
  15. 15. Заавал болон давтагдсныг хайх* – дэд тэмдэгт мөр заавал 0 түүнээс олон удаадавтагдсан байхыг төлөөлнө.$found=ereg("po*p","pp");// үнэн$found=ereg("po*p","pop"); // үнэн$found=ereg("po*p","poop"); //үнэнЭхний болон сүүлчийн үсэг нь р, дунд нь o үсэг олонудаа орсон эсвэл ороогүй тохиолдолыг хайж байна. 15
  16. 16. Заавал болон давтагдсныг хайх{} – дэд тэмдэгт хэд давтагдаж орохыг заана.$valid=ereg("[0-7]{3}","075";// үнэн$valid=ereg("[0-7]{3}","75"; //худал0-7 хүртэлх цифр орсон 3 тэмдэгтийг хайж байна. 16
  17. 17. Заавал болон давтагдсныг хайх$val="58273";$val=ereg("^[0-9]{4,6}$", $val);// үнэн$val="5827003";$val=ereg("^[0-9]{4,6}$", $val);// худалБүх тоон цифрээр эхэлсэн ба төгссөн, нийт 4-өөс 6тэмдэгтийг хайж байна. Эхлэл төгсгөлийг тулгахтэмдэгт тавьсан байвал түүнийг ямар нэг тэмдэгтмөр дотроос хайх биш дангаар нь хайна гэсэн үг. 17
  18. 18. Заавал болон давтагдсныг хайх$val="582769986456245003";$val=ereg("[0-9]{4,6}", $val);// үнэнБүх тоон цифр оролцсон 4-өөс 6 тэмдэг хайжбайгаа зүйл дотор байна уу гэж хайж байна. 18
  19. 19. Заавал болон давтагдсныг хайхereg("[0-9]{3}-[0-9]{3}-[0-9]{4}", "303-555-1212"); // үнэнereg("[0-9]{3}-[0-9]{3}-[0-9]{4}", "64-9-555-1234"); //худалХоорондоо дундуур зураасаар тусгаарлагдсангурван хэсэг тэмдэгтүүд байх бөгөөд эхний 2 хэсэгнь 0 ээс 9 хүртэлх цифр тус бүр 3 удаа, сүүлчийнхнь хэсэг 0 ээс 9 хүртэлх цифр 4 удаа орсон байххэлбэртэй тэмдэгт мөрийг хайж байна. 19
  20. 20. Бүлэглэн хайх()- бүлэг үүсгэхэд ашиглана.$pattern="^(http://)?[a-zA-Z]+(.[a-zA-Z]+)+$";$found=ereg($pattern,"www.ora.com");Вэб хаягийг шалгаж байнаhttp:// гэсэн тэмдэгтээр эхлэх(^) ба энэ нь нэг удааэсвэл байхгүй (?)байж болно. Дараа нь залгаад [a-zA-Z] буюу бүх төрлийн латин үсэг нэг буюу түүнээсолон давтагдаж (+) орно. Түүний араас цэгийн(.)араас бүх төрлийн латин үсэг нэг буюу түүнээсолон давтагдаж ороод, энэ бүлэг нь бас нэгээс олондавтагдаад энэ хэлбэрээр төгсөнө 20
  21. 21. Хайлтаар олдсон тэмдэг мөрийн хадгалахБичигдэх хэлбэр:ereg(загвар бүхий хайх т_мөр, хайлт явуулах т_мөр,олдсон т_мөрийг хадгалах массив)$parts=array();$value="2009-03-28";$pattern="^([0-9]{4})-([0-9]{2})-([0-9]{2})$";ereg($pattern, $value, $parts);print_r($parts);//Array ( [0] => 2009-03-28 [1] => 2009 [2] => 03 [3]=> 28 ) 21
  22. 22. Хайлтаар олдсон тэмдэгт мөрийн өөр тэмдэгт мөрөөр солихБичигдэх хэлбэр:ereg_replace(загвар бүхий хайх т_мөр,солих т_мөр, хайлт явуулах т_мөр)$value="2009-03-28";$pattern="^([0-9]{4})-([0-9]{2})-([0-9]{2})$";print ereg_replace($pattern, 3/2/1, $value);//28/03/20092009-03-28 тэмдэгт мөрөөс ^([0-9]{4})-([0-9]{2})-([0-9]{2})$тулгалт хийн хайлт явуулаад олдсон тэмдэгт мөрийг 3/2/1 хэлбэрт буюу 3 дахь илэрцийг хамгийн эхэнд, дараань 2 дахь илэрцийг, хамгийн сүүлд 1 дэх илэрцийг хооронднь / тэмдэгтээр тусгаарласан хэлбэрээр солилт хийжбайна. 22
  23. 23. Хайж олсон үр дүнг массивруу буцаахБичигдэх хэлбэр:split(загвар бүхий хайх т_мөр, хайлт явуулахт_мөр)$sentence= "my name is bat";$words=split("[^a-zA-Z]+",$sentence);print_r($words);//Array ( [0] => my [1] => name [2] => is [3] =>bat ) 23
  24. 24. Огноо функцууд 24
  25. 25. Огноо ба цаг хугацааВэб сайт нь ямар нэг газарзүйн байршилдзахирагддагүй тул тухайн вэбд зочилж буйзочид нь дэлхийн ялгаатай цагийн бүсүүдэдбайрладаг. тиймээс вэбээр дамжуулан ямар нэгүйлчилгээ хийхэд цагийн бүсийг ялгах нь чухалбайдаг.Огноо болон цагийн хандлагыг Бүсчлэгдсэн цагийн хуваарь (UTC, GMT)Огнооны утгуудыг массивт хадагалах хэлбэр(Unix TimeStamp) гэж хуваадаг. 25
  26. 26. Одоогийн TimeStamp үүсгэхБичигдэх хэлбэр: time( )Одоогийн идэдвхитэй огноо болон цагхугацааны timestamp-ыг бүхэл тоонутгаар буцаана. print time( ); //1232455590Энэ нь 1970.1.1-ны шөнө дундын GMTцагаас хойш одоог хүртэл өнгөрсөнсекундын тоо. Буцааж байгаа бүхэл тоонутгыг TimeStamp гэнэ. 26
  27. 27. Тодорхой огноогоор TimeStamp үүсгэхБичигдэх хэлбэр:mktime(int hour, int minute, int second, intmonth, int day, int year) December 13, 1901 -ээс January 19, 2038хоорон дахь өнгөрсөн болон ирээдүйхугацаанд зориулсан timestamp үүсгэнэ.//9:30 A.M. on June 18, 1998$aDate = mktime(9, 30, 0, 6, 18, 1998); // 898162200 27
  28. 28. TimeStamp-ыг ойлгомжтой хэлбэрт шилжүүлэхБичигдэх хэлбэр:date(string format[,int timestamp])// 08:15am 24 Aug 1974-ийн timestamp$var = mktime(8, 15, 25, 8, 24, 1974);print date(d/m/Y, $var); // "24/08/1974"print date(m/d/y, $var); // "08/24/74"print date(Born on l jS of F, $var);// "Born on Saturday 24th of August" 28
  29. 29. Огноог хэлбэржүүлэхБичигдэх хэлбэр:date(хэлбэр[,timestamp])a "am" or "pm"A "AM" or "PM"d Сарын өдрийг хоёр оронгоор ( "01" to "31“)D Долоо хоногийн өдрийг 3 үсгээр ("Fri“)F Сарыг бүтэн тэкстээр ("January“)g Цагийг 1 – 12 хүртлэх тоогоор (“1" to “12")G Цагийг 0-23 хүртлэх тоогоор ("0" to "23")B Интернэт цаг (000-999) 29
  30. 30. хэлбэрүүдh Цагийг хоёр оронтой тоогоор ("01" to "12“)H Цагийг хоёр оронтой тоогоор ("00" to "23“)i Минут 0 - 59 хүрлэх хоёр оронтой тоогоор ( "00" to "59" )j Сарын өдрийг 1-31 хүртлэх тоогоор ("1" to "31“)l (жижиг L) Долоо хоногийн өдрийг бүтэн текстээр ("Friday“)m Сарыг ("01" to "12“)M Сарыг 3 тэмдэгтээр ("Jan“)n Cарыг 1-12 хүртлэх тоогоор ( "1" to "12" ) 30
  31. 31. хэлбэрүүдs Секунтыг 0-59 хүрлэх тоогоор ("00" to "59“)S Англи хэлний дугаарлалтын 2тэмдэгт залган:"st", "nd", "rd", "th"t Сарын хоногийн тоог ( "28" to "31" )w Долоо хоногийн өдрийг 0-6 хүртлэх тоогоор("0" (Sunday) to "6" (Saturday) )Y Жилийг 4 оронтой тоогоор ("1999")y Жилийг 2 оронтой тоогоор ("99“)z Жилийн өдрийг ( "0" to "365“) 31
  32. 32. хэлбэрүүдL Өндөр жил мөн эсэхийг тогтооно (1,0)O GMT цагийн ялгааг буцаахW Жилийн долоо хоногийн тоог буцаана.T Тухайн компьютерийн цагийн бүсийг гаргахU Time функцтэй ижил үүрэгтэй 32
  33. 33. TimeStamp-ыг массивын элемэнт болгон авахБичигдэх хэлбэр:getdate([int timestamp])$todayStamp=time();$today = getdate($todayStamp);print_r($today);Array ( [seconds] => 1 [minutes] => 44 [hours] =>3 [mday] => 22 [wday] => 4 [mon] => 1 [year] =>2009 [yday] => 21 [weekday] => Thursday[month] => January [0] => 1232595841 ) 33
  34. 34. Массивын түлхүүрүүдseconds Секундыг тоогоор буцаана. 0 -ээс 59minutes Минуыг тоогоор буцаана. 0 -ээс 59hours Цагийг тоогоор буцаана. 0 -ээс 23mday Сарын өдрийг тоогоор 1 -ээс 31 буцаана.wday Долоо хоногийн өдрийг 0/бямба/ тоогоор буцаана. -ээс 6/ням/mon Сарыг тоогоор буцаана. 1 -ээс 12 34
  35. 35. Массивын түлхүүрүүдyear Жилийг 4 оронтой тоо Жишээ: хэлбэрээр буцаана. 1999, 2009yday Жилийн өдрүүдийг тоон 0 -ээс 366 хэлбэрээр буцаана.Weekday Долоо хоногийн өдрийг бүтэн Sunday- хэлбэрээр буцаана Saturdaymonth Сарыг бүтэн текстэн January – хэлбэрээр буцаана. December 35
  36. 36. Огноог шалгахБичигдэх хэлбэр:checkdate(month,day,year)$month=01;$day=22;$year=2009;if(checkdate($month,$day,$year)) echo "OK";else echo "not OK"; 36
  37. 37. Математикфункцууд 37
  38. 38. Абсолют утга бодохБичигдэх хэлбэр: integer abs(integer number) float abs(float number) print abs(-1); // 1 print abs(1); // 1 print abs(-145.89); // 145.89 print abs(145.89); // 145.89 38
  39. 39. Ойролцоо бүхэл утгаруу шилжихБичигдэх хэлбэр: float ceil(float value) float floor(float value) print ceil(27.3); // 28 print floor(27.3); // 27 39
  40. 40. Ойролцоо утгыг олохБичигдэх хэлбэр: float round(float value [,integer precision]) print round(10.4); // 10 print round(10.5); // 11 print round(2.40964, 3); // 2.410 print round(567234.56, -3); // 567000 print round(567234.56, -4); // 570000 40
  41. 41. Тооллын систем хооронд шилжүүлэх10-таас 2-труу, 2-тоос 10-труу шилжүүлэхБичигдэх хэлбэр: string decbin(integer number) integer bindec(string binarystring) print decbin(45); // "101101" print bindec("1001011"); // 75 41
  42. 42. Тооллын систем хооронд шилжүүлэх10-таас 16-труу, 16-таас 10-труу шилжүүлэхБичигдэх хэлбэр: string dechex(integer number) integer hexdec(string hexstring) print dechex(45); // "2D" print hexdec("5a7b"); // 23163 42
  43. 43. Тооллын систем хооронд шилжүүлэх10-таас 8-труу, 8-таас 10-труу шилжүүлэхБичигдэх хэлбэр: string decoct(integer number) integer octdec(string octalstring) print decoct(45); // "55“ print octdec("777"); // 511 43
  44. 44. Тригонометрийн функцуудfloat sin(float arg) Синус бодно./радианаар өгөгдсөн arg утгын/float cos(float arg) Косинус бодно.float tan(float arg) Тангес бодно.float asin(float arg) Арксинус бодно.float acos(float arg) Арккосинус бодно.float atan(float arg) Арктангес бодно.float pi( ) Пи утгыг буцаанаfloat deg2rad(float arg) Градусыг радианруу харвүүлнэ.float rad2deg(float arg) Радианыг градусруу харвүүлнэ. 44
  45. 45. Зэрэг болон логирифмын функцуудfloat exp(float arg) e тооны arg зэргийг бодно. Е=2,718282float pow(float base, Base-ын exp зэргийг бодно.number exp)float sqrt(float arg) Arg-аас язгуур гарганаfloat log(float arg [, Base-гүй тохиолдолд натуралfloat base]) логирифм бодно. Харин base-тэй тохиолдолд arg-ын base суурьтай логирифм бодноfloat log10(float arg) Arg-ын 10 суурьтай логирифм бодно 45
  46. 46. Санамсаргүй утга авах функцБичигдэх хэлбэр: integer rand( ) 0-ээс getmaxrand( )-ын хоорондох утгуудаас санамсаргүй утга авна. getmaxrand( ) //3276726574 integer rand(integer min,integer max) min-ээс max-ын хоорондох утгуудаас санамсаргүй утга авна. print rand( ); // between 0 and getmaxrand( ) print rand(1, 6); // between 1 and 6 (inclusive) 46

×