Blog chia sẻ và thảo luận về IT|Programming Language|Search Engine Optimization|Data Base|Linux| ...

datnguyen

Cùng trải nghiệm Drupal

+ No comment yet

Nếu bạn là 1 coder PHP thì chắc chắn cũng đã từng nghe đến Drupal, một PHP Platform đuợc sử dụng rộng rãi cho các dự án lớn, luôn trong top cuộc thị mã nguồn mở.
Xét về số người dùng cũng như các nhà phát triển cho Drupal thì có thể nói là ngang ngửa Joomla và chỉ chịu đứng sau Wordpress. Nhưng xét về các dự án lớn thì Drupal luôn là lựa chọn số 1 (Joomla chỉ dành cho các dự án tầm trung và wordpress thì không nói, chỉ dành cho các blogger).

Read more

Hàm escape() ?

+ 1 comment
Hàm escape có tác dụng gì() ?

Ví dụ trong Controller Contact có action sau:

PHP Code:
public function indexAction()
{
// action body
$this->view->name=$this->_getParam('email','guest');
}


Ra trang view /contact/index.phtml chúng ta muốn hiển thị giá trị name:

PHP Code:
<?php echo $this->escape($this->name);?>


Hàm escape() loại bỏ các ký tự đặc biệt, mục đích là để trang web hiển thị đúng hơn và tránh được lỗi cross-site scripting.

Bình thường escape() sẽ dùng hàm htmlspecialchars() của PHP để làm việc, nhưng nếu bạn muốn nó sử dụng hàm khác thì dùng setEscape() để cài cho nó một callback function mới. Có thể xem chi tiết hơn tại đây: http://framework.zend.com/manual/en/...w.scripts.html

JSON làm việc như thế nào

+ No comment yet
JSON hoạt động?
________________________________________
Convert chuỗi JSON thành đối tượng JavaScript

Với JSON, để lấy dữ liệu JSON từ web server (như 1 file hay 1 HttpRequest), convert dữ liệu JSON thành đối tượng JavaScript, và sử dụng dữ liệu này trong trang web
Sau đây là demo:
________________________________________
Ví dụ JSON – Tạo Object từ Chuỗi (String)

Đầu tiên, tạo 1 chuỗi JavaScript chứa cú pháp JSON:
Mã:
var txt = '{ "employees" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"Peter" , "lastName":"Jones" } ]}';
Kể từ khi cú pháp JSON là tập con của cú pháp JavaScript, hàm JavaScript eval() có thể convert chuỗi JSON thành đối tượng JavaScript.
Hàm eval() sử dụng trình biên dịch(compiler) JavaScript sẽ phân tích cú pháp(parse) chuỗi JSON và sinh ra đối tượng JavaScript. Chuỗi phải được bọc trong dấu ngoặc ‘()’ để tránh lỗi cú pháp:
Mã:
var obj = eval ("(" + txt + ")");
Cuối cùng là việc sử dụng đối tượng JavaScript trong trang web như sau:

Mã:
<p>
First Name: <span id="fname"></span><br /> 
Last Name: <span id="lname"></span><br /> 
</p> 

<script type="text/javascript">
document.getElementById("fname").innerHTML = obj.employees[1].firstName 
document.getElementById("lname").innerHTML = obj.employees[1].lastName 
</script>
________________________________________
JSON Parser

Sẽ an toàn hơn để sử dụng JSON Parser để convert chuỗi JSON thành đối tượng JavaScript. 1 JSON Parser sẽ nhận dạng chỉ chuỗi JSON và không biên dịch các script khác.

Trong trình duyệt có hỗ trợ mặc định cho JSON, thì JSON sẽ được parse nhanh hơn.
Thông thường thì các trình duyệt mới đều hỗ trợ mặc định cho JSON và trong chuẩn ECMAScript (JavaScript) mới nhất.

Web Browsers Support

  • Firefox (Mozilla) 3.5
  • Internet Explorer 8
  • Chrome
  • Opera 10
  • Safari 4
Web Software Support
  • jQuery
  • Yahoo UI
  • Prototype
  • Dojo
  • ECMAScript 1.5
Nguồn : Phponline.com

Cú pháp JSON

+ No comment yet
Cú pháp JSON

Cú pháp JSON là một tập hợp con của cú pháp JavaScript

