Hiển thị các bài đăng có nhãn Thiết kế Website. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Thiết kế Website. Hiển thị tất cả bài đăng

Tạo nhanh một website chỉ trong vòng 30 giây

Người đăng: chisenhungsuutam on Thứ Sáu, 11 tháng 7, 2014

Xu hướng tạo web bán hàng và web quảng bá đang là xu thế lớn nhất với người dùng Internet hiện nay nhưng việc tạo một web không phải là vấn đề đơn giản với hầu hết mọi người.
VungMien.VN tích hợp đầy đủ các tính năng và giao diện cũng như cơ chế quản trị phong phú để bạn có thể dễ dàng tự tạo và quản trị được một Web theo cách đơn giản nhất.

Đăng kí ngay TẠI ĐÂY




+ Với hệ thống giao diện phong phú hỗ trợ 100 giao diện phong phú về màu sắc, bố cục để khách hàng lựa chọn.
Đọc thêm »
More about

PHP: Tự động tạo mật khẩu ngẫu nhiên - PHP Password Generating

Người đăng: chisenhungsuutam on Thứ Sáu, 21 tháng 2, 2014


Tự động tạo mật khẩu ngẫu nhiên - PHP Password Generating
PHP Code:
<?php
function genPwd($length=6) {
   $password = '';
   $possible = '23456789bcdfghjkmnpqrstvwxyz';
   $i = 0;
   while ($i < $length) {

      $password .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
      $i++;
   } 
   return $password;
}
?>
Cách sử dụng:
Cóp và dán đoạn mã trên vào trang của bạn, sau đó gọi hàm genPwd() như sau:
<?php
   $password = genPwd(8);
?>
Kết quả:
Đoạn mã trên cho phép tự động tạo mật khẩu ngẫu nhiên có độ dài bất kỳ được tổ hợp từ các ký tự xác định trước.
Mật khẩu ngẫu nhiên được sinh ra có độ dài 8 ký tự: m1ztpxw8
Chú ý:
Nếu không có độ dài ký tự trong hàm genPwd() thì mặc định sẽ chọn độ dài mật khẩu là 6. Biến $possible trong hàm genPwd() có thể được chỉnh sửa để quy định các ký tự xác định được sử dụng.

Tag: PHP, Password Generating, tự tạo mật khẩu, an toàn thông tin
More about

PHP: Lớp kết nối MySQL với PHP bằng câu lệnh đơn giản

Người đăng: chisenhungsuutam

PHP Code:
class mysql{
var $property = array(
    'hostname'    => 'localhost',
    'database'    => '',
    'username'    => '',
    'password'    => '',
);
function mysql($info){
foreach($this->property as $k    => $v){
$this->property[$k]=$info[$k];
}
}
function connect(){
$flag = @mysql_pconnect($this->property['hostname'],$this->property['username'],$this->property['password']);
if(!$flag)    die("can not connect to server. may be server bussy");
$flag= @mysql_select_db($this->property['database'],$flag);
if(!$flag) die("can not select database now");
}
}
Lưu vào trong 1 file ví dụ “global.php”;
Để dễ dàng khi kết nối bạn viết thêm 1 file init.php file này có chứ năng tạo các thông tin cấu hình cơ bản như kết nối mysql, lấy thông tin thành viên …
ví dụ
PHP Code:
<?php
$dbinfo = array(
'hostname'    => 'localhost',
'database'    => 'databasename',
'username'    => 'root',
'password'    => 'root',
);
include("includes/global.php");
$db = new mysql($dbinfo);
$db->connect();
?>
Như vậy file nào cần kết nối database bạn chỉ cần inlclude file init.php vào là ok;
PHP Code:
include("init.php");

Tag: PHP, MySQL, Apache, Database, Connection, dbinfo
More about

PHP: Các hàm PHP xử lý chuỗi

Người đăng: chisenhungsuutam


Các hàm PHP xử lý chuỗi

1: addcslashes :Trích dẫn chuỗi kí tự với những vạch chéo trong kiểu C
- Cấu trúc :addcslashes(string with special characters);

2: addslashes :Trích dẫn chuỗi kí tự với những vạch chéo
- Cấu trúc : addcslashes(a string with special characters);

