THIET KE WEBSITE GIA RE

THIET KE WEBSITE GIA RE

  • RSS Thế Giới BlackBerry

    • Mẹo vặt về sử dụng blackberry
      Cùng học cách áp dụng các mẹo vặt và phím tắt cho chiếc smartphone BlackBerry (lưu ý: có một số ứng dụng không hỗ trợ cho các dòng BB cổ) của bạn. Hãy bắt đầu bằng cách chọn các ứng dụng dưới đây: • Tìm kiếm • Đính kèm • Trình duyệt • Camera • […]
    • Game Linh Vương trên blackberry
      Download game linh vuong Chúc bạn thành công – www.ticsoft.com (Nguồn: Sưu tầm)Filed under: Games blackberry Tagged: blackberry, game, linh vuong
    • Assasin’s Creed 81xx,83xx,87xx và 88xx
      Download Chúc bạn thành công – www.ticsoft.com (Nguồn: Sưu tầm)Filed under: Games blackberry Tagged: 81xx, 83xx, 87xx, 88xx, Assasin's Creed, blackberry
    • Game Prince of Persia- Hoàng tử Ba Tư
      Prince of Persia – Hoàng Tử Ba Tư, series game đình đám của “ông lớn” Ubisoft đã làm ngây ngất bao trái tim của các game thủ trên các hệ máy chơi game, đã được làm lại trên các hệ điện thoại khác nhau (Chủ yếu cho Nokia S60- cái này em search trên 4rum […]
    • Diamond Twister-Game xếp kim cương cho mọi người
      Đúng với tên gọi, Diamond Twister có gameplay tương tự game xếp kim cương trên máy tính đã làm điêu đứng chị em văn phòng 1 thời.Nay với Diamond Twister trên Blackberry thì chị em Tinh tế lại có thời gian bên em BB yêu quí.Với màu sắc bắt mắt và cốt truyện hay, Diamond […]
    • The Sims 3 cho 83xx
      Download The Sim Chúc bạn thành công – www.ticsoft.com (Nguồn: Sưu tầm)Filed under: Games blackberry Tagged: 83xx, blackberry, the sim
    • Konami Pes 2010 cho các dòng blackberry
      Konami Pes 2010 cho các dòng blackberry
    • Lưu trữ tin nhắn SMS trên Blackberry
      Lưu trữ tin nhắn SMS trên Blackberry Nếu vô tình xóa đi các tin nhắn quan trọng trên điện thoại thì Dexrex SMS Backup sẽ là vị cứu tinh cho bạn. Cách thức lưu trữ và sắp xếp tất cả tin nhắn gửi/nhận SMS từ BlackBerry cũng tương tự như các trình tin nhắn và […]
    • Game xếp gạch cho blackberry
      Game xếp gạch cho blackberry, hãy nhìn vào hình vẽ để biết phím đánh game này nha Download game xếp gạch Chúc bạn thành công – http://www.ticsoft.com – thiết kế websitePosted in Games blackberry Tagged: blackberry, game, xếp gạch
    • Yamee – Phần mềm chat yahoo tốn ít kb nhất
      Các bạn tải file zip về , giải nén thành file Yamee.jar , copy vô thẻ nhớ của BB , xong vào Media trên BB , mở Menu–>Explore–> Media Card –> nhấn vào Yamee.jar –> download (nghĩa là tải từ file java vô máy chứ ko connect với mạng đâu, yên tâm , không tốn […]

Sử dụng Session trong PHP

Posted by thietkewebsitegiare on 18/07/2009

Trang web HTML thông thường sẽ ko thể truyền dữ liệu từ trang này sang trang khác. Nói 1 cách khác là tất cả thông tin trở thành quên lãng khi một trang web mới được tải. Điều này gây khó khăn cho một số công việc như là mua hàng ( shopping carts) – những thứ cần thiết dữ liệu ( sản phẩm người dùng đã chọn) ghi nhớ từ trang này sang trang khác

Khái niệm về Sessions trong PHP

PHP session giải quyết vấn đề này bằng cách cho phép lưu trữ dữ liệu của người dùng trên server để sử dụng về sau ( như username, món hàng …)Tuy nhiên những thông tin session này chỉ là tạm thời và thường bị xoá đi ngay khi người dùng rời khỏi trang web đã dùng session.
Chính vì tính tạm thời này mà nếu bứng dụng của bạn cần thiết lưu trữ dữ liệu 1 cách lâu dài , bạn hãy dùng các cách lưu trữ khác như là csdl Mysql

Session hoạt động bằng cách tạo 1 chuỗi unique (UID) cho từng vistore và chứa thông tin dựa trên ID đó. việc này sẽ giúp tránh tình trạng dữ liệu bị xung đột giữa các user
Lưu ý: Nếu bạn vẫn còn ít kinh nghiệm về việc dùng session trong ứng dụng thì ko nên dùng nó trên các website đòi hỏi bảo mật cao vì rất dễ gây ra các lỗ hổng bảo mật nguy hiểm
Bắt đầu với PHP Session
Việc đầu tiên trước khi bạn làm bất cứ việc gì với session là bạn phải chạy nó trước, và nó dc đặt ngay trên đầu trong code của bạn, trước khi HTML dc xuất ra

Dưới đây là 1 ví dụ đơn giản về việc tạo session trong PHP

PHP Code:
Code:
<?php
session_start(); // start up your PHP session!
?>

đoạn mã ngắn trên sẽ đăng kí cho ng dùng 1 session ở trên Server, cho phép bạn lưu thông thông tin của ng dùng và đưa nó vào UID cho session của user đó

Lưu giá trị của session

Khi bạn muốn lưu trữ 1 thông tin nào đó ở session, dc dùng như 1 mảng kết hợp. đó là nơi bạn lưu và lấy dữ liệu ra. sau đây là 1 ví dụ đơn giản cho việc đơn giản này ^^

PHP Code:
Code:
<?php
session_start();
$_SESSION[‘views’] = 1; // lưu views
echo “Pageviews = “. $_SESSION[‘views’]; //lấy views và hiện thị
?>

out

output:
Pageviews = 1

trong ví dụ này, chúng ta đã học dc cách lưu trữ của biến session thông qua mảng kết hợp $_SESSION và cũng như cách lấy nó ra

Sử dụng SESSION

Bây giờ chúng ta đã biết cách lưu và lấy dử liệu từ biến $_SESSION, mọi chuyện thật dễ dàng phải ko, và tiếp theo ta sẽ tìm hiểu 1 vài hàm liên qua đến session.
Khi bạn tạo 1 biến và lưu nó vào 1 session, bạn có lẽ muốn dùng nó sau này, tuy nhiên, trước khi bạn dùng biến session đó, bạn nên kiểm tra nó đã dc khởi tạo hay chưa.

Thao tác này được thực hiện thông qua hàm isset, isset là 1 hàm kiểm tra bất kì biến nào và nó đã dc khởi tạo và gán giá trị hay chưa.

Qua nhưng ví dụ trên, chúng ta có thể tạo 1 bộ đếm đơn giản cho 1 trang bằng cách sử dùng isset để kiểm tra nó đa dc tạo hay chưa và gán giá trị cho nó. Đây là 1 ví dụ:

PHP Code:
Code:
<?php
session_start();
if(isset($_SESSION[‘views’]))
$_SESSION[‘views’] = $_SESSION[‘views’]+ 1;
else
$_SESSION[‘views’] = 1;

echo “views = “. $_SESSION[‘views’];
?>

Trong lần chạy đầu tiền của trang m câu lệnh If sẽ trả về false vì chưa có biến session [views] nào được tạo cả. tuy nhiên, khi bạn refresh lại trang đó, thì câu lệnh if sẽ trả về giá trị true và biến đếm counter sẽ tăng lên 1 đơn vị. và sẽ tăng cho mỗi lần chạy của trang đó lên 1.

Xóa và Hủy Session

Mặt dù dữ liệu trong session chỉ mang tính chất tạm thời và nó ko yêu cầu phải xóa sau khi sử dụng, nhưng có thể trong trường hợp nào đó bạn phải xóa dữ liệu của nó cho mục đích của bạn.
Hãy tưởng tượng bạn đang điều hành 1 doanh nghiệp online, và 1 thanh viên đang dùng website của bạn mua 1 món hàng. Thành viên đó đã hoàn tất việc mua hàng (phiên giao dịch) trên website, do đó , bạn phải xóa mọi thứ trong session sau khi việc này hoàn tất.

PHP Code:
Code:
<?php
session_start();
if(isset($_SESSION[‘cart’]))
unset($_SESSION[‘cart’]);
?>

Bạn cũng có thể hủy hoàn toàn các session bằng cách gọi hàng session_destroy

PHP Code:
Code:
<?php
session_start();
session_destroy();
?>

Destroy sẽ reset session của bạn, do đó không nên gọi hàm này trước khi bạn còn muốn thao tác lên dữ liệu chứa trong session đó.

Chúc bạn thành công – www.ticsoft.com (Nguồn: phpvn)

Posted in Học PHP | Tagged: , , , | Leave a Comment »

Thao tác với email

Posted by thietkewebsitegiare on 18/06/2009

Trong PHP, chúng ta có thể viết các ứng dụng email ngon lành cỡ outlook một cách khá đơn giản. Bài viết này giới thiệu một số kỹ thuật dùng để gửi và nhận email bằng PHP.

Phần I. Gửi email bằng PHP

Trong PHP có hai cách gửi mail: Gửi email trực tiếp bằng hàm mail (chạy trực tiếp trên máy chủ) và gửi email thông qua một mail server khác (cách này phức tạp hơn so với cách trên vì ta phải kết nối tới máy kia và biết cách họat động của chùm giao thức SMTP).

1. Gửi email thông qua hàm mail()

Để gửi email trực tiếp từ máy chủ, ta có thể sử dụng hàm mail () với cú pháp như sau:

mail (dia_chi_nhan,tieu_de,noi_dung,cac_tham_so_mo_rong_tuy_chon).

Ví dụ:

Code:

<html>
<body>

<?php
if (isset($_REQUEST[’email’]))
//if “email” is filled out, send email
{
//send email
$email = $_REQUEST[’email’] ;
$to = $_REQUEST[‘to’] ;
$subject = $_REQUEST[‘subject’] ;
$message = $_REQUEST[‘message’] ;
mail( $to, “Subject: $subject”,$message” );
echo “Thank you for using our mail form”;
}
else
//if “email” is not filled out, display the form
{
echo “<form method=’post’ action=’phpmail.php’>
Người gửi: <input name=’email’ type=’text’ /><br />
Gửi tới: <input name=’to’ type=’text’ /><br />
Tiêu đề: <input name=’subject’ type=’text’ /><br />
Nội dung:<br />
<textarea name=’message’ rows=’15’ cols=’40’>
</textarea><br />
<input type=’submit’ />
</form>”;
}
?>

</body>
</html>

2. Kỹ thuật gửi email với phần Header mở rộng

Kỹ thuật này sẽ cho phép bạn đưa thêm một số thông tin vào phần Header của thông điệp email (Nếu bạn kiểm tra email sẽ có phần Header, trong đó ghi rất nhiều thông tin , chẳng hạn như địa chỉ IP xuất phát, qua những máy email nào, thời điểm…).

Ở đây chúng ta sẽ sử dụng phần tham số mở rộng.
VD:

Code:
$ThongTinMoRong=”From: webmaster@$SERVER_NAME\r\n”
.”Reply-To: webmaster@$SERVER_NAME\r\n”
.”X-Mailer: PHP/” . phpversion();
mail($EmailGui, $EmailNhan, $NoiDung,$ThongTinMoRong);

3. Kỹ thuật gửi email theo định dạng HTML.
Chú ý rằng ở chế độ mặc định, nội dung thông điệp được truyền tải đi dưới dạng văn bản thuần túy (plain text), và không thể hiện được các cấu trúc HTML thông thường. Để có thể đưa định dạng HTML vào mail, qua đó cho phép hiển thị hình ảnh, định dạng font chữ…, ta phải đưa thêm dòng sau đây vào phần header:

MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1

Ví dụ:

Code:
<?
/* recipients */
$to  = “Mary <mary@example.com>” . “, ” ; //note the comma
$to .= “Kelly <kelly@example.com>”;

/* subject */
$subject = “Birthday Reminders for August”;

/* message */
$message = ‘
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
‘;

/* To send HTML mail, you can set the Content-type header. */
$headers  = “MIME-Version: 1.0\r\n”;
$headers .= “Content-type: text/html; charset=iso-8859-1\r\n”;

/* additional headers */
$headers .= “From: Birthday Reminder <birthday@example.com>\r\n”;

$headers .= “Cc: birthdayarchive@example.com\r\n”;
$headers .= “Bcc: birthdaycheck@example.com\r\n”;

/* and now mail it */
mail($to, $subject, $message, $headers);
?>

Chúc bạn thành công – www.ticsoft.com (Nguồn: phpvn)

Posted in Học PHP | Tagged: , , | Leave a Comment »

Xử lý XML

Posted by thietkewebsitegiare on 18/06/2009

PHP5 cung cấp class SimpleXML là một class rất dễ sử dụng, bài này sẽ hướng dẫn các bạn parse file XML trong 7 nốt nhạc.

Đầu tiên, lấy một đoạn XML mẫu để tập tành phân tích:

Code:
<?xml version=”1.0″?>
<books>
<book isbn=”978-1594489501″>
<title>A Thousand Splendid Suns</title>
<author>Khaled Hosseini</author>
<publisher>Riverhead Hardcover</publisher>
<amazon_price>14.27</amazon_price>
</book>
<book isbn=”978-1594489587″>
<title>The Brief Wondrous Life of Oscar Wao</title>
<author>Junot Diaz</author>
<publisher>Riverhead Hardcover</publisher>
<amazon_price>14.97</amazon_price>
</book>
<book isbn=”978-0545010221″>
<title>Harry Potter and the Deathly Hallows</title>
<author>J. K. Rowling</author>
<publisher>Arthur A. Levine Books</publisher>
<amazon_price>19.24</amazon_price>
</book>
</books>

Để tạo ra một đối tượng SimpleXmlElement, cách đơn giản là truyền vào một chuỗi hoặc một file:

Code:
// Passing the XML
$books = SimpleXMLElement($XmlData);
//——————-
// Passing a filename
$books = SimpleXMLElement(‘books.xml’, null, true);

Nhìn vào đoạn XML ví dụ, ta sẽ lấy ra tất cả các book hay của Amazon:

Code:
<?php
// load SimpleXML
$books = new SimpleXMLElement(‘books.xml’, null, true);

echo <<<EOF
<table>
<tr>
<th>Title</th>
<th>Author</th>
<th>Publisher</th>
<th>Price at Amazon.com</th>
<th>ISBN</th>
</tr>

EOF;
foreach($books as $book) // loop through our books
{
echo <<<EOF
<tr>
<td>{$book->title}</td>
<td>{$book->author}</td>
<td>{$book->publisher}</td>
<td>${$book->amazon_price}</td>
<td>{$book[‘isbn’]}</td>
</tr>

EOF;
}
echo ‘</table>’;
?>

Bạn để ý rằng $books (có chữ ‘s’ nhé) là một Element do khái niệm mỗi một file XML thì phải có root element. Vì thế, đừng mong đợi có đối tượng SimpleXml không nhé. Mỗi element có thể có nhiều element con cùng loại hay khác loại, ví dụ này là cùng loại ‘book’ và class SimpleXmlElement này cho phép ta duyệt qua các element con cùng loại như một array như ví dụ foreach() ở trên.

Cuối cùng, nói về cú pháp truy cập child element và attribute. Bác nào chưa biết khái niệm này nữa thì:

Code:
<book isbn=”978-1594489501″>
<title>A Thousand Splendid Suns</title>
<author>Khaled Hosseini</author>
<publisher>Riverhead Hardcover</publisher>
<amazon_price>14.27</amazon_price>
</book>

isbn là một attribute, các giá trị của một attribute phải để trong dấu (“)
<title>, <author>,… là các child element

Chỉ giải thích tới đây thôi, bác nào có ý định ngâm cứu XML, XML Schema,… thì 5s gợi ý là nên … từ bỏ ý định ngông cuống thừa thời gian này đi vì có cả năm  may ra học mới xong mà học từ tháng 1-12 thì tới tháng 12 sẽ quên tháng 1 . Cứ việc coi nó như khái niểm HTML đã  học rồi xài cho thoải mái nhá.

Quay về cú pháp, lại coi ví dụ ‘simple’ trên: $book->title là truy cập child element trong khi $book[‘isbn’] là truy cập attribute. Done!!!

Đơn giản thế thôi, bạn thấy xử lý XML data có dễ chưa ?

Ví dụ trên, nếu bạn không thích dụng foreach thì có thể dùng biến counter $i, viết lại là $tempBook = $books->book[$i] rồi dùng $tempBook để xử lý.

Giờ thêm vào tí XPath cho nó bằng anh bằng em:

XPath đơn giản là cách chỉ ra đường dẫn “path” trong 1 XML document thông qua các element cha/con theo cú pháp giống như thư mục của linux: /home/user/… Xpath giúp bạn lọc ra các child element trong các element cha cùng loại, gom lại thành mảng và xử lý.

Ví dụ sau giúp bạn lấy ra tất cả các title của book và tất cả các số ISBN:

Code:
$titles = $books->xpath(‘book/title’);
foreach($titles as $title)
{
echo $title.PHP_EOL;
}
//////////////////////////////////////////////
$isbn = $books->xpath(‘book/@isbn’);
foreach($isbn as $isbn)
{
echo $isbn.PHP_EOL;
}

Nhớ chú ý cách dùng cú pháp / và /@ nhé.

Giờ parse thử RSS của tuổi trẻ coi sao nè

Code:
<?php
$rss = new SimpleXMLElement(‘http://www.tuoitre.com.vn/tianyon/RssView.aspx?ChannelID=16&#8242;, null, true);

echo “<h1><a href='{$rss->channel->link}’>{$rss->channel->title}</a></h1>”.PHP_EOL.'<hr />’.PHP_EOL;

foreach($rss->xpath(‘channel/item’) as $item)
{
echo <<<EOF
<h2><a href='{$item->link}’>{$item->title}</a></h2>
<div>Posted at: {$item->pubDate}</div>
{$item->description}
<hr />

EOF;
}
?>

Cuối cùng,một vài thuộc tính của đối tượng SimpleXmlElement các bạn sẽ quan tâm:
$value      = trim((string) $element);  // Bản thên element nó là XML, bạn lấy giá trị của element thì ép kiểu về string
$attributes = $element->attributes();   // lấy tất cả các attribute
$children   = $element->children();     // lấy các child element

Chúc bạn thành công – www.ticsoft.com (Nguồn: phpvn)

Posted in Học PHP | Tagged: , , | Leave a Comment »

Tìm hiều về LDAP (Lightweight Directory Access Protocol)

Posted by thietkewebsitegiare on 18/06/2009

Hiện nay, để xây dựng các hệ thống lớn, điều tối quan trọng là phải làm cách nào để có thể tích hợp dữ liệu để từ đó có thể dùng chung giữa các hệ thống khác nhau.

Trong đó, tích hợp tài khoản của người sử dụng là vấn đề cần thiết nhất trong những cái “tối quan trọng” trên.

Hãy tưởng tượng một hệ thống với khoảng 5 – 6 mô đun khác nhau, mỗi mô đun lại được thiết kế trên một nền tảng khác nhau (Có ông thì dùng Oracle + AS Portal, có người thì xài DB2 với WebSphere, lão khác thì MySQL với phpnuke, ông thì xài Wíndow, lão thì cài Linux, có thằng điên lại chỉ thích Unix…hic, cuộc đời thật đúng là bể khổ), do đó cần có một hệ thống người dùng khác nhau. Vậy thì với mỗi mô đun, người sử dụng cần phải có một User Name, một mật khẩu khác nhau, đó là điều không thể chấp nhận được. Người dùng chẳng mấy chốc mà chán ghét hệ thống.

Làm cách nào để có thể tích hợp được người dùng giữa các hệ thống trên? Câu trả lời đó là LDAP.

Vây LDAP là gì?

LDAP – viết tắt của Lightweight Directory Access Protocol, hay dịch ra tiếng Việt có nghĩa là giao thức truy cập nhanh các dịch vụ thư mục.
• Là một giao thức tìm, truy nhập các thông tin dạng thư mục trên server.
• Nó là giao thức dạng Client/Server dùng để truy cập dịch vụ thư mục.
• LDAP chạy trên TCP/IP hoặc các dịch vụ hướng kết nối khác.
• Là một mô hình thông tin cho phép xác định cấu trúc và đặc điểm của thông tin trong thư mục.
• Là một không gian tên cho phép xác định cách các thông tin được tham chiếu và tổ chức
• Một mô hình các thao tác cho phép xác định các tham chiếu và phân bố dữ liệu.
• Là một giao thức mở rộng
• Là một mô hình thông tin mở rộng.

Ở đây chúng ta cần tránh hiểu nhầm từ “thư mục” như trên Windows là folder hay directory, đó là thư mục theo nghĩa hẹp để quản lý hệ thống tệp tin. Từ thư mục trong LDAP mang ý nghĩa rộng hơn, nó bao hàm các cấu trúc dữ liệu dạng liệt kê theo thư mục (hay mục lục) – một “từ khoá” của dân thư viện nhằm ám chỉ cách thức sắp xếp dữ liệu để tiện truy xuất nhất.

Làm việc với LDAP thông qua PHP

Trình tự cơ bản khi có thao tác với LDAP gồm các bước
• Connect (kết nối với LDAP)
• Bind (kiểu kết nối: nặc danh hoặc đăng nhập xác thực)
• Search (tìm kiếm)
• Interpret search (xử lý tìm kiếm)
• Result (kết quả)
• Close connection (đóng kết nối)

Ldap_connect():
hàm kết nối tới máy chủ LDAP, hàm này có 2 tham số: hostname (tên máy chủ LDAP) và port (cổng kết nối, mặc định là cổng 389)
Ldap_connect(string hostname, int port);

Code:
<?php

// LDAP variables
$ldaphost = “ldap.example.com”;
// your ldap servers
$ldapport = 389;
// your ldap server’s port number

// Connecting to LDAP

$ldapconn = ldap_connect($ldaphost, $ldapport)
or die(
“Không thể kết nối được đến $ldaphost”
);

?>

Ldap_bind();
Hàm nối kết với server LDAP để có thể thao tác với LDAP
Vd kết nối với LDAP server bằng user và password hợp lệ

Code:
<?php

// using ldap bind
$ldaprdn = ‘uname’;
// ldap rdn or dn
$ldappass = ‘password’;
// associated password

// connect to ldap server

$ldapconn = ldap_connect(“ldap.example.com”)
or die(
“Could not connect to LDAP server.”
);

if (

$ldapconn) {

// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass
);

// verify binding
if ($ldapbind
) {
echo
“LDAP bind successful…”
;
} else {
echo
“LDAP bind failed…”
;
}

}

?>

Nếu kết nối bằng quyền anonymously

Code:
<?php

//using ldap bind anonymously

// connect to ldap server

$ldapconn = ldap_connect(“ldap.example.com”)
or die(
“Could not connect to LDAP server.”
);

if (

$ldapconn) {

// binding anonymously
$ldapbind = ldap_bind($ldapconn
);

if (

$ldapbind) {
echo
“LDAP bind anonymous successful…”
;
} else {
echo
“LDAP bind anonymous failed…”
;
}

}

?><?php

//using ldap bind anonymously

// connect to ldap server

$ldapconn = ldap_connect(“ldap.example.com”)
or die(
“Could not connect to LDAP server.”
);

if (

$ldapconn) {

// binding anonymously
$ldapbind = ldap_bind($ldapconn
);

if (

$ldapbind) {
echo
“LDAP bind anonymous successful…”
;
} else {
echo
“LDAP bind anonymous failed…”
;
}

}

?>

ldap_search();
ldap_search ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]] )
VD tìm kiếm các thông tin của tất cả mọi người ở trong “My Company” nơi surname hoặc given name chứa trong biến $person. Ví dụ này yêu cầu server tìm ra thông tin của nhiều hơn một thuộc tính cần tìm kiếm.