Các quy luật cú pháp JSON

Cú pháp JSON là một tập hợp con của cú pháp đối tượng JavaScript.
  • Dữ liệu là các cặp tên/giá trị (name/values)
  • Dữ liệu được phân cách bằng dấu phẩy
  • Đối tượng nằm trong cặp ngoặc nhọn ‘{}’
  • Dấu ngoặc vuông giữ mảng ‘[]’
Cặp Tên/Giá trị của JSON

Dữ liệu JSON được viết trong cặp Tên/Giá trị.
Một cặp Tên/Giá trị chứa tên 1 trường (trong dấu nháy đôi “”), theo sau là dấu phẩy, cuối cùng là giá trị:
Mã:
"firstName" : "John"
Cú pháp này khá dễ hiểu, và tương đương với lệnh JavaScript sau:
Mã:
firstName = "John"
________________________________________
Các giá trị của JSON
Giá trị (value) JSON có thể là:
  • 1 số (nguyên (integer) hay số thực (floating point))
  • 1 chuỗi (nằm trong dấu nháy đôi “”)
  • 1 số luận lý (true or false)
  • 1 mảng (nằm trong dấu ngoặc vuông [])
  • 1 đối tượng (nằm trong dấu ngoặc nhọn {})
  • Kiểu null
 _______________________________________ 
Các đối tượng JSON

Các đối tượng được đặt trong dấu ngoặc nhọn {}
Đối tượng có thể chứa nhiều cặp Tên/Giá trị (Name/Values):
Mã:
{ "firstName":"John" , "lastName":"Doe" }
Và tương đương với lệnh JavaScript sau:
Mã:
firstName = "John"
lastName = "Doe"
________________________________________
Mảng của JSON
Mảng JSON nằm trong dấu ngoặc vuông [].
1 mảng có thể chứa nhiều đối tượng:
Mã:
{
	"employees": [
		{ "firstName":"John" , "lastName":"Doe" }, 
		{ "firstName":"Anna" , "lastName":"Smith" }, 
		{ "firstName":"Peter" , "lastName":"Jones" }
	]
}
Trong ví dụ trên, đối tượng “employees” là 1 mảng chứa 3 đối tượng. mỗi đối tượng là 1 record của person (với 1 ‘first name và’ 1 ‘last name’).
________________________________________
JSON sử dụng cú pháp JavaScript
Bởi vì JSON sử dụng cú pháp JavaScript, nên không cần 1 chương trình trung gian làm việc giữ JSON và JavaScript.
Với JavaScript bạn có thể tạo 1 mảng các đối tượng và gán dữ liệu như sau:

Ví dụ:
Mã:
var employees = [
	{ "firstName":"John" , "lastName":"Doe" }, 
	{ "firstName":"Anna" , "lastName":"Smith" }, 
	{ "firstName":"Peter" , "lastName": "Jones" }
];
Dòng đầu tiên trong mảng đối tượng JavaScript có thể được truy cập như sau:
Mã:
employees[0].lastName;
Kết quả:
Mã:
Doe
Dữ liệu mới được gán như sau:
Mã:
employees[0].lastName = "Jonatan";
Trong phần 4, tui sẽ chỉ cách chuyển chuỗi JSON qua đối tượng JavaScript.
________________________________________
JSON Files
  • Kiểu file của JSON là ".json"
  • Kiểu MIME của JSON là "application/json"
Nguồn : Phponline.com

JSON (JavaScript Object Notation)

+ No comment yet
Chào các bạn,
Mình thấy khi lập trình người ta mã hóa chuỗi chứa dữ liệu dạng json, và họ mã hóa chuỗi đó. mình nghĩ đâu nhất thiết phải mã hóa nó đâu. có bạn nào giải thích dùm mình với. thank.
Thân mến!

Read more

Zend Framework, setting up a dynamic menu using a plugin

+ No comment yet
I wanted to set up the menu in layout.phtml using a dynamic call to the database.
I created a directory in library called plugins.
I put this in application.ini
autoloaderNamespaces[] = “Plugins”
I created a class in the plugins directory called Plugins_Layout with the file name Layout.php
  1. class Plugins_Layout extends Zend_Controller_Plugin_Abstract  
  2. {  
  3.     public function preDispatch(Zend_Controller_Request_Abstract $request)  
  4.     {  
  5.         $layout = Zend_Layout::getMvcInstance();  
  6.         $view = $layout->getView();  
  7.         $content_mapper = new Application_Model_ContentMapper();  
  8.         $view->menu = $content_mapper->getMenu();  
  9.     }  
  10. }  