3: bin2hex :Chuyển đổi dữ liệu dạng nhị phân sang dạng biểu diễn hệ hexa
- Cấu trúc :bin2hex(string);

4: chop :Tách bỏ nhưng khoảng trắng từ cuối một chuỗi

5: chr : Cho một kí tự đặc biệt trong bảng mã
- Cấu trúc : chr(numeric);

6: chuck split : Tách một chuỗi thành các chuỗi nhỏ hơn

7: convert cyr string :Chuyển đổi từ một kí tự kirin sang một kí tự khác

8: count_chart : Cho thông tin về các kí tự dùng trong chuỗi

9: crc32 : Tính toán sự thừa vòng đa thức của một chuỗi
Tự động tạo ra chu ki kiểm tra tổng thừa của đa thức dài 32bit trong một chuỗi

10: crypt :Một cách mã hóa một chuỗi

11: echo : In ra một hay nhiều chuỗi

12: explode :Tách một chuỗi ra bởi chuỗi kí tự

13: fprintf :Viết một định dạng chuỗi ra một dòng

14: get html translation table :Cho ra bảng dịch bằng cách sử dung các thủ tục

html entity decode :

15: hebrev :Chuyển đổi văn ban logic khó hiểu sang văn ban trưc quan

16: hebrevc :Chuyển đổi văn ban logic khó hiểu sang văn ban trưc quan với sự chuyển đổi dòng mới

17: html entity decode :Chuyển đổi tấtcả cácthực thể HTML sang những kí tự có thể dùng được của chúng

18: htmlentities :Đổi tất cả các kí tự được sử dung sang các thực thể HTML

19: htmlspecialchars :Đổi những kí tự đặc biệt sang các thực thể của HTML

20: implode :Nối các phần tử của mảng với một chuỗi

21: join :Hàm này là một bí danh của hàm implode

22: levenshtein :Tính khoảng cách giữa hai chuỗi

23: localeconv :Lấy ra thông tin quy cách số

24: lstrim-- Strip whitespace from the beginning of a string
Xoá khoảng trắng từ phần tử đầu tiên của chuỗi

25: md5_file-- Calculates the md5 hash of a given filename
Mã hoá md5 tên file

26: md5 -- Calculate the md5 hash of a string
Mã hoá md5 1 chuỗi

27: metaphone -- Calculate the metaphone key of a string
Tính siêu khoá âm thanh của 1 chuỗi

28: money_format -- Formats a number as a currency string
Định dạng 1 số như 1 chuỗi tiền tệ

29: nl_langinfo -- Query language and locale information
Ngôn ngữ truy vấn và biên tập thông tin

30: nl2br -- Inserts HTML line breaks before all newlines in a string
Chèn 1 dòng ngắt HTML trước tất cả những dòng mới trong 1 chuỗi

31: number_format -- Format a number with grouped thousands
Định dạng 1 số với hàng nghìn chữ số

32: ord -- Return ASCII value of character
Trả lại giá trị ASCII của kí tự

33: parse_str -- Parses the string into variables
Phân tách chuỗi thành các biến số

34: print -- Output a string
In ra 1 chuỗi

35: printf -- Output a formatted string
In ra 1 chuỗi được định dạng

36: quoted_printable_decode -- Convert a quoted-printable string to an 8 bit string
Chuyển 1 chuỗi có thể in trích dẫn sang 1 chuỗi 8 bit.(Giải mã)

37: quotemeta -- Quote meta characters
Trích dẫn kí tự đặc biệt

38: rtrim -- Strip whitespace from the end of a string
Xoá khoảng trắng từ phần tử cuối cùng của chuỗi

39: setlocale -- Set locale information
Thiết lập vị trí thông tin

40: sha1_file -- Calculate the sha1 hash of a file
Mã hoá sha1 1 file

41: sha1 -- Calculate the sha1 hash of a string
Mã hoá sha1 1 chuỗi

42: similar_text -- Calculate the similarity between two strings
Cho số kí tự giống nhau của 2 chuỗi

43: soundex -- Calculate the soundex key of a string
Tính khoá chỉ âm của 1 chuỗi

44: sprintf -- Return a formatted string
Trả lại 1 chuỗi được định dạng

