Professional Documents
Culture Documents
Web Lec 8
Web Lec 8
CS380
Arrays
3
Name Function
strcmp харьцуулах
strstr, strchr Мөр доторх тэмдэгтийг олох
strpos мөрийн тоон байрлалыг олох
str_replace, substr_replace мөрийг солих
$toaddress = “feedback@example.com”;
if(strstr($feedback, “shop”)
$toaddress = “shop@example.com”;
else
CS380
if(strstr($feedback, “delivery”)
$toaddress = “fulfillment@example.com”;
PHP

Regular expressions
11
CS380
Printing HTML tags in PHP = bad style
13
<?php
print "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n";
print " \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n";
print "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
print " <head>\n";
print " <title>Geneva's web page</title>\n";
...
for ($i = 1; $i <= 10; $i++) {
print "<p> I can count to $i! </p>\n";
}
?> HTML
PHP-ийн хамгийн сайн загвар бол суулгагдсан PHP кодын хэвлэх/echo
мэдэгдлийг багасгах явдал юм
гэхдээ хэвлэхгүйгээр бид хуудас руу динамик контентыг хэрхэн оруулах вэ?

PHP expression blocks
14
...
<body>
<p>Watch how high I can count:
<?php
for ($i = 1; $i <= 10; $i++) {
?>
<? $i ?>
</p>
</body>
</html> PHP
...
<body>
<?php
for ($i = 1; $i <= 3; $i++) {
?>
<h<?= $i ?>>This is a level <?= $i ?> heading.</h<?= $i ?>>
<?php
}
?>
</body> PHP
CS380
Functions
19
CS380

Default Parameter Values
20
print_separated("hello"); # h, e, l, l, o
print_separated("hello", "-"); # h-e-l-l-o
PHP
хэрэв ямар ч утгыг дамжуулаагүй бол анхдагч утгыг ашиглана

4 PHP include file
CS380
22
PHP Include File
Нэг PHP файлын агуулгыг сервер ажиллуулахаас өмнө өөр PHP
файл руу оруулна
Ашиглах
include() нь анхааруулга үүсгэдэг боловч скрипт нь
үргэлжлүүлэн ажиллах болно
require() нь аюултай алдаа гаргахад скрипт зогсох болно
CS380

include() example
23
<a href="/default.php">Home</a>
<a href="/tutorials.php">Tutorials</a>
<a href="/references.php">References</a>
<a href="/examples.php">Examples</a>
<a href="/contact.php">Contact Us</a> PHP
<html>
<body>
<div class="leftmenu">
<?php include("menu.php"); ?>
</div>
</body>
</html> PHP

24
Reading/writing an entire file
# reverse a file
$text = file_get_contents("poem.txt");
$text = strrev($text);
file_put_contents("poem.txt", $text); PHP
CS380

25
Appending to a file
# add a line to a file
$new_text = "P.S. ILY, GTG TTYL!~";
file_put_contents("poem.txt", $new_text, FILE_APPEND);
PHP
$lines = file("todolist.txt",FILE_IGNORE_NEW_LINES);
PHP

Unpacking an array: list
27
CS380

Fixed-length files, file and list
28
Xenia Mountrouidou
(919)685-2181
570-86-7326 contents of file
personal.txt
list($name, $phone, $ssn) = file("personal.txt");
PHP
CS380

29
Splitting/joining strings
$array = explode(delimiter, string);
$string = implode(delimiter, array);
PHP
$class = "CS 380 01";
$class1 = explode(" ", $s); # ("CS", “380", “01")
$class2 = implode("...", $a); # "CSE...380...01"
PHP
CS380

30
Reading directories
function description
"өгөгдсөн директор доторх бүх файлын
scandir нэрсийн массивыг буцаана ("myfile.txt" гэх
мэт зөвхөн файлын нэрийг буцаана) "
"өгөгдсөн загварт тохирох бүх файлын
нэрсийн массивыг буцаана ("foo/bar/
glob
myfile.txt" гэх мэт файлын зам болон нэрийг
буцаана) "
CS380

Example for glob
31
CS380

Example for scandir
32
<ul>
<?php
$folder = "taxes/old";
foreach (scandir($folder) as $filename) {
?>
<li> <?= $filename ?> </li>
<?php
}
?>
</ul> PHP
• .
• ..
• 2009_w2.pdf
• 2007_1099.doc output

5 PHP Exceptions
CS380
34
Exceptions
Заасан алдаа (онцгой) нөхцөл байдал үүссэн тохиолдолд кодын
гүйцэтгэлийн хэвийн урсгалыг өөрчлөхөд ашигладаг.
Exceptions зүйл тохиолдоход ихэвчлэн юу тохиолддог вэ?
одоогийн кодын төлөв хадгалагдана
кодын гүйцэтгэл нь урьдчилан тодорхойлсон (захиалгат) онцгой
байдлын зохицуулагч функц рүү шилжих болно
дараа нь зохицуулагч болно
хадгалсан кодын төлөвөөс гүйцэтгэлийг үргэлжлүүлэх,
скриптийн гүйцэтгэлийг зогсоох эсвэл
скриптийг кодын өөр газраас үргэлжлүүлнэ үү

35
Exception example
<?php
//create function with an exception
function checkStr($str)
{
if(strcmp($str, “correct”)!= 0)
{
throw new Exception(“String is not correct!");
}
return true;
}
//trigger exception
checkStr(“wrong”);
?> PHP

36
Exception example (cont.)
<?php
//create function with an exception
function checkStr($str)
{
…
}
//catch exception
catch(Exception $e)
{
echo 'Message: ' .$e->getMessage();
}
?> PHP

6 PHP cookies and sessions
CS380
38
Cookies
Асуудал: HTTP харьяалалгүй байна
Күүки гэж юу вэ?
Үйлчлүүлэгчийн машин дээр вэб сайт хадгалах боломжтой
өчүүхэн мэдээлэл
Үйлчлүүлэгчээс шинэ хуудас хүсэх болгонд тэдгээрийг вэб
сайт руу буцааж илгээдэг.

39
Bad Cookies?
Urban myth: мөрдөх, хувийн нууцыг зөрчих
Бодит байдал:
cookies харьцангуй хор хөнөөлгүй байдаг
зөвхөн бага хэмжээний мэдээллийг хадгалах боломжтой
CS380

40
Sessions
Sessions гэж юу вэ?
сервер талын күүки болон үйлчлүүлэгчийн күүкийн хослол,
клиент талын күүки нь зөвхөн сервер дээрх зөв өгөгдлийн
лавлагааг агуулна.
хэрэглэгч сайтад зочлох үед:
Тэдний хөтөч нь лавлагааны кодыг сервер рүү илгээдэг
сервер холбогдох өгөгдлийг ачаална.
CS380

41
Cookies vs Sessions
Күүкийг урт наслахаар тохируулж болно
Веб серверийн кластертай үед күүки нь жигд ажилладаг
Сессүүд сервер дээр хадгалагддаг, өөрөөр хэлбэл
үйлчлүүлэгчид таны хадгалсан мэдээлэлд хандах эрхгүй
Session өгөгдлийг хуудас бүрээр дамжуулах шаардлагагүй;
Үйлчлүүлэгчид ID илгээхэд л хангалттай бөгөөд өгөгдлийг
дотоод файлаас ачаална.
Session нь таны сервер дээр явагддаг тул таны хүссэн хэмжээтэй
байж болно.

42
Create a cookie
setcookie(name, value, expire, path, domain);
PHP
<?php
setcookie("user", “Harry Poter", time()+3600);
?>
<html>
.....
PHP

43
Delete a Cookie
<?php
// set the expiration date to one hour ago
setcookie("user", "", time()+3600);
?>
PHP

44
Start/end a session
bool session_start ( void )
bool session_destroy ( void ) PHP
$_SESSION['var'] = $val;
$_SESSION['FirstName'] = "Jim"; PHP

7 Form Basics
CS380
46
Web Data
Ихэнх сонирхолтой вэб хуудсууд нь өгөгдлийг тойрон эргэлддэг
Жишээ нь: Google, IMDB, Digg, Facebook, YouTube, Rotten
Tomatoes
текст, HTML, XML, мультимедиа зэрэг олон форматыг авч
болно
Тэдний олонх нь бидэнд өөрсдийн өгөгдөлд хандах боломжийг
олгодог
Зарим нь бүр бидэнд өөрсдийн шинэ мэдээллээ оруулахыг
зөвшөөрдөг
Ихэнх сервер талын вэб програмууд нь гүйцэтгэлийг удирдан
чиглүүлдэг параметрүүдийг хүлээн зөвшөөрдөг
CS380

47
Reading/writing an entire file
URL?name=value&name=value...
http://example.com/student_login.php?username=xenia&sid=1234567
CS380

48
HTML forms
form: хэрэглэгчийн мэдээллийг
хүлээн авч вэб сервер рүү
мэдээллийг илгээдэг UI
удирдлагын бүлэг
Өгөгдлийн сервер рүү асуулгын
мөр болгон илгээдэг

49
HTML form: <form>
<form action="destination URL">
form controls
</form>
HTML
CS380
52
Form controls: <input>
<!-- 'q' happens to be the name of Google's required
parameter -->
<input type="text" name="q" value="Colbert Report" />
<input type="submit" value="Booyah!" />
HTML
нэрийн шинж чанараар бүлэглэсэн (нэг удаад зөвхөн нэгийг шалгаж болно)
тус бүрдээ утгыг зааж өгөх ёстой, эс тэгвээс энэ нь утга болгон илгээгдэх
болно

58
Text labels: <label>
<label><input type="radio" name="cc" value="visa"
checked="checked" /> Visa</label>
<label><input type="radio" name="cc" value="mastercard" /
> MasterCard</label>
<label><input type="radio" name="cc" value="amex" />
American Express</label>
HTML
<select name="favoritecharacter">
<option>Frodo</option>
<option>Bilbo</option>
<option selected="selected">Gandalf</option>
<option>Galandriel</option>
</select>
HTML