Code:

<?php
// $ds is a valid link identifier for a directory server

// $person is all or part of a person’s name, eg “Jo”

$dn = “o=My Company, c=US”;
$filter=“(|(sn=$person*)(givenname=$person*))”
;
$justthese = array(“ou”, “sn”, “givenname”, “mail”
);

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo

$info[“count”].” entries returned\n”;
?>

Ldap_close();

Hàm đóng kết nối với LDAP, hàm này tương đương với ldap_unbind();
bool ldap_unbind ( resource link_identifier );
Nếu kết nối đóng thành công sẽ trả về giá trị TRUE, ngược lại là FALSE.

ldap_add();

Hàm thêm các entry vào thư mục LDAP

bool ldap_add ( resource link_identifier, string dn, array entry )

Code:
<?php
$ds
= ldap_connect(“localhost”);
// assuming the LDAP server is on this host

if ($ds) {
// bind with appropriate dn to give update access
$r = ldap_bind($ds, “cn=root, o=My Company, c=US”, “secret”
);

// prepare data
$info[“cn”] = “John Jones”
;
$info[“sn”] = “Jones”
;
$info[“mail”] = “jonj@example.com”
;
$info[“objectclass”] = “person”
;

// add data to directory
$r = ldap_add($ds, “cn=John Jones, o=My Company, c=US”, $info
);

ldap_close($ds);
} else {
echo
“Unable to connect to LDAP server”
;
}
?>