45: sscanf -- Parses input from a string according to a format
Phân tách chuỗi theo 1 định dạng

46: str_ireplace -- Case-insensitive version of str_replace().
Tương tự str_ replace().

47: sscanf -- Parses input from a string according to a format
Phân tích từ loại nhập vao từ một chuỗi theo một định dạng

48: str_ireplace -- Case-insensitive version of str_replace().
->Thay thế ngược lại khi chuỗi đã bị thay thế bằng str_replace()

49: str_pad -- Pad a string to a certain length with another string
Co một chuỗi tới một độ dài nào đó với một chuỗi khác

50: str_repeat -- Repeat a string
Lặp lại một chuỗi

51: str_replace -- Replace all occurrences of the search string with the replacement string
Thay thế tất cả các biến cố của chuỗi tìm kiếm với một chuỗi thay thế

52: str_rot13 --Perform the rot13 transform on a string
Thực hiện mã hoá theo rot 13 trên 1 chuỗi

(Rot-13 :Trong các nhóm tin của mạng USENET, đây là một kỹ thuật mật mã hoá đơn giản, nó làm dịch từng ký tự đi 13 vị trí trong bảng chữ cái (cho nên e sẽ thành r). Mật mã rot- 13 được dùng cho mọi thông báo tin bất kỳ nào có thể làm mất sự thú vị của một người nào đó (như) cách giải cho một trò chơi chẳng hạn hoặc xúc phạm một số người đọc (như) bài thơ về tình dục chẳng hạn. Nếu người đọc cho giải mã thông báo tin này bằng cách phát ra một lệnh thích hợp, thì người đọc đó - chứ không phải tác giả của thông báo - sẽ phải chịu trách nhiệm đối với sự khó chịu do việc đọc thông báo gây ra.)

53: str_shuffle --Randomly shuffles a string
Thay đổi một chuỗi bằng cách xê dịch ngẫu nhiên

54: str_split -- Convert a string to an array
Đổi một chuỗi thành một mảng

55: str_word_count -- Return information about words used in a string
Trả lại thông tin về những từ đã sử dụng trong một chuỗi

56: strcasecmp -- Binary safe case-insensitive string comparison
So sánh chuỗi theo …case-insensitive.. nhị phân

57: strchr --Alias of strstr()
Bí danh của strstr()

58: strcmp --Binary safe string comparison
Sự so sánh chuỗi bằng cơ sở nhị phân

59: strcoll --Locale based string comparison
Nơi diễn ra sự so sánh cơ sở

60: strcspn -- Find length of initial segment not matching mask
Tìm độ dài của đoạn đầu tiên mà không tìm thấy trên bề mặt của chuỗi này đối với chuỗi kia.

61: strip_tags --Strip HTML and PHP tags from a string
Loại bỏ các thẻ HTML và PHP từ một chuỗi

62: stripcslashes -- Un-quote string quoted with addcslashes()
Loại bỏ các dấu slashe trong chuỗi do hàm addcslashes() tạo ra.

63: stripos -- Find position of first occurrence of a case-insensitive string
Tìm ra vị trí đầu tiên của chuỗi này trong chuỗi kia của trường hợp sử lý cặp chuỗi.

64: stripslashes -- Un-quote string quoted with addslashes()
Loại bỏ hàm addslashes(), hay nói cách khác, hàm này trả về giá trị ban đầu của chuỗi khi chuỗi bị hàm addslashes() chèn các dấu slashe ở các ký tự đặc biệt

65: stristr -- Case-insensitive strstr()
Loại bỏ hàm strstr() khi trong chuỗi có dấu chấm.

66: strlen --Get string length
Lấy độ dài của chuỗi

67: strnatcasecmp -- Case insensitive string comparisons using a "natural order" algorithm
So sánh chuỗi theo thứ tự abc, các ký tự được xét từ đầu đến cuối chuỗi
(VD: a2>a12>a11).

68: strnatcmp -- String comparisons using a "natural order" algorithm
So sánh chuỗi sử dụng thứ tự abc và thứ tự toán học, nhưng được tính trên toàn bộ chuỗi ( VD: a12 > a11>a2).

