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 – www.ticsoft.com – thiết kế website Posted 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 [...]

Archive for Tháng Sáu, 2009

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)

Đăng trong 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′, 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)

Đăng trong 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)

Đăng trong 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: 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)

Đăng trong 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)

Đăng trong 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)

Đăng trong Học PHP | Tagged: , , , | Leave a Comment »

 
Follow

Get every new post delivered to your Inbox.