ldap_delete();

Xóa một entry khỏi thư mục LDAP

Code:
bool ldap_delete ( resource link_identifier, string dn )

Hàm trả về giá trị TRUE nếu xóa thành công và FALSE nếu thất bại

ldap_compare();

So sánh giá trị của một thuộc tính

mixed ldap_compare ( resource link_identifier, string dn, string attribute, string value )

VD:

Code:
<?php

$ds

=ldap_connect(“localhost”); // assuming the LDAP server is on this host

if ($ds) {

// bind
if (ldap_bind($ds
)) {

// prepare data
$dn = “cn=Matti Meikku, ou=My Unit, o=My Company, c=FI”
;
$value = “secretpassword”
;
$attr = “password”
;

// compare value
$r=ldap_compare($ds, $dn, $attr, $value
);

if (

$r === –1) {
echo
“Error: ” . ldap_error($ds
);
} elseif (
$r === true
) {
echo
“Password correct.”
;
} elseif (
$r === false
) {
echo
“Wrong guess! Password incorrect.”
;
}

} else {
echo

“Unable to bind to LDAP server.”;
}

ldap_close($ds);

} else {
echo

“Unable to connect to LDAP server.”;
}
?>

Ldap_count_entries();

Đếm số lượng các entry được tìm thấy từ kết quả của lệnh tìm kiếm.

