PHPÌ×½Ó×Ö±à³Ì
Ì×½Ó×Ö±à³Ì£¬Ò»°ãʹÓÃc»òc++¡£ÌرðµÄÔÚwebÓ¦ÓóÌÐò¿ª·¢ÖУ¬³£ÓÃperlʵÏÖÌ×½Ó×Ö¡£³ý´ËÒÔÍ⣬ÓÃphp½øÐÐÌ×½Ó×Ö±à³ÌÒ²ÊÇÒ»¸öÑ¡Ôñ¡£Php¿ÉÒÔʤÈÎÂ𣿵±È»¿ÉÒÔ¡£PhpÊÇһßßÖÊÁ¿µÄwebÓ¦ÓóÌÐò¿ª·¢ÓïÑÔ£¬ËûµÄÐí¶àÌØÐÔ¿ÉÒÔ´¦ÀíÖÚ¶àµÄÈÎÎñ£¬ÍøÂç±à³ÌÒ²²»ÀýÍâ¡£
1. Àí½âÌ×½Ó×Ö
Mail¡¢ftp¡¢telnet¡¢nameºÍfingerÕâЩ·þÎñ¶¼ÊÇÔÚÒ»¸öרÓõĹ«¿ªµÄ¶Ë¿ÚÉÏÌṩµÄ,ͨ¹ýÁ¬½Óµ½ÕâЩ¶Ë¿Ú,¿Í»§³ÌÐò¾ÍÄܹ»·ÃÎÊÕâЩ·þ
Îñ¡£ÕâÓëÏÖʵÉú»îÊÇÏàËƵė—µ±ÐèÒª¸ÉÏ´Ò·þµÄʱºò,ÕÒ¸ÉÏ´µê;µ±ÐèҪȡǮµÄʱºò,È¥ÒøÐÐ,µÈµÈ¡£³ýÁËרÓÃÓÚÌض¨·þÎñÆ÷µÄ¶Ë¿ÚÍâ,¼ÆËã»ú»¹ÓÐÆäËüµÄ¶Ë¿ÚÈÃ
³ÌÐòÔ±´´½¨ËûÃÇ×Ô¼ºµÄ·þÎñÆ÷¡£
¶Ë¿ÚÒ»°ãÊDZàºÅµÄ,ͨ¹ýÖ¸¶¨·þÎñÆ÷µÄ¶Ë¿ÚºÅ,¿Í»§³ÌÐò¿ÉÒÔÁ¬½Óµ½¸Ã¶Ë¿ÚÉÏ¡£Ã¿ÖÖ·þÎñÆ÷»ò¶Ë¿ÚÒªÓÐÌض¨µÄÐÒé,ΪÁËÈÿͻ§µÄÇëÇóÄܹ»±»Àí½âºÍÏìÓ¦,¿Í»§±ØÐëÒÔÕâÖÖ·þÎñÆ÷ÌØÓеķ½Ê½Ðγɿͻ§ÇëÇó¡£
SocketÊÇÍøÂçÉÏÔËÐеÄÁ½¸ö³ÌÐò¼äË«ÏòͨÐÅÁ¬½ÓµÄÒ»¶Ë¡£SocketÕâ¸ö´ÊµÄÒ»°ãÒâÒåÊÇ×ÔÈ»µÄ»òÈ˹¤µÄ²å¿Ú,Èç¼ÒÓõçÆ÷µÄµçÔ´²å¿ÚµÈ¡£
¿Í»§³ÌÐò¿ÉÒÔÏòSocketдÇëÇó,·þÎñÆ÷½«´¦Àí´ËÇëÇó,È»ºóͨ¹ýSocket°Ñ½á¹û·µ»Ø¸ø¿Í»§¡£
SocketÊÇÒ»ÖֵײãÁ¬½Ó¡£¿Í»§»úºÍ·þÎñÆ÷ͨ¹ýдÈëµ½SocketµÄ×Ö½ÚÁ÷½øÐÐͨÐÅ¡£ËüÃDZØÐëÓй²Í¬µÄÐÒé,Ò²¾ÍÊÇ˵,ͨ¹ýSocketÏ໥´«ËÍÐÅϢʱËùÓõÄÓïÑÔ±ØÐëÊÇж¨ºÃµÄ¡£
2. Socket½¨Á¢Á¬½ÓµÄ¹ý³Ì
½¨Á¢¹ý³ÌÈçÏÂ:(connection-oriented)
server ·½¹ý³Ì client ·½¹ý³Ì
socket() socket()
| |
bind() bind()
| |
listen() |
| |
accept()<------------------connect()
| |
recv()/send() <----------> send()/recv()
3. Php »ù±¾Ì×½Ó×Öµ÷Óãº
3.1. »ù±¾Ì×½Ó×Öµ÷ÓÃ
´´½¨Ì×½Ó×Ö--socket();
°ó¶¨±¾»ú¶Ë¿Ú--bind();
½¨Á¢Á¬½Ó--connect(),accept();
ÕìÌý¶Ë¿Ú--listen();
Êý¾Ý´«Êä--send(),recv();
ÊäÈë/Êä³ö¶à·¸´ÓÃ--select();
¹Ø±ÕÌ×½Ó×Ö--closesocket()
3.2. phpÌṩµÄÌ×½Ó×Öµ÷Óãº
½ÓÊÜÁ¬½Ó-—accept connect()
°ó¶¨¶Ë¿Ú—bind ()
¹Ø±ÕÌ×½Ó×Ö—close()
³õʼ»¯Á¬½Ó—connect()
ÕìÌý¶Ë¿Ú—listen()
¶ÁÈ¡Ì×½Ó×Ö—read()
´´½¨Ì×½Ó×Ö—socket()
дÌ×½Ó×Ö—write()
4. »ù±¾Ó¦ÓÃ
4.1. Ò»¸ö¼òµ¥µÄTCP·þÎñÆ÷
1 #!/usr/local/bin/php -q
2
3 <?php
4 /*
5 * We don't want any time-limit for how the long can hang
6 * around, waiting for connect
Ïà¹ØÎĵµ£º
ÔÎÄÁ´½Ó£ºhttp://www.phpdo.net/index.php/2010/02/03/1-10/
ÓëÆäËû±à³ÌÓïÑÔ²»Í¬µÄÊÇ£ºPHPµÄÊý¾ÝÀàÐͲ»ÊÇÓɳÌÐòÔ±ÔÚ¶¨Òå±äÁ¿µÄʱºò¾ö¶¨µÄ£¬¶øÊÇÓÉPHPÔÚ³ÌÐòÔËÐйý³ÌÖж¨Òå¡£
PHP¹²Ö§³Ö8ÖÖÊý¾ÝÀàÐÍ£ºÕûÐÍ£¨integer£©¡¢¸¡µãÐÍ£¨float£©¡¢×Ö·û´®ÐÍ£¨string£©ºÍ²¼¶ûÐÍ£¨Boolean£©ËÄÖÖ±êÁ¿ÀàÐÍ£¬Êý×飨array£©ºÍ¶ÔÏó£¨object£ ......
SimpleTestÊÇÒ»¸öʹÓÃÊ®·Ö¼òµ¥µÄµ¥Ôª²âÊÔ¹¤¾ß¡£
Ò»ÏÂÄÚÈÝÊÇÎÒ×Ô¼ºÉè¼ÆµÄÀûÓÃSimpleTest¶ÔÒ»¸öÏîÄ¿½øÐе¥Ôª²âÊԵĴúÂë
Ò»¡¢Îļþ½á¹¹
Ò»¸öÏîÄ¿Óжà¸öÎļþ¼Ð£¬Îļþ¼ÐÖл¹°üº¬Îļþ¼Ð¡£ÎÒÃÇÒª½øÐвâÊԵĴúÂë¼´°üº¬ÔÚÕâЩÎļ ......
<?php
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="GBK" ?>';
echo '<users>';
echo '<user>';
echo '<name>'; echo 'СС²ËÄñ';
echo '</name>';
echo '<age>';
echo '24';
  ......
CakePHPÊÇÒ»¸ö·Ç³£Ñ¸ËÙPHP¿ò¼Ü£¬ÓÐЧËõ¶Ì¿ª·¢ÖÜÆÚ£¬Äܹ»Áé»îµÄ¼Ü¹¹£¬¿ª·¢£¬Î¬»¤ºÍ²¿ÊðµÄÓ¦ÓóÌÐò¡£Ëü²ÉÓÃÏñMVCÓëORMÒ»ÑùµÄÉè¼Æģʽ£¬ÓÐÖúÓÚ½µµÍ¿ª·¢·ÑÓ㬲»ÐèÒª¿ª·¢ÈËÔ±±àдÁËÌ«¶à´úÂë¡£CakePHPÓµÓкܶà´ó¿Í»§£¬±ÈÈ磺MozillaµÄAddons£¬ÃÀ¹úÂéÊ¡Àí¹¤Ñ§ÔºµÄScratch£¬Ò®Â³´óѧµÄÿÈÕÐÂÎÅ¡£
ÍƼöÖ¸Êý£º6ÐǼ¶
ѧϰ³É±¾£ºÒ» ......
<?php
//µ÷ÊÔÊä³öÐÅÏ¢
$pageCount=15;
for($i=1;$i<=$pageCount;$i++){
dump(GetPageRange($i,$pageCount),$i);
}
//$currentPage µ±Ç°Ò³Âë
//$pageCount ×ÜÒ³Êý
//$leftSize ×ó²àÒ³Â뷶Χ
//$rightSize ÓÒ²àÒ³Â뷶Χ
//·µ»ØÒ³ÂëÇø¼äÊý×é
function GetPageRange($currentPage,$pageCount,$leftSize=3, ......