More Related Content Similar to Dynamic web 7 (10) More from Usukhuu Galaa (20) Dynamic web 71. LOGO
PHP хэлний зарим стандарт
функцууд
Хичээлийн нэр: Динамик вэб програмчлал
Хичээлийн төрөл: Лекц /№7-8/
Багшийн нэр: Г.Өсөхжаргал
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