Hỏi về PHP

Mai Thanh Hà đã viết:
cái bảng chữ cái tiếng Anh nó không có chữ Đ, trong tiếng Việt nó đẻ thêm chữ này, thì order của nó nằm ở cuối là đúng rồi. Nếu muốn nó hiện đúng chỗ thì làm một array[a, â, ă, b, c, d, đ ....] build lại thứ tự :D
Hờ, nếu bắt buộc phải làm thế thì em đành làm thôi, nhưng em nghĩ là không cần phải làm thế mà có cách nào đó hay hơn, vì rõ ràng là các diễn đàn đâu phải do người Việt làm, mà khi vào memberlist thì nó vẫn sắp xếp đúng :-/ :-?
 
Khè, dùng Multibyte String extensions. Đơn giản. Còn các diễn đàn nó đều có unicode variants của function cả đấy.
 
Ở PHP có cái gì tương đương escape() của JS không ? pg_escape_string ? dbx_escape_string ?
 
Hic hic!! nếu giờ đã ở dạng "YYYY-mm-dd" rồi thì chuyển cái biến đó ra thành "dd-mm-YYYY" thế nào hả Hiếu ?? :(
 
Cách đơn giản nhất là explode string đó ra. Được 1 array có 3 phần, lật ngược array đó lại là được.
 
À, hờ hờ, tức là lại cho nó thành 1 array và tách theo dấu gạch ngang á ?
 
Chỉnh sửa lần cuối:
OK cảm ơn em, anh lại cứ tưởng người ta làm gì phức tạp hơn để làm trò ấy :D
 
Làm cái rì cũng chọn cách đơn giản nhất mà làm. Chứ lại còn cố loằng ngoằng tự làm khó mình làm rì??
 
Ừm ừm, anh hỏi cái, nguyên tắc làm bbCode và smilies là gì ?? :-/
 
Parse info user gửi. Thay tất cả các đoạn nhận biết được = thẻ img.
 
Ừ, nhưng làm sao nhận ra được những strings cần biến thành img ? em nói rõ hơn về việc phát hiện ra strings của emoticons giúp anh nhé, còn sau đấy replace nó thành image thì chắc là không khó khăn gì.
 
Download http://hieu.acunett.com/downloads/oguest-2.2-2.tar.gz. Xem file gbmsg.php, trong đó có rất nhiều doạn dùng để replace AGCode (bbCode), emoticons, words filter. Cái nì viết từ năm lớp 9, suốt từ đó đến giờ file đó chưa thay đổi rì nên có nhiều phần khá ngây ngô, nhất là cái đoạn comment = tiếng Anh.

Ví dụ 1 đoạn để thêm emoticons:
PHP:
$handle = opendir("emoticons");
			
			while (FALSE !== ($file = readdir($handle)))	/* Fetch all of the filenames contain in this directory */
			{
				if (($file != '.') && ($file != '..'))	/* Don't fetch '.' & '..' as they are directories not files */
				{
					$emotname = substr($file,0,-4);	/* Get files' name without extensions */
					$msg = str_replace(":".$emotname.":","<img src=\"emoticons/$file\">\n",$msg);	/* Prepare HTML Code to display emoticons */
				}
			}
Còn đoạn nì là word filter:
PHP:
/* Fetch the list of words that need to be filtered */
			$result = mysql_query("SELECT filterwords FROM og_admin");
			$rows = mysql_fetch_row($result);
			$fwords = explode("\n",$rows[0]);
			
			/* This code segment will determine words that need to be filtered then
			   replace it with "***" except if the word need to be filtered is in
			   an image tag so that the image included will be displayed correctly */
			$fstr = explode("<",$msg);	
			for ($i=0;$i<count($fstr);$i++)
			{
				if (substr($fstr[$i],0,3) == 'img')
				{
					$pos = strpos($fstr[$i],">");
					if ($pos !== FALSE)
					{
						$text = stristr($fstr[$i],">");
						for ($h=0;$h<count($fwords);$h++)
						{
							$text = str_replace(trim($fwords[$h]),"***",$text);
						}
						$fstr[$i] = substr($fstr[$i],0,$pos);
						$fstr[$i] .= $text;
					}
				}
				else
				{
					for ($h=0;$h<count($fwords);$h++)
					{
						$fstr[$i] = str_replace(trim($fwords[$h]),"***",$fstr[$i]);
					}
				}
			}
			$msg = implode("<",$fstr);
 
explode(), trim() là function gì ?
substr() = substring() (của JS) và strpos() = indexOf() (của JS) à em ?
 
explode(), trim() là function gì ?
explode để tách 1 string thành 1 array ngăn cách bởi 1 ký tự tùy chọn. trim để bỏ khoảng trắng ở đầu và cuối string làm đối số.
substr() = substring() (của JS) và strpos() = indexOf() (của JS) à em ?
substr = substr của JS (substr của JS != substring).
 
Thanks em ;) Em viết tác dụng của substr() bên topic hỏi về JS được không ?
 
Khè, viết đây cũng được chứ seo. substr(3,6) - lấy 6 ký tự bắt đầu từ ký tự với index 3. substring(3,6) là lấy string bắt đầu từ index 3 đến index 6.
 
À ừ nhỉ, anh có đọc được cái này ở đâu rồi ý, thế mà quên mất ;) Cảm ơn em!! >:-D<
 
Hôm nay có hỏi em về cái vụ liệt kê thành viên online trên web, anh hỏi thêm cái!
Không rõ forum nó làm thế nào, anh chỉ có ý tưởng thế này, chẳng biết có phải giống người ta hay làm không:
Ở trong db, mình lưu ngày+giờ của hoạt động cuối cùng của thành viên, tức là đặt luôn code ở đầu trang, mỗi khi thành viên chuyển trang 1 cái là update cái thông tin ấy vào db; sau đó nếu sau 1 thời gian nhất định (15 phút đi) mà không có thêm hoạt động nào của thành viên thì web không hiển thị tên thành viên nữa ?

Có phải thế không nhờ ?
Cái chính là mỗi lần cái header được load lại là lại 1 lần db được cập nhật, như thế có tác hại gì không ?

Bình thường người ta làm thế nào ?
 
Back
Bên trên