Kiến thức là vô biên, vì vậy hãy chia sẻ nó. Trên đây là một số công cụ và source mình sưu tầm được. Mong là nó sẽ hữu ích đối với bạn !
Code Google
Hiển thị các bài đăng có nhãn Source PHP. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Source PHP. Hiển thị tất cả bài đăng
Thứ Bảy, 10 tháng 5, 2014
Function get content Liric or dic
case "loibaihat_zing":
?>
<form method="get" role="form">
<legend>Form title</legend>
<div class="form-group">
<label for="">name</label>
<input name="word" type="text" class="form-control" id="" placeholder="">
</div>
<input type="hidden" name="name" value="Your_Account">
<input type="hidden" name="case" value="loibaihat_zing">
<input type="hidden" name="op" value="MyDomain">
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<?php
$lik= str_replace(" ", "+", ($_GET["word"])) ;
$url="http://mp3.zing.vn/tim-kiem/bai-hat.html?q=".$lik;
$html=get_page($url);
foreach ($html->find(".content-item h3 a._trackLink") as $value) {
if(strpos($value->href,"bai-hat")===false) {
continue;
}
echo "<h1>".$value->innertext."</h1>";
$url="http://mp3.zing.vn".$value->href."";
$html2=get_page($url);
foreach ($html2->find("._lyricItem") as $value2) {
$array_of_id_or_class=array("oLyric");
$name = implode('|', $array_of_id_or_class);
$regex = '#<(\w+)\s[^>]*(class|id)\s*=\s*[\'"](' . $name .
')[\'"][^>]*>.*</\\1>#isU';
echo (preg_replace($regex, '', $value2->innertext));
}
}
die;
break;
case "loibaihat":
?>
<form method="get" role="form">
<legend>Form title</legend>
<div class="form-group">
<label for="">name</label>
<input name="word" type="text" class="form-control" id="" placeholder="">
</div>
<input type="hidden" name="name" value="Your_Account">
<input type="hidden" name="case" value="loibaihat">
<input type="hidden" name="op" value="MyDomain">
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<?php
$lik= str_replace(" ", "+", unicode($_GET["word"])) ;
$url="http://loibaihat.mobi/tim-kiem/loi-bai-hat.html?search=".$lik;
$html=get_page($url);
foreach ($html->find(".item a") as $value) {
echo "<h1>".$value->innertext."</h1>";
echo "<h5>http://loibaihat.mobi".$value->href."</h5>";
// $url="http://loibaihat.mobi".$value->href."";
// $html2=get_page($url);
// foreach ($html2->find(".lyric") as $value2) {
// echo $value2->innertext;
// }
// echo "<pre>";
// print_r($value);
// echo "</pre>";
}
die;
break;
case "dict":
?>
<form method="get" role="form">
<legend>Form title</legend>
<div class="form-group">
<label for="">name</label>
<input name="word" type="text" class="form-control" id="" placeholder="">
</div>
<input type="hidden" name="name" value="Your_Account">
<input type="hidden" name="case" value="dict">
<input type="hidden" name="op" value="MyDomain">
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<?php
$url="http://vdict.com/".$_GET["word"].",1,0,0.html";
$html=get_page($url);
foreach ($html->find(".word_title") as $value) {
echo "<h1>".$value->innertext."</h1>";
// echo "<pre>";
// print_r($value);
// echo "</pre>";
}
foreach ($html->find(".pronounce") as $value) {
echo "<p>".$value->innertext."</p>";
// echo "<pre>";
// print_r($value);
// echo "</pre>";
}
foreach ($html->find(".phanloai") as $value) {
echo "<h3>".$value->innertext."</h3>";
// echo "<pre>";
// print_r($value);
// echo "</pre>";
}
foreach ($html->find(".list1") as $value) {
echo "<p>".$value->innertext."</p>";
// echo "<pre>";
// print_r($value);
// echo "</pre>";
}
die;
break;
Thứ Sáu, 6 tháng 12, 2013
Lấy tin từ trang web khác
/****************************
*
* Lấy tin từ trang web khác
*
*laytin_banh($url_array)
*
****************************/
function laytin_banh($url_array){
print_r($url_array);
$data=array();
$j=0;
for($i=0;$i<sizeof($url_array);$i++){
$html = $this->curl_get($url_array[$i]);
foreach ($html->find(".normal") as $link){
echo "<h1>".$j."</h2>";
$html2 = str_get_html($link->innertext);
foreach ($html2->find(".price") as $link2){
$data[$j]["price"]=$link2->innertext;
}
foreach ($html2->find(".info>a") as $link2){
$data[$j]["title"]=$link2->innertext;
}
foreach ($html2->find(".picture img") as $link2){
$data[$j]["src"]=$link2->src;
}
$html2->clear();
echo "<pre>";
print_r($data[$j]);
echo "</pre>";
$j++;
}
$html->clear();
}
file_put_contents("banhbong_lan_new.json", json_encode($data));
}
/******************************
* Lấy Html bằng phương thức cURL (Rất nhanh và hiệu quả)
*
* curl_get($url)
*
*******************************/
function curl_get($url){
$cookie = tmpfile();
$userAgent = 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31' ;
$ch = curl_init($url);
$options = array(
CURLOPT_CONNECTTIMEOUT => 20 ,
CURLOPT_USERAGENT => $userAgent,
CURLOPT_AUTOREFERER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_COOKIEFILE => $cookie,
CURLOPT_COOKIEJAR => $cookie ,
CURLOPT_SSL_VERIFYPEER => 0 ,
CURLOPT_SSL_VERIFYHOST => 0
);
curl_setopt_array($ch, $options);
$kl = curl_exec($ch);
curl_close($ch);
$dom=str_get_html($kl);
return $dom;
}
*
* Lấy tin từ trang web khác
*
*laytin_banh($url_array)
*
****************************/
function laytin_banh($url_array){
print_r($url_array);
$data=array();
$j=0;
for($i=0;$i<sizeof($url_array);$i++){
$html = $this->curl_get($url_array[$i]);
foreach ($html->find(".normal") as $link){
echo "<h1>".$j."</h2>";
$html2 = str_get_html($link->innertext);
foreach ($html2->find(".price") as $link2){
$data[$j]["price"]=$link2->innertext;
}
foreach ($html2->find(".info>a") as $link2){
$data[$j]["title"]=$link2->innertext;
}
foreach ($html2->find(".picture img") as $link2){
$data[$j]["src"]=$link2->src;
}
$html2->clear();
echo "<pre>";
print_r($data[$j]);
echo "</pre>";
$j++;
}
$html->clear();
}
file_put_contents("banhbong_lan_new.json", json_encode($data));
}
/******************************
* Lấy Html bằng phương thức cURL (Rất nhanh và hiệu quả)
*
* curl_get($url)
*
*******************************/
function curl_get($url){
$cookie = tmpfile();
$userAgent = 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31' ;
$ch = curl_init($url);
$options = array(
CURLOPT_CONNECTTIMEOUT => 20 ,
CURLOPT_USERAGENT => $userAgent,
CURLOPT_AUTOREFERER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_COOKIEFILE => $cookie,
CURLOPT_COOKIEJAR => $cookie ,
CURLOPT_SSL_VERIFYPEER => 0 ,
CURLOPT_SSL_VERIFYHOST => 0
);
curl_setopt_array($ch, $options);
$kl = curl_exec($ch);
curl_close($ch);
$dom=str_get_html($kl);
return $dom;
}
Thứ Năm, 5 tháng 12, 2013
Thứ Tư, 20 tháng 11, 2013
Lập trình hướng đối tượng trong PHP 5 ( PHP OOP )
Lập trình hướng đối tượng:
- Lấy đối tượng là nền tảng
- Tìm những đối tượng có sẵn hoặc xây dựng những đối tượng
- Sau đó kết hợp với nhau để giải quyết vấn đề
- Xây dựng những đối tượng mã lệnh có liên hệ khắn khít với đối tượng của thế giới thực
Ví dụ 3: Game bóng đá:
- Game bóng đá là một chương trình rất lớn chắc chắn nếu bạn muốn
làm nó bạn phải xây dựng nó trên mô hình hướng đối tượng. Vậy việc đầu
tiên của trước khi xây dựng game này bạn cần xác định các đối tượng
chính của game
- Những đối tượng chính của game mà bạn có thể dễ dàng nhìn thấy như:
o Câu lạc bộ
o Sân vận động
o Giải thi đấu
o Cầu thủ
o Huấn luyện viên
o Cổ động viên…
- Trong một ứng dụng lớn như game bóng đá các bạn sẽ thấy xuất hiện
rất nhiều đối tượng. Chúng ta sẽ phân tích thử một đối tượng trong game
đó là đối tượng con người.
- Con người là một lớp chính trong game từ đối tượng ‘con người’
chúng ta sẽ mở rộng ra các đối khác như cầu thủ, trọng tài, huấn luyện
viên, cổ động viên…
- Đơn giản hóa việc phát triển các chương trình
- Giúp tạo ra những chương trình có tính mềm dẻo và linh động cao (Khi sửa chữa bảo trì, nâng cấp dể dàng)
Chủ Nhật, 17 tháng 11, 2013
Codeigniter Framework - Bài 1
Hôm nay rảnh rỗi nghiên cứu cái framework mới thấy cũng hay hay. vs mô hình mvc (Mẹ và Con)
Codeigniter là một framework mã nguồn mở viết bằng ngôn ngữ php với mô hình Model View Controler cấu trúc hướng đối tượng.
Model
class Page_model extends CI_Model{
public function get_page($p=null){
$query = $this->db->get('pages');
if ($query->num_rows() > 0){
return $query->result();
}
return FALSE;
}
}
Controler
class Welcome extends CI_Controller {
public function index()
{
$this->load->model('page_model');
$data["bien_truyen_view"]=$this->page_model->get_page();
$this->load->view('home',$data);
}
}
View
echo $bien_truyen_view;
Ngoài ra codeisnitor còn hỗ trợ rất nhiều phương thức tương tác với cơ sở dữ liệu thông qua active record khá tiện dụng
Ví dụ:
Muốn view một bảng ra chỉ cần
$this->db->get("user");
= với query truy vấn $this->db->query("select * from user");
Tương tự với insert, update và delete record ngoài ra còn rất nhiều phương thức khác liên quan tới database.
Xem link bên dưới
** http://ellislab.com/codeigniter/user-guide/database/active_record.html
Thư viện class của codeignitor rất phong phú được chia vào các
Class Reference
Benchmarking Class
Calendar Class
Cart Class
Config Class
Email Class
Encryption Class
File Uploading Class
Form Validation Class
FTP Class
HTML Table Class
Image Manipulation Class
Input Class
Javascript Class
Loader Class
Language Class
Migration Class
Output Class
Pagination Class
Security Class
Session Class
Trackback Class
Template Parser Class
Typography Class
Unit Testing Class
URI Class
User Agent Class
XML-RPC Class
Zip Encoding Class
Chúng ta sẽ tìm hiểu những thành phần này rõ và kỹ hơn ở những mục tiếp theo.
Codeigniter là một framework mã nguồn mở viết bằng ngôn ngữ php với mô hình Model View Controler cấu trúc hướng đối tượng.
Model
class Page_model extends CI_Model{
public function get_page($p=null){
$query = $this->db->get('pages');
if ($query->num_rows() > 0){
return $query->result();
}
return FALSE;
}
}
Controler
class Welcome extends CI_Controller {
public function index()
{
$this->load->model('page_model');
$data["bien_truyen_view"]=$this->page_model->get_page();
$this->load->view('home',$data);
}
}
View
echo $bien_truyen_view;
Ngoài ra codeisnitor còn hỗ trợ rất nhiều phương thức tương tác với cơ sở dữ liệu thông qua active record khá tiện dụng
Ví dụ:
Muốn view một bảng ra chỉ cần
$this->db->get("user");
= với query truy vấn $this->db->query("select * from user");
Tương tự với insert, update và delete record ngoài ra còn rất nhiều phương thức khác liên quan tới database.
Xem link bên dưới
** http://ellislab.com/codeigniter/user-guide/database/active_record.html
Thư viện class của codeignitor rất phong phú được chia vào các
Class Reference
Benchmarking Class
Calendar Class
Cart Class
Config Class
Email Class
Encryption Class
File Uploading Class
Form Validation Class
FTP Class
HTML Table Class
Image Manipulation Class
Input Class
Javascript Class
Loader Class
Language Class
Migration Class
Output Class
Pagination Class
Security Class
Session Class
Trackback Class
Template Parser Class
Typography Class
Unit Testing Class
URI Class
User Agent Class
XML-RPC Class
Zip Encoding Class
Chúng ta sẽ tìm hiểu những thành phần này rõ và kỹ hơn ở những mục tiếp theo.
Thứ Ba, 8 tháng 10, 2013
Thứ Sáu, 23 tháng 8, 2013
Thứ Tư, 14 tháng 8, 2013
Ứng dụng SQLite trong website data chỉ trong 1 file ^^
http://www.mediafire.com/?27hy3a59wu43km4
Connect data
$namefile = 'sqlitedb.sqlite';
try {
$dblite = new PDO('sqlite:' . $namefile);
} catch (Exception $e) {
die($e);
}
function do_query($sql){
global $dblite;
$row3=$dblite->query($sql);
return $row3;
}
function get_data($sql){
global $dblite;
$row3=$dblite->query($sql);
$data=array();
foreach ($row3 as $row) {
$data[]=$row;
}
return $data;
}
Query Sql
$data=get_data("select * from user ");
for($i=0;$i<sizeof($data);$i++){
echo "<p>".($i+1)." - <strong>".$data[$i]["ten"]."</strong> - ".$data[$i]["email"]."</p>";
}
Thứ Năm, 1 tháng 8, 2013
Cách chống spam nick diễn đàn vbb
Tạo ra file son.php với nội dung
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="script/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css" />
<title>Trả lời câu hỏi</title>
</head>
<body>
<center>
<h1>Để tránh đăng ký ảo ! mời bạn trả lời một số câu hỏi bên dưới !</h1>
<form action='son.php' method='post'>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kkf3lWuy5RmRUUrXHIg38hk0Dp34j46EdzVD-X39tmZDB9BboPAYzOBpDxb3lrsiRCKfY4JTFBTHM7GLDrivMqdABK8yfV_f7seIKf5E9mfBiPGhVDhSQ2Fka2tE9TxIoA8xhwJirAE/s320/tom-jerry9789789.jpg" />
<div><strong><h3>Câu hỏi 1: Tên con mèo hay đuổi chuột Jerry tên gì ?</h3></strong></div>
<strong>Trả lời:</strong> <input type='text' name='pass'><br>
<img src="http://www.corleydogtraining.co.uk/Dog1.jpg" />
<div><strong><h3>Câu hỏi 2: Con chó có đuôi không ? (có/không): ?</h3></strong></div>
<strong>Trả lời:</strong> <input type='text' name='pass2'><br>
<input type='submit' name='ok' value='Bước thứ 2'>
</form>
<br>
<?php error_reporting(0);
if(isset($_POST['ok'])) {
if(strtolower($_POST['pass'])==strtolower('tom') && (strtolower($_POST['pass2'])==strtolower('co')||strtolower($_POST['pass2'])==strtolower('có'))){
$_SESSION['nhappassok1123'] = $_POST['pass'];
echo '<br>Ok. Vui lòng chờ 1 giây để chuyển ...';
echo '<meta http-equiv="Refresh" Content="0; url=http://traitimthienthan.com/diendan/register1.php">';
exit;
}
else {
echo '<b>Lỗii:</b> Bạn nhập không đúng xin nhập lại';
}
}
?>
</center>
</body>
</html>
***********************
copy vào phần đầu của file register.php
<?php
session_start();
if (!isset($_SESSION['nhappassok1123'])){
include 'son.php';
exit;
}
==========================================
Cách 2:
Đổi tên file register.php thành tên khác
Nhớ đổi tên trong template
+ email xác nhận thành viên
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="script/bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css" />
<title>Trả lời câu hỏi</title>
</head>
<body>
<center>
<h1>Để tránh đăng ký ảo ! mời bạn trả lời một số câu hỏi bên dưới !</h1>
<form action='son.php' method='post'>
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kkf3lWuy5RmRUUrXHIg38hk0Dp34j46EdzVD-X39tmZDB9BboPAYzOBpDxb3lrsiRCKfY4JTFBTHM7GLDrivMqdABK8yfV_f7seIKf5E9mfBiPGhVDhSQ2Fka2tE9TxIoA8xhwJirAE/s320/tom-jerry9789789.jpg" />
<div><strong><h3>Câu hỏi 1: Tên con mèo hay đuổi chuột Jerry tên gì ?</h3></strong></div>
<strong>Trả lời:</strong> <input type='text' name='pass'><br>
<img src="http://www.corleydogtraining.co.uk/Dog1.jpg" />
<div><strong><h3>Câu hỏi 2: Con chó có đuôi không ? (có/không): ?</h3></strong></div>
<strong>Trả lời:</strong> <input type='text' name='pass2'><br>
<input type='submit' name='ok' value='Bước thứ 2'>
</form>
<br>
<?php error_reporting(0);
if(isset($_POST['ok'])) {
if(strtolower($_POST['pass'])==strtolower('tom') && (strtolower($_POST['pass2'])==strtolower('co')||strtolower($_POST['pass2'])==strtolower('có'))){
$_SESSION['nhappassok1123'] = $_POST['pass'];
echo '<br>Ok. Vui lòng chờ 1 giây để chuyển ...';
echo '<meta http-equiv="Refresh" Content="0; url=http://traitimthienthan.com/diendan/register1.php">';
exit;
}
else {
echo '<b>Lỗii:</b> Bạn nhập không đúng xin nhập lại';
}
}
?>
</center>
</body>
</html>
***********************
copy vào phần đầu của file register.php
<?php
session_start();
if (!isset($_SESSION['nhappassok1123'])){
include 'son.php';
exit;
}
==========================================
Cách 2:
Đổi tên file register.php thành tên khác
Nhớ đổi tên trong template
+ email xác nhận thành viên
Thứ Tư, 31 tháng 7, 2013
Thứ Ba, 30 tháng 7, 2013
Jquery AJAX Save to file
$('a#exportPage').on('click',function(){
var contentMap = {};
$('[id^="appendHeading"]').each(function(){
contentMap[this.id] = $(this).text();
});
for(id in contentMap)
$("#PrintIds").append("ObjectID:" + id + "Content:" + contentMap[id]);
$.ajax({
url: "post.php",
type: "post",
data: {
objectID: id,
content: contentMap[id]
},
success: function(){
alert("success");
},
error:function(){
alert("failure");
}
});
});
And this PHP:<?php
if ($_POST['objectID'] || $_POST['content']) {
$myFile = "test.css";
$stringData = $_POST['objectID'] || $_POST['content'];
file_put_contents($myFile,$stringData);
}
?>
Thứ Ba, 23 tháng 7, 2013
Lấy url hiện tại
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
Thứ Sáu, 31 tháng 5, 2013
Regular Expressions cơ bản cho php - hay và hữu ích ^^ thank tác giả
Regular Expressions
1. Regular expression là gì?
+ Biểu thức chính quy.
+ Hiểu nôm na là 1 chuỗi có quy tắc để mô tả những chuỗi(string) khác
2. Cú pháp cơ bản (ở đây mình chỉ trình bày và ví dụ cho ngôn ngữ php)
Example:
Output: Yes
+ Ký hiệu “^” và “$”: bắt đầu và kết thúc 1 string
Example:
Output: Yes
Output: No
+ Ký hiệu: “*”, “+”, “?”
$re = '/^ab*$/' ; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 0 hoặc nhiều b (ví dụ: a, ab, abb, abbb, …);
$re = '/^ab+$/' ; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 1 hoặc nhiều b (ví dụ: ab, abb, abbb, …);
$re = '/^ab?$/' : // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là b hoặc là không (ví dụ: ab hoặc a).
Example:
Output: No
+ Sử dụng: {}:
$re = '/^ab{2}$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 2 chũ b (là abb);
$re = '/^ab{2,}$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là ít nhất 2 chũ b (ví dụ: abb, abbb, abbbb, …);
$re = '/^ab{2,5}$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là ít nhất 2 chũ b và nhiều nhất là 5 chữ b (ví dụ: abb, abbb, abbbb, abbbbb);
+ Sử dụng : () và |
$re = '/^a(bc)*$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 0 hoặc nhiều 'bc' (ví dụ abc, abcbc, abcbcbcbc, …)
$re = '/^a(b|c)*$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 0 hoặc nhiều 'b' hoặc nhiều 'c' hoặc 'b' 'c' lẫn lộn :D (ví dụ abc, abbcccccccccc, abccccbbbcbc, …)
+ Sử dụng symbol '.': đại diện cho một ký tự đơn bất kỳ
$re = '/^.{3}$/'; //Biểu thức chính quy cho một chuỗi có đúng 3 ký tự bất kỳ.
Output: Yes
+ Sử dụng: '-':
[0-9] : Một chữ số
[a-zA-Z]: một ký tự A->Z, a->z
[a-d] : ~ (a|b|c|d)
[^a-zA-Z]: một ký tự không phải là A->Z, a->z
[^0-9]: một ký tự không phải là số
+ Sử dụng: '\'
\d - Chữ số bất kỳ ~ [0-9]
\D - Ký tự bất kỳ không phải là chữ số (ngược với \d) ~ [^0-9]
\w - Ký tự từ a-z, A-Z, hoặc 0-9 ~ [a-zA-Z0-9]
\W - Ngược lại với \w (nghĩa là các ký tự không thuộc các khoảng: a-z, A-Z, hoặc 0-9) ~[^a-zA-Z0-9]
\s - Khoảng trắng (space)
\S - Ký tự bất kỳ không phải là khoảng trắng.
3. Các hàm cơ bản vận dụng regular expression
+ preg_match : http://php.net/manual/en/function.preg-match.php
Cơ bản là để tìm kiếm 1 string có làm việc theo một $re.
Ví dụ:
Output: No
+ preg_replace: http://www.php.net/manual/en/function.preg-replace.php
Cơ bản là để tìm kiếm trong 1 string những chuỗi có cấu trúc theo $re để thay thế
Ví dụ:
Output: *hi
+ preg_split: http://php.net/manual/en/function.preg-split.php
Ví dụ:
Các bạn xem tạm ví dụ ở trong php manual nhé. Mệt rùi.
Để viết ra bài này, mình đã tham khảo nhiều nguồn trên mạng, và kiến thức từ những lần sử dụng regular expressions.
Có zì sai hay chưa đủ thì các bạn pm để mình bổ xung thêm.
Thanks.
1. Regular expression là gì?
+ Biểu thức chính quy.
+ Hiểu nôm na là 1 chuỗi có quy tắc để mô tả những chuỗi(string) khác
2. Cú pháp cơ bản (ở đây mình chỉ trình bày và ví dụ cho ngôn ngữ php)
Example:
PHP Code:
<?php
$re = '/hello/'; // biểu thức chính quy cho một string có chuỗi “hello” ở trong đó.$str = 'hello world';
if(preg_match($re, $str)) {
echo 'Yes';
}?>
+ Ký hiệu “^” và “$”: bắt đầu và kết thúc 1 string
Example:
PHP Code:
<?php
$re = '/^hello/'; // biểu thức chính quy cho một string bắt đầu bởi chuỗi “hello”$str = 'hello world';
if(preg_match($re, $str)) {
echo 'Yes';
}
else {
echo 'No';
}?>
PHP Code:
<?php
$re = '/hello$/'; // biểu thức chính quy cho một string kết thúc bởi chuỗi “hello”$str = 'hello world';
if(preg_match($re, $str)) {
echo 'Yes';
}
else {
echo 'No';
}?>
+ Ký hiệu: “*”, “+”, “?”
$re = '/^ab*$/' ; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 0 hoặc nhiều b (ví dụ: a, ab, abb, abbb, …);
$re = '/^ab+$/' ; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 1 hoặc nhiều b (ví dụ: ab, abb, abbb, …);
$re = '/^ab?$/' : // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là b hoặc là không (ví dụ: ab hoặc a).
Example:
PHP Code:
<?php
$re = '/^ab*$/'; $str = 'abbc';
if(preg_match($re, $str)) {
echo 'Yes';
}
else {
echo 'No';
}?>
+ Sử dụng: {}:
$re = '/^ab{2}$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 2 chũ b (là abb);
$re = '/^ab{2,}$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là ít nhất 2 chũ b (ví dụ: abb, abbb, abbbb, …);
$re = '/^ab{2,5}$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là ít nhất 2 chũ b và nhiều nhất là 5 chữ b (ví dụ: abb, abbb, abbbb, abbbbb);
+ Sử dụng : () và |
$re = '/^a(bc)*$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 0 hoặc nhiều 'bc' (ví dụ abc, abcbc, abcbcbcbc, …)
$re = '/^a(b|c)*$/'; // biểu thức chính quy cho một string bắt đầu bởi a, và kết thúc là 0 hoặc nhiều 'b' hoặc nhiều 'c' hoặc 'b' 'c' lẫn lộn :D (ví dụ abc, abbcccccccccc, abccccbbbcbc, …)
+ Sử dụng symbol '.': đại diện cho một ký tự đơn bất kỳ
$re = '/^.{3}$/'; //Biểu thức chính quy cho một chuỗi có đúng 3 ký tự bất kỳ.
PHP Code:
<?php
$re = '/^.{3}$/';
//Biểu thức chính quy cho một chuỗi có đúng 3 ký tự bất kỳ.$str = '&#%';
if(preg_match($re, $str)) {
echo 'Yes';
}
else {
echo 'No';
}?>
+ Sử dụng: '-':
[0-9] : Một chữ số
[a-zA-Z]: một ký tự A->Z, a->z
[a-d] : ~ (a|b|c|d)
[^a-zA-Z]: một ký tự không phải là A->Z, a->z
[^0-9]: một ký tự không phải là số
+ Sử dụng: '\'
\d - Chữ số bất kỳ ~ [0-9]
\D - Ký tự bất kỳ không phải là chữ số (ngược với \d) ~ [^0-9]
\w - Ký tự từ a-z, A-Z, hoặc 0-9 ~ [a-zA-Z0-9]
\W - Ngược lại với \w (nghĩa là các ký tự không thuộc các khoảng: a-z, A-Z, hoặc 0-9) ~[^a-zA-Z0-9]
\s - Khoảng trắng (space)
\S - Ký tự bất kỳ không phải là khoảng trắng.
3. Các hàm cơ bản vận dụng regular expression
+ preg_match : http://php.net/manual/en/function.preg-match.php
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
Ví dụ:
PHP Code:
<?php
$re = '/^\w+$/';
// một string toàn ký tự A->Z, a->z, 0->9$str = 'quya*';
if(preg_match($re, $str)) {
echo 'Yes';
}
else {
echo 'No';
}?>
+ preg_replace: http://www.php.net/manual/en/function.preg-replace.php
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
Ví dụ:
PHP Code:
<?php
$re = '/\w+$/';$str = '*quya';
echo preg_replace($re, 'hi', $str);?>
+ preg_split: http://php.net/manual/en/function.preg-split.php
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
Các bạn xem tạm ví dụ ở trong php manual nhé. Mệt rùi.
Để viết ra bài này, mình đã tham khảo nhiều nguồn trên mạng, và kiến thức từ những lần sử dụng regular expressions.
Có zì sai hay chưa đủ thì các bạn pm để mình bổ xung thêm.
Thanks.
Thứ Sáu, 26 tháng 4, 2013
Thứ Năm, 13 tháng 9, 2012
Đăng ký:
Bài đăng (Atom)