int ldap_count_entries ( resource link_identifier, resource result_identifier )

ldap_error();

trả lại thông báo lỗi LDAP của lệnh LDAP cuối cùng.

string ldap_error ( resource link_identifier )

ldap_first_attribute();
hàm trả lại thuộc tính đầu tiên của entry

string ldap_first_attribute ( resource link_identifier,
resource result_entry_identifier,
int &ber_identifier )

ldap_first_entry();

trả lại kết quả id đầu tiên của entry

ldap_first_entry ( resource link_identifier, resource result_identifier )

ldap_first_reference();

trả lại tham chiếu đầu tiên

ldap_first_reference ( resource link, resource result )

ldap_free_result();

giải phóng kết quả bộ nhớ

bool ldap_free_result ( resource result_identifier )

Chúc bạn thành công – www.ticsoft.com (Nguồn: phpvn)

Posted in Học PHP | Tagged: , , , | Leave a Comment »

Ứng dụng sockets với php

Posted by thietkewebsitegiare on 05/06/2009

Sockets là một cách thức dùng trong PHP để kết nối với một server khác qua mạng hay internet.

function căn bản để mở kết nối đến server là fsocken(). Có thể bạn sẽ thấy ngạc nhiên tại sao bạn lại muốn kết nối đến server khác. Nếu bạn cần thêm thông tin về 3rd party server thì sockets là cái cho bạn cần.
Tutorial này hướng dẫn chúng ta các phương thức sau đây :
# Connect To A Server Using Sockets
# Disconnect From a Server%br%
# Send a request to a server%br%
# List the number of lines returned by the server on a request%br%
# Use sockets in a practical project like a whois look-up script