69: strncasecmp -- Binary safe case-insensitive string comparison of the first n characters
Là một hàm giống như strcasecmp(), khác ở chỗ hàm này có thể chỉ rõ số ký tự trong mỗi chuỗi đem so sánh.

70: strncmp: trả ra giá trị mà chuỗi1 dài hơn so với sâu hai.

71: strpos: Tìm vì trí xuất hiện đầu tiên của một chuỗi này trong chuỗi khác.

72: strrchr: Tìm kiếm vị trí xuất hiện cuối cùng của một kí tự trong chuỗi.

73: strrev: Đảo ngược một chuỗi.

74: strripos: Tìm vị trí cuối cùng của chuỗi này khiến nó khác một chuỗi cho trước.

75: strrpos: Tìm vị trí lần xuất hiện cuối cùng cùng của một kí tự trong một chuỗi.

76: strspn: Tính xem độ dài đoạn đầu của một chuỗi mà chứa toàn các kí tự thuộc chuỗi khác.

77: strstr: Lấy ra một đoạn của chuỗi từ vị trí xuất hiện kí tự cho trước.

78: strtok: chia cắt chuỗi.

79: strtolower: biến kí tự chữ hoa thành chữ thường.

80: strtoupper: biến kí tự chữ thường thành chữ hoa.

81: strtr: chuyển đổi kí tự theo một qui tắc nào đó.

82: substr_compare: không có thông tin.

83: substr_count: Tính số lần xuất hiện của một chuỗi này trong một chuỗi khác.

84: substr_replace: thay thế một đoạn văn bản trong phạm vi một đoạn của chuỗi kí tự.

85: substr: trả ra một phần của chuỗi.

86: trim: Loại bỏ kí tự thừa(whitespace)ở đầu và cuối mỗi chuỗi.

87: ucfirst: viết hoa kí tự đầu tiên của một chuỗi.

88: ucwords: viết hoa kí tự đầu tiên của mỗi từ.

89: vprints: xuất ra một chuỗi được định dạng

90: vsprint: quai lại một chuỗi định dạng.

91: wordswarp: chia chuỗi kí tự ra thành các sâu con nhờ một kí tự xác định.
More about

JavaScript: Kiểm tra số n (nguyên, nhập từ bàn phím) có phải số nguyên tố không ?

Người đăng: chisenhungsuutam on Thứ Sáu, 8 tháng 11, 2013

<!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" />
<title>Untitled Document</title>
</head>
<body>
<script>
var i,n,nt=1;
function nguyento(x){
if(x==1 || x==2) nt=1;
if(x>2){
for(i=2;i<=Math.sqrt(x);i++){
if(x%i==0){nt=0; break;}
}
}
return nt;
}
n=prompt("Nhap gia tri n:");
if(nguyento(n)==1) document.write(n + " LA so nguyen to")
else document.write(n + " KHONG la so nguyen to")
</script>
</body>
</html>

More about

JavaScript: Tìm UCLN, BCNN của 2 số a, b (nguyên, nhập từ bàn phím)

Người đăng: chisenhungsuutam on Thứ Hai, 4 tháng 11, 2013

<html>
<head>
<title>UCLN</title>
</head>
<body>
<script language="JavaScript">
var a,b;
function UCLN(x,y){
while(x!=y)   {
            if(x>y) x=x-y;
            else y=y-x;
}
return x;
}
a=prompt("Nhap gia tri a:");
b=prompt("Nhap gia tri b:");
document.write("Uoc chung lon nhat: " + UCLN(a,b))
document.write("Boi chung nho nhat: " + a*b/UCLN(a,b))
</script>
</body>
</html>
Tags: Lập trình, JavaScript, BCNN, UCLN
More about

JavaScript: Giải phương trình bậc hai Ax2 + Bx + C = 0

Người đăng: chisenhungsuutam on Thứ Hai, 14 tháng 10, 2013


