php gettext·½Ê½ÊµÏÖUTF 8¹ú¼Ê»¯¶àÓïÑÔ(i18n)
½ü
À´Ëæ×Åi18n(¹ú¼Ê»¯)µÄÖð½¥±ê×¼»¯£¬ÎÒÒ²À´½²Ò»½²ÔÚPHPÖÐÈçºÎʵÏÖ¹ú¼Ê»¯Ö§³Ö¡£¸úÆäËû³ÌÐòÓïÑÔÒ»Ñù£¬ÔÚ PHP Ò²¿ÉÒÔÀûÓà gettext
Ì×¼þд×÷ i18n ³ÌÐò£¬ÊµÏÖ NLS(Native Language Support) ¹ú¼Ê»¯Ö§³Ö£¬¾ßÌåÇë²Î¿¼¹Ù·½Îĵµ(
http://www.gnu.org/software/gettext/manual/gettext.html
)
ÕâÀïÎÒÃÇÖ÷Òª½éÉÜwindowƽ̨ÏÂʹÓÃphpµÄÀ©Õ¹gettextʵÏÖ³ÌÐòµÄ¹ú¼Ê»¯¡£
gettext¼ò½é£º
GNU
gettextÊÇ·ÒëÏîÄ¿µÄÖØÒªÒ»²½£¬ËüÌṩÁËÒ»¸ö¹¤×÷¿ò¼Ü£¬ÓÉһЩ¼¯³ÉµÄ¹¤¾ßºÍÎĵµ×é³É£¬°ïÖú³ÌÐòÔ±¡¢·ÒëÈËÔ±ºÍ×îÖÕÓû§ÊµÏÖ³ÌÐòµÄ¹ú¼Ê»¯ºÍ±¾µØ»¯¡£ÓÃ
GettextµÄ·½Ê½ÊµÏÖ¶àÓïÑԵõ½Á˹㷺µÄÖ§³Ö£¬ÖøÃûµÄBLOG³ÌÐòwordpressµÄ¹ú¼Ê»¯¾ÍÊÇÓõÄGNU gettext¡£
´óÖÂÔÀí£º
GNU
gettextʹÓÃPO»òMOÎļþÀ´ÊµÏÖ¹ú¼Ê»¯ºÍ±¾µØ»¯¡£POµÄÒâ˼ÊÇPortable
Object£¬ÊÇÒ»ÖÖÎı¾½á¹¹£¬¿ÉÒÔ·½±ãµÄÓÉÈËÃÇÔĶÁºÍÐ޸ġ£MOÊÇMachine
ObjectµÄ¼òд£¬MOÎļþÊÇPOÎļþµÄ¶þ½øÖÆÐÎ̬¡£Ò»°ãÀ´Ëµ£¬Ò»¸öPO»òMOÎļþ¶ÔÓ¦ÓÚÒ»ÖÖÓïÑÔ£¬Èç¹ûÒ»¸ö³ÌÐòÒªÖ§³Ö¶àÖÖÓïÑÔ£¬Ã¿Ò»ÖÖÓïÑÔ¶¼ÐèÒª×Ô¼º
µÄPO»òMOÎļþ¡£
¿ªÊ¼Ó¦Óãº
²½ÖèÒ»£º´î½¨»·¾³(·þÎñÆ÷ÒѾÍê³É£¬»·¾³ÒѾ´î½¨ºÃÁË)
1¡£Ê×ÏȲ鿴ÄãµÄphpÀ©Õ¹Ä¿Â¼ÏÂÊÇ·ñÓÐphp_gettext.dllÕâ¸öÎļþ£¬Èç¹ûûÓУ¬Õâ¾ÍÐèÒªÄãÏÂÔØÒ»¸ö»òÊÇ´ÓÆäËûµØ·½¿½±´Ò»¸ö£¬È»ºó·Åµ½phpÀ©Õ¹Ä¿Â¼¡£
2¡£´ò¿ªphp.ini£¬²éÕÒ”;extension=php_gettext.dll“ £¬È»ºóÈ¥³ý×¢ÊÍ£¬ÖØÆôapache¡£
ÈôÒ»ÇÐ˳Àû£¬¾Í¿ÉÒÔÔÚ phpinfo() Öп´µ½ gettext ×ÖÑù£¬ÖÁ´Ë·þÎñÆ÷»·¾³ÅäÖÃÍê±Ï¡£
²½Öè¶þ£º¼ÙÈçÎÒÃÇÒª·Òëtest.phpÒ³ÃæÀïµÄhello word!Õâ¾ä»°¡£
±à¼test.php£¬½«Òª·Òë µÄÎÄ×ÖÓÃgettextº¯Êý°üº¬£¬±íʾÕâЩ±»°üº¬µÄÎÄ×ÖÊÇÐèÒªÓÃÀ´·ÒëµÄ¡£
view plain
copy to clipboard
print
?
<?
include_once
(
'inc/setLan.php'
);
$domain
=
'test'
;
bindtextdomain
(
$domain
,
"locale/"
);
//ÉèÖÃij¸öÓòµÄmoÎļþ·¾¶
bind_textdomain_codeset($domain
,
'UTF-8'
);
//ÉèÖÃmoÎļþµÄ±àÂëΪUTF-8
textdomain($domain
);
//ÉèÖÃgettext()º¯Êý´ÓÄĸöÓòÈ¥ÕÒmoÎļþ
?>
<html>
<head>
<meta http-equiv="Content-Type"
&
Ïà¹ØÎĵµ£º
Output Control º¯Êý¿ÉÒÔÈÃÄã×ÔÓÉ¿ØÖƽű¾ÖÐÊý¾ÝµÄÊä³ö¡£Ëü·Ç³£µØÓÐÓã¬ÌرðÊǶÔÓÚ£ºµ±ÄãÏëÔÚÊý¾ÝÒѾÊä³öºó£¬ÔÙÊä³öÎļþÍ·µÄÇé¿ö¡£Êä³ö¿ØÖƺ¯Êý²»¶ÔʹÓà header() »ò setcookie(), ·¢Ë͵ÄÎļþÍ·ÐÅÏ¢²úÉúÓ°Ïì,Ö»¶ÔÄÇЩÀàËÆÓÚ echo() ºÍ PHP ´úÂëµÄÊý¾Ý¿éÓÐ×÷Óá£
ÎÒÃÇÏȾÙÒ»¸ö¼òµ¥µÄÀý×Ó£¬Èôó¼Ò¶ÔOutput ControlÓÐÒ»¸ö´ ......
PHP ÖÐÓÉÓÚÊý×éºÍ×Ö·û´®ÕâÁ½ÖÖ±äÁ¿ÀàÐÍÊÇÈç´Ë³£Óã¬ÒÔÖÁÓÚ PHP ¾ßÓÐÁ½¸öº¯Êý£¬¿ÉÒÔÔÚ×Ö·û´®ºÍÊý×éÖ®¼ä»¥Ïà½øÐÐת»»¡£
¡¡¡¡$array=explode(separator,$string);
¡¡¡¡$string=implode(glue,$array);
¡¡¡¡Ê¹ÓúÍÀí½âÕâÁ½¸öº¯ÊýµÄ¹Ø¼üÖ®´¦ÊÇ·Ö¸ô·û£¨separator£©ºÍ½ººÏ·û£¨glue£©¹ØÏµ¡£µ±°ÑÒ»¸öÊý×éת»»³ÉÒ»¸ö×Ö·û´®Ê±£¬½«»áÉ ......
ÏÂÃæÊÇһЩ·Ç³£ÓÐÓõÄPHPÀà¿â£¬ÏàÐÅÒ»¶¨¿ÉÒÔΪÄãµÄWEB¿ª·¢Ìṩ¸üºÃºÍ¸üΪ¿ìËٵķ½·¨¡£
ͼ±í¿â
ÏÂÃæµÄÀà¿â¿ÉÒÔÈÃÄãºÜ¼òµÄ´´½¨¸´ÔÓµÄͼ±íºÍͼƬ¡£µ±È»£¬ËüÃÇÐèÒªGD¿âµÄÖ§³Ö¡£
pChart - Ò»¸ö¿ÉÒÔ´´½¨Í³¼ÆÍ¼µÄ¿â¡£
Libchart - ÕâÒ²ÊÇÒ»¸ö¼òµ¥µÄͳ¼ÆÍ¼¿â¡£
JpGraph - Ò»¸öÃæÏò¶ÔÏóµÄͼƬ´´½¨Àà¡£
Open Flash Chart - ÕâÊ ......
<!-- xml¸ñʽ
<foo xmlns="test">
<bar attr='a'></bar>
<bar attr='b'></bar>
<bar attr='c'></bar>
</foo>
-->
<?php
$dom = new DOMDocument();
if (!$dom->load('attr.xml'))
{
echo "load books.xml failed!<br>";
re ......
PHPÓëJS---È¡ÕûÊý·½·¨int,celi,floor,round
1.¶ªÆúСÊý²¿·Ö,±£ÁôÕûÊý²¿·Ö
php: intval(7/2)
js:parseInt(7/2)
2.ÏòÉÏÈ¡Õû,ÓÐСÊý¾ÍÕûÊý²¿·Ö¼Ó1
php: ceil(7/2)
js: Math.ceil(7/2)
3,ËÄÉáÎåÈë.
php: round(7/2)
js: Math.round(7/2)
4,ÏòÏÂÈ¡Õû
php: floor(7/2)
js: Math.floor(7/2)
ÒÔÉÏת×Ô:http://hi.baidu ......