Kết nối qua sử dụng sockets với PHP
Nếu bạn có ý nghĩ nối kết với internet server khác với php rất rắc rối , có lẽ bạn hơi lầm. Bạn chỉ cần nối mạng bằng một dòng code của php. trong phần này sẽ giải thích cách nối và ngắt nối mạng qua sử dụng sockets.
Code:

<?php
/*
Tham số mà fsockopen cần là:
fsockopen(IP/Hostname, cổng (port), Lỗi ($errno), miêu tả lỗi phát hiện($errdesc)
*/
$fp = fsockopen( “www.abc.com”, 80, $errno,
$errdesc);
?>
Bạn đã thiết lập một kết nối đến server vd: phpvn.org. Bạn cũng nên làm quen với function fclose() để ngắt nối mạng.

<?php
$fp = fsockopen( “www.abc.com”, 80, $errno,
$errdesc); //establish connection
fclose($fp); //close connection
?>

Gởi một Request

Trong phần kế tiếp này bạn sẽ làm quen với cách gởi một request đến server và cho thể hiện một danh sách mà server gởi trả lại cho bạn cũng như cách làm việc của nó. Việc trước tiên cần làm là mở một kết nối đến server với một tên biến $fp, có nghĩa bạn đã gởi một $fp và nhận được một kết quả trả về từ server mà bạn đã gởi đến.
Code:

<?php
/*
Kết nối đến server vd: www. example.com
*/
$host = “www.example.com”;
$page = “/index.html”;
$fp = fsockopen($host, 80, $errno, $errdesc) or
die(“Connection to $host failed”);
/*
Chúng ta xác định thông tin của header để gởi đến cho server
GET, được hiểu chúng ta muốn nhận được thông tin hay trang web từ server đó
Bạn cũng có thể sử dụng POST để làm việc này.
*/
$request = “GET $page HTTP/1.0\r\n”;
$request .= “Host: $host\r\n”;
$request .= “Referer: $host\r\n”;
/*
Sử dụng function fput() gởi đòi hỏi(request) đến server và tạo một vòng lập (loop)
lấy kết quả được từ mãng, được gọi là $page
*/
fputs($fp, $request);
while(!feof($fp)){
$page[] = fgets($fp, 1024);
}
/*
Đóng mạng đồng thời lấy tổng số trang nhận được
*/
fclose($fp);
echo “The server returned “.(count($page)).
” Lines”;
/*
Tạo vòng lập (for) và in dữ liệu.
*/
for($i=0; $i&lt;count($page); $i++){
echo $page[$i];
}
?>

Tìm kiếm (Searching for a page)
Trong phần này chúng ta sử dụng fsockenopen() để kể nối đến nhiều server và kiểm soát một trang nào đó trong server.
Code:

<?php
$servers = array(
“www.example.com” =&gt; “/index.html”,
“www.example2.com” =&gt; “/index.php”
);
/*
Tạo vòng lập cho server array và kết nối đên mạng,
Báo lỗi nếu không kết nối được
*/
foreach($servers as $host=&gt; $page){
$fp = fsockopen($host,80,$errno,$errdesc,10);
echo “Trying $host&lt;br&gt;\n”;
if(!$fp){
echo(“couldnt connect to $host”);
echo “&lt;br&gt;&lt;hr&gt;&lt;br&gt;\n”;
continue;
}
/*
Xác định thông tin, và gởi request đến server
*/
echo “trying to get $page&lt;br&gt;\n”;
$request = “HEAD $page HTTP/1.0\r\n\r\n”;
fputs($fp, $request);
echo fgets($fp, 1024);
echo “&lt;br&gt;&lt;br&gt;&lt;br&gt;\n”;
/*
Đóng mạng
*/
fclose($fp);

}
?>

Dòng code trên được diễn như sau:
Trying: http://www.example.com
Trying to get: /index.html
HTTP/1.1 200 OK

Nó chỉ hiện những trang đã tìm được, nếu không sẽ thay thế trang 404 bằng mã số 200.

ứng dụng Whois

Bạn đã biết qua ứng dụng kết nối đến một server, tạo vòng lập để in kết quả và cách đóng mạng. chúng ta thực hành thêm một vài thao tác cho ứng dụng whois.

Code:

<?php
extract($_POST);
function whois($domain,$ext){
$url=$domain.$ext;
/*
sử dụng switch() để xác định whois server nào là server thích hợp
nhất để kết nối domain
*/
switch($ext){
case “.co.uk”:
$whois = “whois.nic.uk”;
break;
case “.com”:
$whois = “whois.networksolutions.com”;
break;
case “.fr”:
$whois = “whois.nic.fr”;
break;
case “.biz”:
$whois = “whois.biz”;
break;
default:
$whois = “whois.networksolutions.com”;
}
if (trim($url) &lt;&gt; “”) {
$url = trim($url);
/*
kết nối đến server
*/
$f = fsockopen($whois, 43, $errno, $errstr, 30);
if (!$f) {
echo “Connection To Server Failed ($errno)”;
} else {
/*
Gởi domain đến một server và chờ nhận kết quả
*/
fputs($f, “$url\r\n”);
print “&lt;pre&gt;\r\n”;
while (!feof($f)) {
echo fread($f,128);
}
print “&lt;/pre&gt;”;
/*
Đóng mạng
*/
fclose($f);
}
}else{
echo “Invalid domain entered”;
}
}
?>

Chúc bạn thành công – www.ticsoft.com (Nguồn: sưu tầm)

Posted in Học PHP | Tagged: , , , | Leave a Comment »

Tìm hiểu về thư viện ZendFramework với PHP

Posted by thietkewebsitegiare on 05/06/2009

Hướng dẫn này nhằm giúp các bạn đi vào thế giới của ZendFramework để có thể dễ dàng tạo các ứng dụng web qua thư viện của ZF, trong phần hướng dẫn này chúng ta cùng nhau làm một ứng dụng lưu giữ dữ liệu của CD trong CSDL.

Cấu trúc Model-View-Controller

Một lối viết code bình thường trong ừng dụng PHP như sau:
Code:

<?php
include “common-libs.php”;
include “config.php”;
mysql_connect($hostname, $username, $password);
mysql_select_db($database);
?>

<?php include “header.php”; ?>
<h1>Home Page</h1>

<?php
$sql = “SELECT * FROM news”;
$result = mysql_query($sql);
?>
<table>
<?php
while ($row = mysql_fetch_assoc($result)) {
?>
<tr>
<td><?php echo $row[‘date_created’]; ?></td>
<td><?php echo $row[‘title’]; ?></td>
</tr>
<?php
}
?>
</table>
<?php include “footer.php”; ?>

Dần theo thời gian tuổi đời của ứng dụng nó khó có thể phát triển theo nhu cầu của khách hàng, khi cần được được phát triển toàn bộ.
Cách tốt nhất dùng để cải tiến và chăm sóc một ứng dụng cho dễ dàng là chia cắt ngăn nấp cấu trúc của ứng dụng thành 3 tầng riêng lẻ.
Mỗi tầng sẽ có một trách nhiệm riêng của nó ( và hầu hết các tệp tin đều nằm riêng lẽ ).