<html>
<head>
<title>Giai phuong trinh bac 2</title>
<script language="JavaScript">
function giai(form){
var x1,x2;
var x,y,z,delta;
x= parseInt(form.a.value);
y= parseInt(form.b.value);
z= parseInt(form.c.value);
delta=(y*y-4*x*z)
if(delta ==0){
alert("phuong trinh co nghiem kep");
x1=-y/(2*x) ;
x2=-y/(2*x);
form.x.value=eval(x1);
form.y.value=eval(x2);
}
else if(delta<0){
alert("phuong trinh vo nghiem");

else{
alert("phuong trinh co hai nghiem");
x1=(-y-Math.sqrt(delta))/(2*x);
x2=(-y+Math.sqrt(delta))/(2*x);
form.x.value=eval(x1);
form.y.value=eval(x2);
}
}
</script>
</head>
<body>
<form method="post">
<center>
<br>Nhap gia tri a:
<input type="text" name="a" value="">
<br> Nhap gia tri b:
<input type="text" name="b" value="">
<br>Nhap gia tri c:
<input type="text" name="c" value="">
<br>Đáp số:
<input type="text" name="x" value="">
<input type="text" name="y" value="">
<input type="button" value="giai" onClick="giai(this.form)">
</center>
</form>
</body>
</html>
[Download Mã nguồn: Chờ 5s, sau đó nhấn SKIP AD (để bỏ qua Quảng cáo)]
More about

JavaScript: Giải phương trình bậc nhất Ax + B = 0

Người đăng: chisenhungsuutam


<html>
<head>
<title>giai phuong trinh bac 1</title>
<script language="JavaScript">
function giai(form){
var x;
var a,b;
a= parseInt(form.a.value);
b= parseInt(form.b.value);

if(a==0){
if(b==0) alert("phuong trinh vo so nghiem");
else alert("phuong trinh vo nghiem");
}
else{ 
alert("phuong trinh co 1 nghiem");
x=-b/a;
form.x.value=eval(x);
}
}
</script>
</head>
<body>
<form method="post">
<center>
<br>Nhap gia tri a:
<input type="text" name="a" value="">
<br> Nhap gia tri b:
<input type="text" name="b" value="">

<br>Đáp số:
<input type="text" name="x" value="">
<input type="button" value="giai" onClick="giai(this.form)">
</center>
</form>
</body>
</html>
[CLICK Download Mã nguồn: Chờ 5s, sau đó nhấn SKIP AD (để bỏ qua Quảng cáo)]
More about

JavaScript: Code tạo chương trình máy tính điện tử

Người đăng: chisenhungsuutam


<html>
<head><script LANGUAGE="JavaScript">
function a_plus_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=a+b
            form.ans.value = c
}
function a_minus_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=a-b
            form.ans.value=c
}
function a_times_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=a*b
            form.ans.value=c
}
function a_div_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=a/b
            form.ans.value = c
}
function a_pow_b(form) {
            a=eval(form.a.value)
            b=eval(form.b.value)
            c=Math.pow(a, b)
            form.ans.value = c
}
</script>
<title>May tinh don gian</title>
</head>
<body>
<form name="formx">
<p><input type="text" size="4" value="12" name="a">
<input type="button" value="  + " onClick="a_plus_b(this.form)">
<input type="button" value="  -  " onClick="a_minus_b(this.form)">
<input type="button" value="  x  " onClick="a_times_b(this.form)">
<input type="button" value="/  " onClick="a_div_b(this.form)">
<input type="button" value="  ^  " onClick="a_pow_b(this.form)">
<input type="number" size="4" value="3" name="b"> =
<input type "number" value="0" name="ans" size="9"> </p>
</form>
</body>
</html>
Tags: Lập trình, JavaScript, máy tính điện tử
More about

Ngôn ngữ HTML dùng để soạn thảo trang web tĩnh

Người đăng: chisenhungsuutam on Thứ Ba, 6 tháng 8, 2013


Ngôn ngữ HTML dùng để soạn thảo trang web tĩnh


Để soạn thảo một trang Web thì việc trước tiên bạn phải hiểu thế nào là một trang Web, trang web đó được cấu tạo như thế nào, gồm các thành phần nào. Bài này sẽ hướng dẫn các bạn Cấu trúc trang web.

Cú pháp tag tổng quát 
Tag đầu trang: <HTML></HTML>
Tag bắt đầu: <HEAD></HEAD>
Tag tiêu đề: <TITLE></TITLE>
Tag thân trang: <BODY></BODY>
Tag định dạng font chữ: <FONT></FONT>,<BASEFONT></BASEFONT>
Tag xuống dòng sang đoạn mới: <P></P> 

