Ví dụ kiểm tra, thêm, xóa, lấy địa chỉ email từ XML.
XML
Tập tin email.xml
nằm trong thư mục data
có định dạng như sau:
<?xml version="1.0"?>
<emails>
<email>
<value>[email protected]</value>
<date>2016-12-09 04:05:05</date>
</email>
<email>
<value>[email protected]</value>
<date>2016-12-09 04:07:54</date>
</email>
</emails>
PHP
<?php
/*
* Kiểm tra email tồn tại
*/
function check_email($email, $url = './data/email.xml') {
$doc = new DOMDocument('1.0');
$doc->load($url);
$emails = $doc->getElementsByTagName('email');
foreach ($emails as $e) {
$val = $e->getElementsByTagName('value');
if ($email == $val->item(0)->nodeValue) {
return true;
}
}
return false;
}
/*
* Thêm email
*/
function write_email($email, $url = './data/email.xml') {
$xml = simplexml_load_file($url);
$entry = $xml->addChild('email');
$entry->addChild('value', $email);
$entry->addChild('date', date('Y-m-d H:i:s', time()));
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$doc->preserveWhiteSpace = true;
$doc->loadXML($xml->asXML(), LIBXML_NOBLANKS);
$doc->save($url);
}
/*
* Lấy danh sách email
*/
function get_emails($url = './data/email.xml') {
$doc = new DOMDocument('1.0');
$doc->load($url);
$emails = $doc->getElementsByTagName('email');
$email_list = [];
foreach ($emails as $e) {
$val = $e->getElementsByTagName('value');
$dat = $e->getElementsByTagName('date');
$email_list[] = array(
'email' => $val->item(0)->nodeValue,
'date' => $dat->item(0)->nodeValue,
);
}
return $email_list;
}
/*
* Xóa email
*/
function delete_email($email, $url = './data/email.xml') {
$doc = new DOMDocument('1.0');
$doc->load($url);
$the_document = $doc->documentElement;
$emails = $the_document->getElementsByTagName('email');
$node = null;
foreach ($emails as $e) {
$val = $e->getElementsByTagName('value');
if ($email == $val->item(0)->nodeValue) {
$node = $e;
break;
}
}
if ($node != null) {
$the_document->removeChild($node);
}
$doc->save($url);
}
?>
Sử dụng
<?php
if (!check_email('[email protected]')) { // Kiểm tra email tồn tại
write_email('[email protected]'); // Thêm email
}
$data = get_emails();
if ($data) {
foreach ($data as $row) {
// Xuất danh sách email
echo $row['email'];
echo ' thêm ngày ';
echo $row['date'];
}
}
if (check_email('[email protected]')) { // Kiểm tra email tồn tại
delete_email('[email protected]'); // Xóa email
}
?>
Chúc các bạn thành công!
Bình Luận