– MODEL : Mô hình MD là một trong 3 lớp như vừa kể trên, nó có tác dụng đến thuộc tính của các tệp tin có nhiệm vụ thi hành một chức năng nào đó.
Ứng dụng trên cho thấy cách thiết kế về dữ liệu Tin Tức. Do đó Mô hình MD tập trung một cánh lô ghíc lôi dữ liệu ra từ csdl cộng thêm chức năng cất giữ dữ liệu vào csdl.
– VIEWS : Mô hình Views có nhiệm vụ liên kết với Mô hình Model và xuất các dữ liệu ra trình duyệt theo nhu cầu đòi hỏi của người tiêu dùng (user). Điển hình là các văn bản HTML.
– CONTROLLER : Mô hình CT liên kết hai mô hình MD và Views cúng như kiểm soát chính xác các tệp tin trước khi cho tệp tin đó hiện thị ra trình duyệt.

Zend Framework đáp ứng đầy đủ các đòi hỏi trên theo cấu trúc Model-View-Controller (MVC).
ZF được sử dụng vào các phát triển theo nhu cầu nhiều phần và chức năng động để cải tiến và sửa chữa ứng dụng sau này.

Nhu cầu cần thiết
Zend Framework cần các điều kiện như sau:

• PHP 5.1.4 (hoặc mới hơn)
• Web-Server cho phép thao tác với mod_rewrite , nếu chưa kích hoạt bạn nên xóa # trước dòng rewrite_mode này. (tệp config này nằm trong hộp thoại Apache/config)

Tải Zendframework : http://framework.zend.com/download/stable
Cấu hình ứng dụng( chúng ta sắp làm) :
theo trình bày của Zend trong Document chúng ta không cần một cấu hình căn bản nào cả, nhưng khi viết một ứng dụng chung ta cần một tổ chức mạch lạc cho cấu trúc hộp thoại.
và cho rằng chúng ta là một Admin của một host để có đủ quyền sửa chữa các tệp tin cần thiết.
Bắt đầu tạo một cấu trúc với tên zf-tutorial trong Document Root của server. địa chỉ của Url sẽ là như vầy : http://localhost/zf-tutorial

Tạo các hộp thoại sau như cấu hình này:

Code:

zf-tutorial/
/application
/controllers
/models
/views
/filters
/helpers
/scripts
/library
/public
/images
/scripts
/styles

Như bạn thấy chúng ta đã thiết lâp mô hìnheo kiểu MVC với cách thức chia cách mạch lạc, ngăn nắp .Các hộp thoại hình ảnh, Javascript và tệp Css đều nằm riêng và nằm trong cấu trúc của thư mục Public.
Thư viện ZendFramework sau khi unzip ra chúng copy nó vào trong thư mục library/Zend.

Chúc bạn thành công – www.ticsoft.com (Nguồn: phpvn)

Posted in Học PHP | Tagged: , , , | Leave a Comment »

Sử dụng smarty template trong PHP

Posted by thietkewebsitegiare on 05/06/2009

Code:

<?php
define(‘SMARTY_DIR’, ‘/Path/to/Smarty/’);
require_once(SMARTY_DIR. ‘Smarty.class.php’);
?>

Tạo lớp:
Code:

<?php
$smarty = new Smarty();
?>

Tạo thêm các hàm sau:
Code:

<?php
$smarty->compile_check = true // kiểm tra xem template đã có thay đổi gì không, nếu có, nạp dữ liệu mới
$smarty->caching = true // bật hàm caching
?>

Ta cần 4 folders :
– templates ( Chứa đựng các Templates, trong hộp này ta cũng có thể tào thêm các hộp con (subfolder)
– templte_c ( Chứa các templates được Smarty compiled)
– configs (Cho các tệp tin configs)
-cache ( cho các templates Cache) // chỉ là option thôi khong có không sao

Smarty luôn tìm nhũng hộp (folder) này khi php hoạt động. Ta có thể định đường dẫn như thế này:
Code:

<?php
$smarty->template_dir = ‘/path/to/Template_Folder/’;
$smarty->compile_dir = ‘/path/to/Template_c_Folder/’;
$smarty->config_dir = ‘/path/to/Config_Folder/’;
$smarty->cache_dir = ‘/path/to/Cache_folder/’;

?>

1) Đưa một giá trị (value) đến Smarty Class.
Code:

<?php
// Array, có thể lấy từ Database

$array = array(
0 => array( ‘id’ => 1,
‘text’ => ‘test’),
1 => array( ‘id’ => 2,
‘text’ => ‘foobar’ ),
2 => array( ‘id’ => 3,
‘text’ => ‘another test’
));

$test = ‘string’;
$test2 = 2;

$smarty->assign(‘test_array’, $array);
$smarty->assign(‘test’, $test);
$smarty->assign(‘test2’, $test2);
?>

2) Tích hợp Template.tpl
Code:

<body><table><tr>
Variable test : {$test}
Variable test2 : {$test2}

{foreach from=$test_array item=arr}
Item ID : {$arr.id}
Text From : {$arr.text}
{/foreach}
</tr></table></body>

Template sẽ hiển thị 2 thông số Test & Test2 như đã định trong têp .php , kế tiếp lệnh foreach sẽ được kích họat.Trong loop này bao gồm 2 Params có trị số from và item .from là thuộc tinh array và item là tên biến được trả về với biến {$arr.id} tương tự như value của 1 array : $arr[‘id’].
Thử test xem template có work không nha. vd:tên tệp của template là test.tpl
Code:

<?php
$smarty->display(‘test.tpl’);
?>

Nếu trình duyệt xuất ra dòng Text thì bạn đã thành công. Smarty còn nhiều function khác nữa.Đây chỉ là một gợi ý nhỏ cho việc sự dụng Smarty Template.

test_file.php:
Code:

<?php

define(‘SMARTY_DIR’, ‘/xampp/htdocs/smarty/libs/’);
require_once(SMARTY_DIR. ‘Smarty.class.php’);

$smarty = new Smarty;

$smarty->compile_check = true;
$smarty->debugging = true;
//$smarty->caching = true // bật hàm caching

$array = array(
0 => array( ‘id’ => 1,
‘text’ => ‘test’),
1 => array( ‘id’ => 2,
‘text’ => ‘foobar’ ),
2 => array( ‘id’ => 3,
‘text’ => ‘another test’
));

$test = ‘string’;
$test2 = 2;

$smarty->assign(‘test_array’, $array);
$smarty->assign(‘test’, $test);
$smarty->assign(‘test2’, $test2);

$smarty->display(‘test.tpl’);

?>

test.tpl
Code:

<body><table><tr>
Variable test : {$test}
Variable test2 : {$test2}

{foreach from=$test_array item=arr}
Item ID : {$arr.id}
Text From : {$arr.text}
{/foreach}
</tr></table></body>

test.conf (trong config folder)
Code:

title = Welcome to Smarty!
cutoff_size = 40

Chúc bạn thành công – www.ticsoft.com (Nguồn: phpvn)

Posted in Học PHP | Tagged: , , , | Leave a Comment »

Các thao tác kết nối tới MySQL và lựa chọn CSDL bằng PHP

Posted by thietkewebsitegiare on 15/05/2009

Bài viết này sẽ tập trung vào việc khai thác hệ quản trị CSDL miễn phí MySQL.

