SlideShare a Scribd company logo
LOGO


        PHP хэлний зарим стандарт
                функцууд




Хичээлийн нэр:     Динамик вэб програмчлал

Хичээлийн төрөл:   Лекц /№7-8/

Багшийн нэр:       Г.Өсөхжаргал
Хичээлийн агуулга

 Regular expression

    Огноо болон цаг хугацаатай ажиллах
функцууд
 Математик функцууд




                       2
Regular expression



        3
Regular Expression-ын тухай
     Regular Expression нь текст болон тэмдэгт
мөртэй ажиллах, түүн дээр хайлт, тулгалт,
боловсруулалт хийхэд ашиглагддаг хүчирхэг
хэрэгсэл юм.
   PHP хэлэнд Regular Expression дэмждэг
функцуудыг
   POSIX (ereg /Extended Regular Expression /
гэсэн үгээр эхэлнэ.)
   Perl (Perl нь preg /Perl Regular Expression /
гэсэн үгээр эхэлнэ) гэж хуваан үздэг

                         4
Хайлт буюу тулгалт хийх
Бичигдэх хэлбэр:
 ereg(загвар бүхий хайх т_мөр, хайлт
 явуулах т_мөр)
 Тэмдэгт мөрөөс загвар бүхий тэмдэгт мөр
 байгаа эсэхийг шалгаад Boolean төрлийн утга
 буцаана.
 if (ereg("cat", "raining cats and dogs"))
       print "Found 'cat'";
                        // "Found 'cat'“ хэвлэнэ

                         5
Тэмдэгттэй ажиллах

[ ]-өгөгдсөн нэг тэмдэгтийг төлөөлнө.
$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
Тэмдэгттэй ажиллах
$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
Тэмдэгттэй ажиллах
. –ямар ч хамаагүй                нэг    тэмдэгтийг
төлөөлнө.
    ereg("c.t", "cat");
Өгөгдсөн тэмдэгт мөрөөс 3 үсгээс бүрдсэн, с үсгээр
эхлээд, t үсгээр төгссөн, голын үсэг нь ямар ч хамаагүй
байх тэмдэгт мөрийг хайж байна
ereg("c.t", "cut"); //үнэн
ereg("c.t", "c t"); //үнэн
ereg("c.t", "ct"); //худал
ereg("c.t", "bat"); //худал
                            8
Тэмдэгттэй ажиллах
^ – бусад тэмдэгт гэдгийг төлөөлнө.
$found = ereg("p[^h]p","pap"); //үнэн
Өгөгдсөн тэмдэгт мөрөөс 3 үсгээс бүрдсэн, р үсгээр
эхлээд, р үсгээр төгссөн, голын үсэг нь h-ээс бусад
тэмдэгт байх тэмдэгт мөрийг хайж байна.


     "pap", "pbp", "pcp“ байж болох ба "php"
байж болохгүй


                          9
Тэмдэгттэй ажиллах
[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
Эхлэл, төгсгөлийг тулгах

^ - эхлэлийг төлөөлнө.

$ - төгсгөлийг төлөөлнө.
echo $match=ereg("^to",$var);//үнэн

echo $match=ereg("be$",$var);//үнэн

echo $match=ereg("^or",$var);//худал



                      11
Эхлэл болон эсрэгийн ялгаа

$var="1234567";

$match=ereg("^[0-9]",$var);

//тоогоор эхэлсэн тэмдэгт мөрийг хайж байна.

$match="[^0-9]", $var);

//ямар нэг цифр агуулаагүй тэмдэгт мөрийг хайж
байна.

                          12
Заавал болон давтагдсныг хайх
? – дэд тэмдэгт мөр 0 эсвэл 1 удаа давтагдсан
байхыг төлөөлнө. Өөрөөр хэлбэл тухайн тэмдэгт
мөр заавал байх ёстойг илэрхийлнэ
$found=ereg("pe?p","pep");// үнэн
$found=ereg("pe?p","pp"); // үнэн
$found=ereg("pe?p","peep"); //худал
Эхний болон сүүлчийн үсэг нь р, дунд нь e үсэг нэг
удаа орсон эсвэл ороогүй тохиолдолыг хайж
байна.


                         13