Đọc thêm »
More about

Đặt logo website của bạn lên thanh địa chỉ Explorer

Người đăng: chisenhungsuutam on Chủ Nhật, 4 tháng 8, 2013

Trên các trang web nổi tiếng hay có Logo đều được ghi vào thanh Address Bar và trong danh sách các Favorites khi người sử dụng Save các trang web này vào Favorites. Hôm nay Quản Trị Mạng xin hướng dẫn bạn cách đặt Logo website lên Address Bar và Favorites
Có hai phương pháp để ghi Logo website lên thanh Địa chỉ (Address Bar của trình duyệt) và Favorites nhưng trước hết bạn hãy tạo Logo của bạn khi thiết kế website bằng các công cụ hiện có (chú ý file phải được lưu dưới dạng *.ico) tuy nhiên bạn nên download chương trình tạo Icon tại đây hoặc vào trang web www.download.com gõ từ khóa "make icon". Nhưng tốt hơn hết bạn hãy download chương trình do Quản Trị Mạng đã sử dụng và có trên máy chủ này với dung lượng khoảng 1,077Mb. Bạn phải chú ý là file phải được tạo có kích thước là 16 x 16
Cách thứ nhất cũng là cách đơn giản nhất:
(Hiện nay www.quantrimang.com cũng áp dụng theo phương pháp này). Hãy Copy logo website của bạn vào thư mục gốc của website và đặt tên file này là favicon.ico khi người sử dụng Add website của bạn vào Favorites thì trình duyệt sẽ tìm file favicon.ico và lưu dưới dạng biểu tượng (thay chữ E của Explorer). Ví dụ: Nếu website bạn là http://www.quantrimang.com thì bạn phải tạo một biểu tượng có tên là favicon.ico và nó sẽ phải được đặt vàohttp://www.quantrimang.com/favicon.ico
Đọc thêm »
More about

Thủ thuật thiết kế web hữu ích

Người đăng: chisenhungsuutam

Thiết kế Web tất nhiên không phải là một công việc đơn giản. Tuy nhiên, cũng có những cách giúp bạn xây dựng một website với ít sức lực nhất. Sau đây là một trong số những cách đó. 

1. Thiết kế thật đơn giản Cách dễ nhất để tiết kiệm sức lực của bạn là thiết kế website thật đơn giản. Tuy nhiên, thật kỳ lạ là nhiều nhà thiết kế lại lờ đi điều này. Bạn cần phải từ bỏ các đoạn Javascript chạy dọc chạy ngang quá nhiều, những ảnh Gif động và những trang được làm mờ... Nói tóm lại, đơn giản khiến cho cuộc sống dễ thở hơn.

 2. Hãy tự chuẩn bị một cách kỹ càng Nếu bạn sử dụng một ứng dụng soạn thảo trang Web WUSIWYG (What you see is what you get) như Macromedia hay GoLive, bạn hãy ra thời gian nhập các thông số cài đặt FTP và chuẩn bị một cách tốt nhất cho site của bạn (quá trình này được gọi là "định nghĩa site của bạn" (defining your site) trong Dreamweaver). Làm điều này sẽ giúp bạn tránh được nhiều rắc rối do những chương trình soạn thảo sẽ dễ dàng hơn trong việc theo dõi các file liên quan tới website của bạn. 

3. Tạo các ứng dụng chuyển động (flash) mà không sử dụng chương trình Flash Không có gì phải nghi ngờ rằng ứng dụng Flash rất là sinh động. Thiếu nó, một số nhà thiết kế website chuyên nghiệp không thể thực hiện được những trang Web mang lại hiệu quả như ý muốn. Tuy nhiên, nó khiến bạn phải tốn kém chi phí. Bạn cần biết là còn có những ứng dụng khác có thể tạo ra các hiệu ứng flash mà chi phí lại thấp ơn. Ví dụ Swish (http://www.swishzone.com) cho phép bạn tạo ra các hiệu ứng flash với các đoạn văn bản trong khi EffectMaker (http://www.effectmaker.com) cũng cho kết quả không kém. 
Đọc thêm »
More about