Các bước xây dựng chương trình có kết nối tới CSDL My SQL:

Thông thường, trong một ứng dụng có giao tiếp với CSDL, ta phải làm theo bốn trình tự sau:
Bước 1: Thiết lập kết nối tới CSDL.
Bước 2: Lựa chọn CSDL.
Bước 3: Tiến hành các truy vấn SQL, xử lý các kết quả trả về nếu có
Bước 4: Đóng kết nối tới CSDL.

Nếu như trong lập trình thông thường trên Windows sử dụng các chương trình điều khiển trung gian (ADO, ODBC…) để thực hiện kết nối và truy vấn, thì trong PHP, khi lập trình tương tác với CSDL, chúng ta thường sử dụng thông qua các hàm.

Chú ý: Trước khi sử dụng PHP để lập trình với MySQL, hãy sử dụng chương trình quản lý phpMyAdmin để tạo trước một CSDL, vài bảng cũng như người dùng… để tiện thực hành. Bài hướng dẫn sử dụng phpMyAdmin sẽ được trình bày sau.

Trong bài viết này, tôi sử dụng MySQL chạy trên nền máy chủ localhost, người sử dụng của CSDL này có username là mysql_user, mật khẩu là mysql_password

Thiết lập kêt nối tới MySQL.

Để kết nối tới MySQL, ta sử dụng hàm mysql_connect()
Cú pháp:
mysql_connect(host,tên_truy_cập,mật_khẩu);
trong đó:
host là chuỗi chứa tên (hoặc địa chỉ IP) của máy chủ cài đặt MySQL.
tên_truy_cập là chuỗi chứa tên truy cập hợp lệ của CSDL cần kết nối
mật_khẩu là chuỗi chứa mật khẩu tương ứng với tên truy cập
Ví dụ:
<?
mysql_connect (“localhost”, “thu_mot_ti”,”thu_hai_ti”);
?>
Khi kết nối tới MySQL thành công, hàm sẽ trả về giá trị là một số nguyên định danh của liên kết, ngược lại, hàm trả về giá trị false.
Ta có thể dùng hàm if để kiểm tra xem có kết nối được tới MySQL hay không:

<?php
$link = mysql_connect(“localhost”, “mysql_user”, “mysql_password”);
if (!$link)
{
echo “Không thể kết nối được tới CSDL MySQL”;
}
?>

Lựa chọn CSDL

Để lựa chọn một CSDL nào đó mà người sử dụng có tên là tên_truy_cập” có quyền sử dụng, ta dùng hàm mysql_select_db:
mysql_select_db (tên_CSDL);
Hàm này thường được dùng sau khi thiết lập kết nối bằng hàm mysql_connect. Hàm này trả về true nếu thành công, false nếu thất bại.
VD:
<?php
$link = mysql_connect(“localhost”, “mysql_user”, “mysql_password”);
if (!$link)
{
echo “Không thể kết nối được tới MySQL”;
}
if (!mysql_select_db (“Forums”))
{
echo “Không thể lựa chọn được CSDL Forums”;
}
?>

Đóng kết nối tới CSDL:
Để đóng kết nối tới CSDL, ta dùng hàm mysql_close.
Hàm này có nhiệm vụ đóng kết nối tới CSDL có mã định danh được tạo ra bởi hàm mysql_connect().
Cú pháp: mysql_close(mã_định_danh_kết_nối).

Ví dụ:
<?php
$link = mysql_connect(“localhost”, “mysql_user”, “mysql_password”);
if (!$link)
{
echo “Không thể kết nối được tới MySQL”;
}
mysql_close($link);
?>

Chúc bạn thành công – www.ticsoft.com (Nguồn: sưu tầm)

Posted in Học PHP | Tagged: , , , | Leave a Comment »

Hằng và biến trong php

Posted by thietkewebsitegiare on 15/05/2009

Nếu các bạn chưa từng học lập trình, chắc các bạn đang còn xa lạ với hằng và biến.

1. Hằng và biến
Nếu các bạn chưa từng học lập trình, chắc các bạn đang còn xa lạ với hằng và biến.
– Giống như trong toán học, một hằng số xác định một giá trị duy nhất thông qua tên của hằng số, trong Tin học cũng vậy. Môt hằng số xác định một giá trị duy nhất trong toàn bộ chương trình. Người ta có thể sử dụng giá trị này thông qua tên của hằng số đó trong chương trình
– Tương tự đối với biến. Một biến trong lập trình được sử dụng để lưu trữ một giá trị nào đó thông qua tên biến. Sở dĩ người ta gọi nó là biến, vì không như hằng số (giữ nguyên giá trị trong toàn bộ quá trình chạy chương trình), người ta có thể thay đổi giá trị của biến số thông qua các phép gán.

Để tạo điều kiện dễ dàng trong quá trình phân tích dữ liệu, PHP quy định bất kỳ từ nào có dấu $ ở trước đều là tên của biến. Ví dụ:
$ten xác định một biến có tên là ten
$custome_name: xác định một biến có tên là $custome_name

Bạn cần biết rằng tên biến là một chuỗi các ký tự chỉ bao gồm các chữ số, chữ cái (a..z) và dấu gạch dưới ( _ ). Và PHP quy định phân biệt các biến chữ hoa và chữ thường là khác nhau. CHẳng hạn $ab và $Ab là 2 biến hoàn toàn khác nhau. Một điểm cần lưu ý khác là không được đặt tên biến bắt đầu bằng các chữ số (0.. 9)

Do quy định các chuỗi ký tự có chứa dấu $ ở trước là một tên biến, nên PHP tự động khởi gán giá trị của các biến này là rỗng (đối với kiểu dữ liệu văn bản) hoặc 0 đối với kiểu dữ liệu số. Bạn sẽ được biết đến các kiểu dữ liệu sau này.

Để gán giá trị cho các biến, bạn sử dụng câu lệnh gán như sau:
$tên_biến = giá trị cần gán;

Ví dụ:
$nam_sinh=1980;
$ho_ten=”CMXQ”;

Các bạn chú ý đến 2 ví dụ tôi nhập dữ liệu: một cái thì nằm trong cặp dấu ngoặc kép chỉ thị biến đó chứa dữ liệu theo kiểu xâu, còn một cái thì không nằm trong cặp dấu ngoặc kép chỉ thị biến đó chứa dữ liệu kiểu số. Bạn sẽ biết chi tiết hơn ở ngay sau đây:

2. Các kiểu dữ liệu trong PHP

PHP có 3 kiểu dữ liệu cơ bản: Integer, double và string. Ngoài ra còn một số kiểu dữ liệu khác, đượ xây dựng dựa trên các kiểu dữ liệu cơ bản trên, như mảng, object, mà chúng ta sẽ đề cập đến sau. Tất cả các biến đều được chỉ định kiểu dữ liệu, và như chúng ta đã nói ở trên, giá trị của chúng có thể bị thay đổi trong quá trình sử dụng.

Kiểu giá trị Integer sử dụng 4 byte của bộ nhớ. Đây là kiểu giá trị nguyên (không phải là số thực) và có giá trị nằm trong khoảng từ -2 tỷ đến 2 tỷ. Kiểu dữ liệu double là kiểu dữ liệu số thực, cho phép chứa các số thưc. Kiểu String được sử dụng để chứa các dữ liệu như là các ký tự văn bản, ký tự đặc biệt và các chữ số. Dữ liệu kiểu string được đặt trong cặp dấu ngoặc kép (“”) chỉ định một xâu (hay còn gọi là chuỗi ký tự).