I then added this to Bootstrap.php
  1. protected function _initRoutes() {  
  2.         ......   
  3.        Zend_Controller_Front::getInstance()->registerPlugin(new Plugins_Layout());  
  4.     }  
I was then able to create the dynamic menu in layout.phtml
  1. <!--?php foreach($this--->menu as $url => $title) { ?>  
  2.   
  3. a href="/<?php echo $url ?>"><!--?php echo $title; ?--></a>  
  4.   
  5. <!--? } ?-->  
All was working as I expected.
Nguồn : http://blog.saunderswebsolutions.com

Lucene , Sphinx Hay Solr , Dùng cái nào ? (P.1)

+ No comment yet





Solr là một platform mã nguồn mở cung cấp chức năng tìm kiếm phổ biến được phát triển bởi Apache.
Tính năng chính của nó bao gồm khả năng tìm kiếm full-text, highlighting, faceted search, tích hợp cơ sở dữ liệu, xử lý nhiều kiểu văn bản (ví dụ, Word, PDF), và tìm kiếm theo địa điểm. Solr có khả năng mở rộng cao, cung cấp tìm kiếm phân tán và nhân bản Index. Nó cung cấp các tính năng định hướng và tìm kiếm cho nhiều trang web hàng đầu trên thế giới.



Read more

Zend Search Lucene (ex1)

+ No comment yet

With Zend_Search_Lucene you can build a search function on your web page. The difference between searching via MySQL like most websites do is that you have to create an index and keep it up to date.

Create index folder

Create a folder where you store your search index and set write rights. In this tutorial we use the path /application/data/search of our Zend application.

Read more

Full text search

+ No comment yet

I. Full text search là gì?
Nói đơn giản dễ hiểu, full text search (gọi tắt là FTS) là cách tự nhiên nhất để tìm kiếm thông tin, hệt như Google, ta chỉ cần gõ từ khóa và nhấn enter thế là có kết quả trả về. Phạm vi bài viết này chỉ đề cập, giới thiệu sơ lược về FTS trong MySQL mà không bàn về các FTS engine như Sphinx hay Solr.

II. Tại sao chúng ta phải dùng Full text search?
Bình thường, chúng ta sẽ sử dụng câu truy vấn dạng như sau để tìm kiếm dữ liệu:

SELECT id,title,description FROM book WHERE title LIKE ‘%keyword%’

Nhưng cách truy vấn này có một số hạn chế như sau:

(Lưu ý: đây là những hạn chế chung trong MySQL, ngay cả full text search của MySQL cũng không giải quyết triệt để các vấn đề này mà phải dùng các search engine ngoài như Solr, Sphinx v.v Nhưng mình muốn nêu lên ở đây để chúng ta có cái nhìn rõ ràng về những khuyết điểm đó.)

Read more

Book - Yii Framework

+ No comment yet
Có mấy cuốn sách nghe nói hay , bạn nào luyện xong xin chỉ giáo lại.


1. Web Application Development With Yii and PHP
2. Yii 1.1 Application Development Cookbook
3. yii-blog-1.1.12
4. Agile web application development with yii 1.1 and php5

Lên google search link, down về châm cứu nhé.

Quản lí version source code bằng SVN

+ 1 comment
SVN là từ viết tắt của subversion control. Nó là một giao thức giúp lập trình viên quản lí version của sourcecode trong quá trình phát triển phần mềm.

Đặc điểm nổi bật của SVN:
- Lưu giữ source theo version để có thể backup và restore.
- Giúp cho thành viên trong nhóm deploy sản phẩm nhanh chóng và tiến hành kiểm định hay phát triển.


Read more

How to get reciprocal links

+ 1 comment

Lang thang trên mạng tìm được bài viết hay chia sẻ lên blog cho anh em nào thích thì đọc nhé, toàn tiếng anh nên làm biếng dịch , các bạn google translate cho nhanh nhé :

Reciprocal links are arranged when two web sites agree to link to each other.

Reciprocal links are also known as "link swaps", "link exchanges" and "link partners".

Read more