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
Ïà¹ØÎĵµ£º
SymfonyÊÇÒ»¸öÈ«¹¦ÄܵÄPHP¿ª·¢¿ò¼Ü£¬¿ª·¢ÓïÑÔΪPHP5.ËüÏò³ÌÐòÔ±ÌṩÁËÁ¼ºÃµÄ¼Ü¹¹£¬³£ÓõŦÄÜ×é¼þ¼°¹¤¾ß£¬¿ÉÓÃÓÚ¿ìËÙ´´½¨¸´ÔÓµÄWEB³ÌÐò¡£Ñ¡ÔñSymfony¿ÉÒÔÈÃÄã¸ü¿ìµØ·¢²¼ÄãµÄ²úÆ·£¬²¢ÇÒºÜÈÝÒ×ÔËÓªºÍÀ©Õ¹¡£SymfonyµÄÍŶӺÜÓоÑ飬²»Öظ´·¢Ã÷ÂÖ×Ó£ºËüʹÓÃÁ˺ܶàWEB¿ª·¢Öеē×î¼Ñʵ¼ù”²¢¼¯³ÉÁËһЩÓÅÐãµÄµÚÈý·½Àà¿ ......
Óà PHP ¿ØÖÆä¯ÀÀÆ÷»º´æÊǷdz£ÈÝÒ׵ģ¬ÊÖ²áÉÏÒ²Ïà¹ØµÄ˵Ã÷£¬ÓÉÓںܶà³õѧÕßûÓаÑÊֲῴÍ꣬ËùÒÔ»¹ÊÇ»áÓÐºÜ¶à¹ØÓÚÕâ¸öÎÊÌâµÄÒÉÎÊ£¬¹ÊÔÚ´ËרÃÅ·¢Ò»ÆªÎÄÕ£¬Í¬Ê±¶ÔÏà¹ØµÄÓï·¨×öÁËÏêϸµÄ˵Ã÷£¬·½±ãÐÂÊÖ²éÔÄ¡£
¡¡¡¡Òª½â¾öÕâÒ»ÎÊÌ⣬¿ÉÒÔͨ¹ý PHP ÖÐµÄ header() º¯Êý£¬·¢ËÍÌØ¶¨µÄ»º´æ¿ØÖÆÔʼ HTTP ±êÍ·£¬¾ßÌå´úÂëÈçÏ£º
Exampl ......
Beginning Php And Mysql³ÌÐòÉè¼Æ
Beginning PHP and MySQL from Novice to Professional 3rd Edition
Head First PHP MySQL
The Essential Guide to DreamweaverCS3 with CSS Ajax and PHP
phpÊÖ²á
......
.Ò»¡¢×÷Óãº
PHPÖ»ÊÇÒÔHTTPÐÒ齫HTMLÎĵµµÄ±êÍ·Ë͵½ä¯ÀÀÆ÷£¬¸æËßä¯ÀÀÆ÷¾ßÌåÔõô´¦ÀíÕâ¸öÒ³Ãæ£¬ÖÁÓÚ´«Ë͵ÄÄÚÈÝÔòÐèÒªÊìϤһÏÂHTTPÐÒéÁË£¬ÓëPHPÎÞ¹ØÁË£¬¿É²ÎÕÕhttp://www.w3.org/Protocols/rfc2616/rfc2616¡£
......
<?php
//µ÷ÊÔÊä³öÐÅÏ¢
$pageCount=15;
for($i=1;$i<=$pageCount;$i++){
dump(GetPageRange($i,$pageCount),$i);
}
//$currentPage µ±Ç°Ò³Âë
//$pageCount ×ÜÒ³Êý
//$leftSize ×ó²àÒ³Â뷶Χ
//$rightSize ÓÒ²àÒ³Â뷶Χ
//·µ»ØÒ³ÂëÇø¼äÊý×é
function GetPageRange($currentPage,$pageCount,$leftSize=3, ......