Заавал болон давтагдсныг хайх
+ – дэд тэмдэгт мөр заавал 1 түүнээс олон удаа
давтагдсан байхыг төлөөлнө.

$found=ereg("ab+a", "aa");// худал

$found=ereg("ab+a ", "aba"); // үнэн

$found=ereg("ab+a ","abba"); //үнэн

Хоёр захын тэмдэг нь а үсэг бөгөөд, дундаа b үсгийг
1-ээс олон удаа давтагдсан байх хэлбэртэй тэмдэгт
мөрийг хайж байна.       14
Заавал болон давтагдсныг хайх
* – дэд тэмдэгт мөр заавал 0 түүнээс олон удаа
давтагдсан байхыг төлөөлнө.
$found=ereg("po*p","pp");// үнэн

$found=ereg("po*p","pop"); // үнэн

$found=ereg("po*p","poop"); //үнэн

Эхний болон сүүлчийн үсэг нь р, дунд нь o үсэг олон
удаа орсон эсвэл ороогүй тохиолдолыг хайж байна.
                         15
Заавал болон давтагдсныг хайх
{} – дэд тэмдэгт хэд давтагдаж орохыг заана.



$valid=ereg("[0-7]{3}","075";// үнэн

$valid=ereg("[0-7]{3}","75"; //худал



0-7 хүртэлх цифр орсон 3 тэмдэгтийг хайж байна.


                          16
Заавал болон давтагдсныг хайх
$val="58273";
$val=ereg("^[0-9]{4,6}$", $val);
// үнэн
$val="5827003";
$val=ereg("^[0-9]{4,6}$", $val);
// худал
Бүх тоон цифрээр эхэлсэн ба төгссөн, нийт 4-өөс 6
тэмдэгтийг хайж байна. Эхлэл төгсгөлийг тулгах
тэмдэгт тавьсан байвал түүнийг ямар нэг тэмдэгт
мөр дотроос хайх биш дангаар нь хайна гэсэн үг.
                         17
Заавал болон давтагдсныг хайх
$val="582769986456245003";
$val=ereg("[0-9]{4,6}", $val);// үнэн

Бүх тоон цифр оролцсон 4-өөс 6 тэмдэг хайж
байгаа зүйл дотор байна уу гэж хайж байна.




                           18
Заавал болон давтагдсныг хайх

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
Бүлэглэн хайх
()- бүлэг үүсгэхэд ашиглана.
$pattern="^(http://)?[a-zA-Z]+(.[a-zA-Z]+)+$";
$found=ereg($pattern,"www.ora.com");
Вэб хаягийг шалгаж байна
http:// гэсэн тэмдэгтээр эхлэх(^) ба энэ нь нэг удаа
эсвэл байхгүй (?)байж болно. Дараа нь залгаад [a-
zA-Z] буюу бүх төрлийн латин үсэг нэг буюу түүнээс
олон давтагдаж (+) орно. Түүний араас цэгийн
(.)араас бүх төрлийн латин үсэг нэг буюу түүнээс
олон давтагдаж ороод, энэ бүлэг нь бас нэгээс олон
давтагдаад энэ хэлбэрээр төгсөнө
                               20
Хайлтаар олдсон тэмдэг мөрийн
               хадгалах
Бичигдэх хэлбэр:
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
Хайлтаар олдсон тэмдэгт мөрийн
        өөр тэмдэгт мөрөөр солих
Бичигдэх хэлбэр:
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/2009
2009-03-28 тэмдэгт мөрөөс ^([0-9]{4})-([0-9]{2})-([0-9]{2})$
тулгалт хийн хайлт явуулаад олдсон тэмдэгт мөрийг 
3/2/1 хэлбэрт буюу 3 дахь илэрцийг хамгийн эхэнд, дараа
нь 2 дахь илэрцийг, хамгийн сүүлд 1 дэх илэрцийг хооронд
нь / тэмдэгтээр тусгаарласан хэлбэрээр солилт хийж
байна.
                                22
Хайж олсон үр дүнг массивруу
                  буцаах
Бичигдэх хэлбэр:
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
Огноо ба цаг хугацаа
Вэб сайт нь ямар нэг газарзүйн байршилд
захирагддагүй тул тухайн вэбд зочилж буй
зочид нь дэлхийн ялгаатай цагийн бүсүүдэд
байрладаг. тиймээс вэбээр дамжуулан ямар нэг
үйлчилгээ хийхэд цагийн бүсийг ялгах нь чухал
байдаг.
Огноо болон цагийн хандлагыг
 Бүсчлэгдсэн цагийн хуваарь (UTC, GMT)
Огнооны утгуудыг массивт хадагалах хэлбэр
(Unix TimeStamp)
 гэж хуваадаг.
                      25
Одоогийн TimeStamp үүсгэх
Бичигдэх хэлбэр:
     time( )
Одоогийн идэдвхитэй огноо болон цаг
хугацааны timestamp-ыг бүхэл тоон
утгаар буцаана.
     print time( ); //1232455590
Энэ нь 1970.1.1-ны шөнө дундын GMT
цагаас хойш одоог хүртэл өнгөрсөн
секундын тоо. Буцааж байгаа бүхэл тоон
утгыг TimeStamp гэнэ.
                   26
Тодорхой огноогоор TimeStamp
               үүсгэх
Бичигдэх хэлбэр:
mktime(int hour, int minute, int second, int
month, 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
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
Огноог хэлбэржүүлэх
Бичигдэх хэлбэр:
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
хэлбэрүүд

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
хэлбэрүүд

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
хэлбэрүүд

L   Өндөр жил мөн эсэхийг тогтооно (1,0)
O   GMT цагийн ялгааг буцаах

W   Жилийн долоо хоногийн тоог буцаана.
T   Тухайн компьютерийн цагийн бүсийг гаргах

U   Time функцтэй ижил үүрэгтэй




                 32
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
Массивын түлхүүрүүд

seconds   Секундыг тоогоор буцаана.   0 -ээс 59
minutes   Минуыг тоогоор буцаана.     0 -ээс 59
hours     Цагийг тоогоор буцаана.     0 -ээс 23
mday      Сарын өдрийг тоогоор        1 -ээс 31
          буцаана.
wday      Долоо хоногийн өдрийг       0/бямба/
          тоогоор буцаана.            -ээс 6/ням/
mon       Сарыг тоогоор буцаана.      1 -ээс 12



                         34
Массивын түлхүүрүүд

year       Жилийг 4 оронтой тоо          Жишээ:
           хэлбэрээр буцаана.            1999, 2009
yday       Жилийн өдрүүдийг тоон         0 -ээс 366
           хэлбэрээр буцаана.
Weekday    Долоо хоногийн өдрийг бүтэн   Sunday-
           хэлбэрээр буцаана             Saturday
month      Сарыг бүтэн текстэн           January –
           хэлбэрээр буцаана.            December




                         35
Огноог шалгах

Бичигдэх хэлбэр:
checkdate(month,day,year)
$month=01;
$day=22;
$year=2009;
if(checkdate($month,$day,$year))
      echo "OK";
else
      echo "not OK";
                     36
Математик
функцууд


    37
Абсолют утга бодох
Бичигдэх хэлбэр:
 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
Ойролцоо бүхэл утгаруу шилжих

Бичигдэх хэлбэр:
 float ceil(float value)
 float floor(float value)

 print ceil(27.3);      // 28
 print floor(27.3);             // 27




                        39
Ойролцоо утгыг олох

Бичигдэх хэлбэр:
 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
Тооллын систем хооронд
             шилжүүлэх
10-таас 2-труу, 2-тоос 10-труу шилжүүлэх
Бичигдэх хэлбэр:
 string decbin(integer number)
 integer bindec(string binarystring)


 print decbin(45);                       // "101101"
 print bindec("1001011");        // 75



                            41
Тооллын систем хооронд
              шилжүүлэх
10-таас 16-труу, 16-таас 10-труу шилжүүлэх
Бичигдэх хэлбэр:
 string dechex(integer number)
 integer hexdec(string hexstring)

 print dechex(45);                  // "2D"
 print hexdec("5a7b");        // 23163



                         42
Тооллын систем хооронд
              шилжүүлэх
10-таас 8-труу, 8-таас 10-труу шилжүүлэх
Бичигдэх хэлбэр:
 string decoct(integer number)
 integer octdec(string octalstring)


 print decoct(45);                 // "55“
 print octdec("777");        // 511

                        43
Тригонометрийн функцууд

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
Зэрэг болон логирифмын функцууд

float exp(float arg)     e тооны arg зэргийг бодно.
                         Е=2,718282
float 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
Санамсаргүй утга авах функц
Бичигдэх хэлбэр:
 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

More Related Content

PPT
Dynamic web 5
PPT
Dynamic web 10
PPT
Dynamic web 6
PPT
Dynamic web 11
PPT
Dynamic web 3-4
PPT
Dynamic web 9
PPTX
PPTX
Dynamic web 5
Dynamic web 10
Dynamic web 6
Dynamic web 11
Dynamic web 3-4
Dynamic web 9

What's hot (13)

DOCX
Dynamic web 3
PPT
Day 3 php working with string, number
 
ODT
сургааль үгс
DOC
U.cs101 лаборатори 8
DOC
баяраа сургалт
DOCX
Lesson 7
PPTX
Лекц №13
PDF
Лекц №14
PPTX
Лекц №16
PDF
PPTX
Excel
DOCX
Html tag
PPTX
Presentation1
Dynamic web 3
Day 3 php working with string, number
 
сургааль үгс
U.cs101 лаборатори 8
баяраа сургалт
Lesson 7
Лекц №13
Лекц №14
Лекц №16
Excel
Html tag
Presentation1
Ad

Viewers also liked (20)

PPT
Secuenca didáctica1
PPTX
C++ vndsen oilgolt хичээл 1
PPTX
U.cs101 алгоритм программчлал-12
PDF
1.сонгуулийн маргааныг хянан шийдвэрлэх ажиллагааны эрхзүйн орчинг боловс...
ODP
хэрэглэгдэхүүн 3
ODP
Gurvaljni angilal
PDF
Системийн шинжилгээ, зохиомж
PDF
Сэлэнгэ зочид буудлын систем
DOCX
Зочид буудлын өрөө захиалгын шаардлага
DOC
User requirements
PDF
Progress on adapting BlobSeer to WAN scale
PPTX
Leadership & Social Media Aicpa Leadership Academy
PPT
Instructional power point
PPTX
Oasis & The Sun website case study
PPT
Time To Care, Time To Play: Wellbeing, Social Work and the Shorter Working Week
PPTX
How to Leverage Social Media to Promote Your Blog
PPT
NAv6TF I Pv6 State Of Union Jan 2008
DOCX
Аттила ба Европ дахь Хүн нар М.Баянбулаг
DOCX
бодлогын баримт бичиг
ODP
трапецийн талбай
Secuenca didáctica1
C++ vndsen oilgolt хичээл 1
U.cs101 алгоритм программчлал-12
1.сонгуулийн маргааныг хянан шийдвэрлэх ажиллагааны эрхзүйн орчинг боловс...
хэрэглэгдэхүүн 3
Gurvaljni angilal
Системийн шинжилгээ, зохиомж
Сэлэнгэ зочид буудлын систем
Зочид буудлын өрөө захиалгын шаардлага
User requirements
Progress on adapting BlobSeer to WAN scale
Leadership & Social Media Aicpa Leadership Academy
Instructional power point
Oasis & The Sun website case study
Time To Care, Time To Play: Wellbeing, Social Work and the Shorter Working Week
How to Leverage Social Media to Promote Your Blog
NAv6TF I Pv6 State Of Union Jan 2008
Аттила ба Европ дахь Хүн нар М.Баянбулаг
бодлогын баримт бичиг
трапецийн талбай
Ad

Similar to Dynamic web 7 (10)

ODP
Бие даалт
PPT
Day 4 php working with date and time, array
 
PPTX
Presentation1
PPTX
Presentation1
PPTX
Presentation1
PPTX
Presentation1
ODT
Лаборатор-3
PPTX
E 130521092716-phpapp01
PPTX
E 130521092716-phpapp01
Бие даалт
Day 4 php working with date and time, array
 
Presentation1
Presentation1
Presentation1
Presentation1
Лаборатор-3
E 130521092716-phpapp01
E 130521092716-phpapp01

More from Usukhuu Galaa (20)

DOCX
DOCX
DOCX
DOCX
DOCX
Rdbms bie daalt
DOCX
Rdbms 300 test
PPTX
DOCX
нийтлэл 1
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT
PPT

Dynamic web 7

  • 1. LOGO PHP хэлний зарим стандарт функцууд Хичээлийн нэр: Динамик вэб програмчлал Хичээлийн төрөл: Лекц /№7-8/ Багшийн нэр: Г.Өсөхжаргал
  • 2. Хичээлийн агуулга  Regular expression  Огноо болон цаг хугацаатай ажиллах функцууд  Математик функцууд 2
  • 4. Regular Expression-ын тухай Regular Expression нь текст болон тэмдэгт мөртэй ажиллах, түүн дээр хайлт, тулгалт, боловсруулалт хийхэд ашиглагддаг хүчирхэг хэрэгсэл юм. PHP хэлэнд Regular Expression дэмждэг функцуудыг POSIX (ereg /Extended Regular Expression / гэсэн үгээр эхэлнэ.) Perl (Perl нь preg /Perl Regular Expression / гэсэн үгээр эхэлнэ) гэж хуваан үздэг 4
  • 5. Хайлт буюу тулгалт хийх Бичигдэх хэлбэр: ereg(загвар бүхий хайх т_мөр, хайлт явуулах т_мөр) Тэмдэгт мөрөөс загвар бүхий тэмдэгт мөр байгаа эсэхийг шалгаад Boolean төрлийн утга буцаана. if (ereg("cat", "raining cats and dogs")) print "Found 'cat'"; // "Found 'cat'“ хэвлэнэ 5
  • 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. Тэмдэгттэй ажиллах $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. Тэмдэгттэй ажиллах . –ямар ч хамаагүй нэг тэмдэгтийг төлөөлнө. 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. Тэмдэгттэй ажиллах ^ – бусад тэмдэгт гэдгийг төлөөлнө. $found = ereg("p[^h]p","pap"); //үнэн Өгөгдсөн тэмдэгт мөрөөс 3 үсгээс бүрдсэн, р үсгээр эхлээд, р үсгээр төгссөн, голын үсэг нь h-ээс бусад тэмдэгт байх тэмдэгт мөрийг хайж байна. "pap", "pbp", "pcp“ байж болох ба "php" байж болохгүй 9
  • 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. Эхлэл, төгсгөлийг тулгах ^ - эхлэлийг төлөөлнө. $ - төгсгөлийг төлөөлнө. echo $match=ereg("^to",$var);//үнэн echo $match=ereg("be$",$var);//үнэн echo $match=ereg("^or",$var);//худал 11
  • 12. Эхлэл болон эсрэгийн ялгаа $var="1234567"; $match=ereg("^[0-9]",$var); //тоогоор эхэлсэн тэмдэгт мөрийг хайж байна. $match="[^0-9]", $var); //ямар нэг цифр агуулаагүй тэмдэгт мөрийг хайж байна. 12
  • 13. Заавал болон давтагдсныг хайх ? – дэд тэмдэгт мөр 0 эсвэл 1 удаа давтагдсан байхыг төлөөлнө. Өөрөөр хэлбэл тухайн тэмдэгт мөр заавал байх ёстойг илэрхийлнэ $found=ereg("pe?p","pep");// үнэн $found=ereg("pe?p","pp"); // үнэн $found=ereg("pe?p","peep"); //худал Эхний болон сүүлчийн үсэг нь р, дунд нь e үсэг нэг удаа орсон эсвэл ороогүй тохиолдолыг хайж байна. 13
  • 14. Заавал болон давтагдсныг хайх + – дэд тэмдэгт мөр заавал 1 түүнээс олон удаа давтагдсан байхыг төлөөлнө. $found=ereg("ab+a", "aa");// худал $found=ereg("ab+a ", "aba"); // үнэн $found=ereg("ab+a ","abba"); //үнэн Хоёр захын тэмдэг нь а үсэг бөгөөд, дундаа b үсгийг 1-ээс олон удаа давтагдсан байх хэлбэртэй тэмдэгт мөрийг хайж байна. 14
  • 15. Заавал болон давтагдсныг хайх * – дэд тэмдэгт мөр заавал 0 түүнээс олон удаа давтагдсан байхыг төлөөлнө. $found=ereg("po*p","pp");// үнэн $found=ereg("po*p","pop"); // үнэн $found=ereg("po*p","poop"); //үнэн Эхний болон сүүлчийн үсэг нь р, дунд нь o үсэг олон удаа орсон эсвэл ороогүй тохиолдолыг хайж байна. 15
  • 16. Заавал болон давтагдсныг хайх {} – дэд тэмдэгт хэд давтагдаж орохыг заана. $valid=ereg("[0-7]{3}","075";// үнэн $valid=ereg("[0-7]{3}","75"; //худал 0-7 хүртэлх цифр орсон 3 тэмдэгтийг хайж байна. 16
  • 17. Заавал болон давтагдсныг хайх $val="58273"; $val=ereg("^[0-9]{4,6}$", $val); // үнэн $val="5827003"; $val=ereg("^[0-9]{4,6}$", $val); // худал Бүх тоон цифрээр эхэлсэн ба төгссөн, нийт 4-өөс 6 тэмдэгтийг хайж байна. Эхлэл төгсгөлийг тулгах тэмдэгт тавьсан байвал түүнийг ямар нэг тэмдэгт мөр дотроос хайх биш дангаар нь хайна гэсэн үг. 17
  • 18. Заавал болон давтагдсныг хайх $val="582769986456245003"; $val=ereg("[0-9]{4,6}", $val);// үнэн Бүх тоон цифр оролцсон 4-өөс 6 тэмдэг хайж байгаа зүйл дотор байна уу гэж хайж байна. 18
  • 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. Бүлэглэн хайх ()- бүлэг үүсгэхэд ашиглана. $pattern="^(http://)?[a-zA-Z]+(.[a-zA-Z]+)+$"; $found=ereg($pattern,"www.ora.com"); Вэб хаягийг шалгаж байна http:// гэсэн тэмдэгтээр эхлэх(^) ба энэ нь нэг удаа эсвэл байхгүй (?)байж болно. Дараа нь залгаад [a- zA-Z] буюу бүх төрлийн латин үсэг нэг буюу түүнээс олон давтагдаж (+) орно. Түүний араас цэгийн (.)араас бүх төрлийн латин үсэг нэг буюу түүнээс олон давтагдаж ороод, энэ бүлэг нь бас нэгээс олон давтагдаад энэ хэлбэрээр төгсөнө 20
  • 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. Хайлтаар олдсон тэмдэгт мөрийн өөр тэмдэгт мөрөөр солих Бичигдэх хэлбэр: 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/2009 2009-03-28 тэмдэгт мөрөөс ^([0-9]{4})-([0-9]{2})-([0-9]{2})$ тулгалт хийн хайлт явуулаад олдсон тэмдэгт мөрийг 3/2/1 хэлбэрт буюу 3 дахь илэрцийг хамгийн эхэнд, дараа нь 2 дахь илэрцийг, хамгийн сүүлд 1 дэх илэрцийг хооронд нь / тэмдэгтээр тусгаарласан хэлбэрээр солилт хийж байна. 22
  • 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
  • 25. Огноо ба цаг хугацаа Вэб сайт нь ямар нэг газарзүйн байршилд захирагддагүй тул тухайн вэбд зочилж буй зочид нь дэлхийн ялгаатай цагийн бүсүүдэд байрладаг. тиймээс вэбээр дамжуулан ямар нэг үйлчилгээ хийхэд цагийн бүсийг ялгах нь чухал байдаг. Огноо болон цагийн хандлагыг  Бүсчлэгдсэн цагийн хуваарь (UTC, GMT) Огнооны утгуудыг массивт хадагалах хэлбэр (Unix TimeStamp) гэж хуваадаг. 25
  • 26. Одоогийн TimeStamp үүсгэх Бичигдэх хэлбэр: time( ) Одоогийн идэдвхитэй огноо болон цаг хугацааны timestamp-ыг бүхэл тоон утгаар буцаана. print time( ); //1232455590 Энэ нь 1970.1.1-ны шөнө дундын GMT цагаас хойш одоог хүртэл өнгөрсөн секундын тоо. Буцааж байгаа бүхэл тоон утгыг TimeStamp гэнэ. 26
  • 27. Тодорхой огноогоор TimeStamp үүсгэх Бичигдэх хэлбэр: mktime(int hour, int minute, int second, int month, 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. 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. Огноог хэлбэржүүлэх Бичигдэх хэлбэр: 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. хэлбэрүүд 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. хэлбэрүүд 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. хэлбэрүүд L Өндөр жил мөн эсэхийг тогтооно (1,0) O GMT цагийн ялгааг буцаах W Жилийн долоо хоногийн тоог буцаана. T Тухайн компьютерийн цагийн бүсийг гаргах U Time функцтэй ижил үүрэгтэй 32
  • 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. Массивын түлхүүрүүд seconds Секундыг тоогоор буцаана. 0 -ээс 59 minutes Минуыг тоогоор буцаана. 0 -ээс 59 hours Цагийг тоогоор буцаана. 0 -ээс 23 mday Сарын өдрийг тоогоор 1 -ээс 31 буцаана. wday Долоо хоногийн өдрийг 0/бямба/ тоогоор буцаана. -ээс 6/ням/ mon Сарыг тоогоор буцаана. 1 -ээс 12 34
  • 35. Массивын түлхүүрүүд year Жилийг 4 оронтой тоо Жишээ: хэлбэрээр буцаана. 1999, 2009 yday Жилийн өдрүүдийг тоон 0 -ээс 366 хэлбэрээр буцаана. Weekday Долоо хоногийн өдрийг бүтэн Sunday- хэлбэрээр буцаана Saturday month Сарыг бүтэн текстэн January – хэлбэрээр буцаана. December 35
  • 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. Ойролцоо бүхэл утгаруу шилжих Бичигдэх хэлбэр: float ceil(float value) float floor(float value) print ceil(27.3); // 28 print floor(27.3); // 27 39
  • 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. Тооллын систем хооронд шилжүүлэх 10-таас 2-труу, 2-тоос 10-труу шилжүүлэх Бичигдэх хэлбэр: string decbin(integer number) integer bindec(string binarystring) print decbin(45); // "101101" print bindec("1001011"); // 75 41
  • 42. Тооллын систем хооронд шилжүүлэх 10-таас 16-труу, 16-таас 10-труу шилжүүлэх Бичигдэх хэлбэр: string dechex(integer number) integer hexdec(string hexstring) print dechex(45); // "2D" print hexdec("5a7b"); // 23163 42
  • 43. Тооллын систем хооронд шилжүүлэх 10-таас 8-труу, 8-таас 10-труу шилжүүлэх Бичигдэх хэлбэр: string decoct(integer number) integer octdec(string octalstring) print decoct(45); // "55“ print octdec("777"); // 511 43
  • 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. Зэрэг болон логирифмын функцууд float exp(float arg) e тооны arg зэргийг бодно. Е=2,718282 float 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. Санамсаргүй утга авах функц Бичигдэх хэлбэр: 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