Ví dụ:
2: Kiểu integer;
2.0: kiểu double
“2”: Kiểu xâu
“2 gio”: Kiểu xâu

3.Định nghĩa hằng

Hàm define() được sử dụng để tạo một hằng số:
Hàm này có cấu trúc sau:
define (“tên_hằng”,”giá trị của hằng”);
Ví dụ:
define (“COMPANY”,”NS Co.Ltd”);// Định nghĩa hằng COMPANY với giá trị là “NS Co Ltd”
define (“diem_so”,4.5);// định nghĩa hằng diem_so với giá trị là 4.5 (hic… thi lại );

Sau khi một hằng số được tạo ra, ta có thể sử dụng chúng thay cho giá trị của chúng:
echo (“Tên công ty: “.COMPANY);
Điều này tương đương với echo (“Tên công ty: NS Co Ltd”);

4. Một số hằng xây dựng sẵn (built in constant)

PHP có chứa một số hằng được xây dựng sẵn. TRUE và FALSE là 2 hằng đã được dựng sẵn với chỉ định true (1) và false (=0 hoặc một xâu rỗng)

Hằng số PHP_VERSION chỉ định phiên bản của bộ phân tích PHP mà bạn đang dùng hiện tại. Hằng PHP_OS chỉ định hệ điều hành server mà trình phân tích PHP đang chạy.

echo (PHP_OS); // in ra màn hình “Linux” (ví dụ)

_FILE_and_LINE_ trả về tên của đoạn script (đoạn mã nhúng) đang được phân tích tại dòng hiện thời trong đoạn mã script.

PHP còn cung cấp một số hàm để thông báo lỗi như E_ERROR, E_WARNING, E_PARSE và E_NOTICE.

Ngoài ra, PHP còn cung cấp một số biến cung cấp thông tin về môi trường PHP đang sử dụng. Để xem các thông tin này,bạn có thể dùng hàm phpinfo() như sau:

<HTML>
<!– phpinfo.php–>
<BODY>
<?php
phpinfo();
?>
</BODY>
</HTML
5. Lừa kiểu và ép kiểu dữ liệu

Như chúng ta đã biết, tất cả các biến PHP đều có kiểu dữ liệu riêng. Kiểu dữ liệu của biến sẽ được tự động xác định bởi giá trị đặt vào biến

$a=1 // $a là kiểu integer
$a=1.2 // Bây giờ, nó là kiểu double
$a=”1″ // Và bây giờ nó là kiểu string

a) Chuyển kiểu chuỗi và lừa kiểu dữ liệu

Nếu bạn làm các thao tác tính toán số trên một chuỗi, PHP sẽ tính toán chuỗi như là một số. Điều này được biết đến với cái tên gọi là “chuyển kiểu chuối (String conversion), mặc dù giá trị chuỗi của nó có thể không cần phải thay đổi. Trong đoạn ví dụ sau, biến $str được xác định là một chuỗi:
$str=”756300 không có”;
Nếu chúng ta cố cộng thêm một giá trị nguyên là 3 vào biến $str, biến $str sẽ tự động tính với số nguyên 756300:
$x=4+$str;//$x =756304

Nhưng bản thân giá trị của biến $str không thay đổi

echo ($str); // In ra màn hình chuỗi “756300 không có”

Chuyển kiểu chuỗi phải tuân theo 2 nguyên tắc sau:
– Chỉ những chuỗi bắt đầ là một xâu các chữ số. Nếu chuỗi bắt đầu bằng một giá trị số hợp lệ, chuỗi này sẽ được xác định như giá trị của nó, trong trường hợp khác, nó sẽ trả về 0. VD: chuỗi “35 tuổi” sẽ được ước lượng là 35, nhưng chuỗi “tuổi 35” sẽ chỉ xác định giá trị 0.

– Một chuỗi sẽ chỉ được xác định như là một giá trị kiểu double nếu giá trị kiểu double được miêu tả bao gồm toàn bộ chuỗi. Chuỗi “3.4”, “-4.2” sẽ được ước lượng như giá trị thực 3.4 và -4.2. Nếu một ký tự không phải là ký tự kiểu số thực được đưa vào chuỗi, giá trị của chuỗi đó sẽ được ước lượng như là một số nguyên. Chuỗi “3.4 dollar” sẽ thành số nguyên 3.

Trong việc cộng với chuỗi chuyển kiểu, PHP sẽ thực hiện “lừa kiểu” giữa 2 kiểu số. Nếu bạn thực hiện một phép toán số học giữa kiểu thực và kiểu nguyên, giá trị sẽ là số thực

$a=1 //$ a là một số nguyên
$b= 1.0 //$b là số thực
$c=$a+$b //$c là kiểu số thực , = 2.0
$d = $c+”6th” //$d là kiểu số thực = 8.0

Ép kiểu dữ liệu

Ép kiểu dữ liệu cho phép bạn thay đổi kiểu dữ liệu của biến

$a=11.2// $a là kiểu thực
$a=(int)$a// Bây giờ, $ a là kiểu nguyên, giá trị = 11
$a= (double) $a// Bây giờ $a lại trở về kiểu thực = 11.0
$b= (string)$a// $b là giá trị kiểu chuỗi =”11″

Ngoài ra, chúng ta còn được phép ép kiểu (array) và (object)

(integer) tương đương với (int); (fload) và (real) tương đương với (double)

6. Một số hàm tiện ích khác

PHP có một số hàm hỗ trợ làm việc với các biến

– Hàm gettype($ten_bien) xác định kiểu của biến. Nó sẽ trả về một trong các giá trị: “integer”, “double”, “string”, “array”, “object”, “class”, “unknown type” (Chúng ta sẽ tìm hiểu kỹ hơn vể mảng (array) và kiểu đối tượng (object) ở các bài sau.
Ví dụ:
echo(gettype($name));

– Hàm settype($ten_bien,”kieu_du_lieu”) sẽ đặt kiểu dữ liệu cho biến $ten_bien. Kiểu dữ liệu được viết dưới dạng một chuỗi, và có thể có một trong các kiểu sau: “integer”, “double”, “string”, “array”, “object”. Nếu kiểu dữ liệu không được đặt, giá trị false sẽ được trả về, còn nếu thành công, nó sẽ trả về giá trị true.

VD:
$a=7.5; //$a là kiểu thực
settype($a,”integer”); // bây giờ nó là một số nguyên có giá trị 7

– Hàm isset($ten_bien) được sử dụng để xác định xem biến $ten_bien đã đặt một giá trị nào đó hay chưa. Nếu biến đó đã có giá trị, hàm trả về true. Trong truờng hợp ngược lại, hàm trả về giá trị false;
– Hàm unset($ten_bien) được sử dụng để huỷ bỏ biến $ten_bien, giải phóng bộ nhớ bị chiếm dụng của biến đó.

Chúc bạn thành công – www.ticsoft.com (Nguồn: sưu tầm)

Posted in Học PHP | Tagged: , , | Leave a Comment »

 
Theo dõi

Get every new post delivered to your Inbox.