GyPSiiÀûÓÃXML-RPC£¬PHPÀïXML-RPCµÄÏà¹ØÓ¦ÓÃʾÀýºÜ¶à£¬²é²éÊֲᡢGOOGLEһϾͿÉÒÔÕÒµ½ºÜ¶à¡£GyPSii APIÀïÌṩÁËÒ»¸ö²Ù×÷ÀàÓÃÀ´ÇëÇó·þÎñ£¬²¢ÌṩÁËÒ»¸öÇëÇóº¯Êý£¬Ö»Òª½«´Ëº¯Êý·Å½ø²Ù×÷ÀàÀ¾Í¿ÉÒÔ·½±ãµÄʹÓÃÁË£¬º¯ÊýÈçÏ£º
function GyPSiiXMLRPC( $uri, $host, $pid, $body="" ) {
$this->addHeader( 'Content-Type', "application/x-gypsii-xmlrpc" );
$this->addHeader( "X-GyPSii-Authorization", "GSAPI signer=\"$pid\",signature=\"$sig\",token=\"$tok\"" );
$http->addHeader("Host","$host");
$this->requestBody = $body;
if( $this->sendCommand( "POST $uri HTTP/$this->protocolVersion" ) )
$this->processReply();
$this->removeHeader('Content-Type');
$this->removeHeader('Content-Length');
$this->removeHeader('X-GyPSii-Authorization');
$this->requestBody = "";
return $this->reply;
}
²Ù×÷ÀàÏÂÔصØÖ·£ºhttp://lwest.free.fr/doc/php/lib /index.php3?page=net_http_client&lang=en ......
ÎÒд¹ýµÄ½Ì³Ì²»¶à£¬¶øÇҴ󲿷ֶ¼ÊÇÀ´Ô´ÓÚ±ðÈ˵Ľ̳̣¬²»¹ý£¬ÕâÀïËù½éÉܵģ¬¶¼ÊÇÈÚÈëÎÒËù×ܽáµÄ¾Ñ飮££ÒýÑÔ
¡¡¡¡
¡¡¡¡PHPµÄÖ´ÐÐЧÂÊÊÇÓÐÄ¿¹²¶ÃµÄ£¬ÕâÒ²ÊÇÎÒϲ»¶ËüµÄÔÒòÖ®Ò»£¬ºÍËü³ÆΪ¾øÃî´îµµµÄMysqlÒÔ¼°ApacheÏëÈںϣ¬²»Äܲ»¾ªÌ¾ÆäЧÂÊÁË¡£PHP¸üÐÂÒ²ºÜ¿ì£¬ÕâÀïÁоÙÁËÄ¿Ç°×îа汾PHP4.3.2RC4£¨¼¸ºõûÓÐBUGÁË£¬¹À¼ÆдÍêÕâƪ²»¾ÃºóÕýʽ°æ¾Í³öÁË£©£¬ºÍ×îа汾µÄMysql4.0.13µÄ°²×°¹ý³Ì¡£
¡¡¡¡
¡¡¡¡PHPµÄ°²×°Îļþ¿ÉÒÔÖ±½Óµ½ http://www.php.net/ ÏÂÔØ£¬»ñµÃfor win32µÄ.zip°ü£¨5.8M£©
¡¡¡¡MysqlµÄ°²×°Îļþ¿ÉÒÔÖ±½Óµ½ http://www.mysql.com ÏÂÔØ£¬»ñµÃfor win32µÄ.zip°ü
¡¡¡¡ÁíÍâÈç¹ûÏëÌåÑéApacheºÍPHPµÄÅäºÏЧ¹û¶øÒª·ÅÆúIISµÄ»°£¬Çëµ½ http://www.apache.org ÏÂÔØ×îеÄfor win31µÄ.MSI°²×°°ü£¬Ä¿Ç°×îа汾ÊÇ2.0.45¡£
¡¡¡¡ÁíÍ⣬¿ÉÒÔÏÂÔØZend OptimizerÀ´¶ÔPHP½øÐмÓËÙ¡£¾ßÌå¿ÉÒÔ·ÃÎÊ http://www.zend.com
¡¡¡¡
¡¡¡¡<1>°²×°ÅäÖÃPHP
¡¡¡¡
¡¡¡¡1.½âѹËõPHPѹËõ°üµ½C:PHP£¨Õâ¸ö·¾¶¿ÉÒÔËæÒ⣬²»¹ýÒÔÏÂÒªÊÇÓõ½Õâ¸ö·¾¶£¬ÇëÏàÓ¦µÄÐ޸ģ©¡£
¡¡¡¡
¡¡¡¡2.¸´ÖÆC:PHPĿ¼ÏµÄphp4ts.dll¼°C:PHPdllsĿ¼ÏµÄËùÓÐÎļþµ½windowsµÄϵͳÎļþ¼ÐÀÎļþ¼ÐÊÓWindows°æ±¾µÄ ......
ÎÒд¹ýµÄ½Ì³Ì²»¶à£¬¶øÇҴ󲿷ֶ¼ÊÇÀ´Ô´ÓÚ±ðÈ˵Ľ̳̣¬²»¹ý£¬ÕâÀïËù½éÉܵģ¬¶¼ÊÇÈÚÈëÎÒËù×ܽáµÄ¾Ñ飮££ÒýÑÔ
¡¡¡¡
¡¡¡¡PHPµÄÖ´ÐÐЧÂÊÊÇÓÐÄ¿¹²¶ÃµÄ£¬ÕâÒ²ÊÇÎÒϲ»¶ËüµÄÔÒòÖ®Ò»£¬ºÍËü³ÆΪ¾øÃî´îµµµÄMysqlÒÔ¼°ApacheÏëÈںϣ¬²»Äܲ»¾ªÌ¾ÆäЧÂÊÁË¡£PHP¸üÐÂÒ²ºÜ¿ì£¬ÕâÀïÁоÙÁËÄ¿Ç°×îа汾PHP4.3.2RC4£¨¼¸ºõûÓÐBUGÁË£¬¹À¼ÆдÍêÕâƪ²»¾ÃºóÕýʽ°æ¾Í³öÁË£©£¬ºÍ×îа汾µÄMysql4.0.13µÄ°²×°¹ý³Ì¡£
¡¡¡¡
¡¡¡¡PHPµÄ°²×°Îļþ¿ÉÒÔÖ±½Óµ½ http://www.php.net/ ÏÂÔØ£¬»ñµÃfor win32µÄ.zip°ü£¨5.8M£©
¡¡¡¡MysqlµÄ°²×°Îļþ¿ÉÒÔÖ±½Óµ½ http://www.mysql.com ÏÂÔØ£¬»ñµÃfor win32µÄ.zip°ü
¡¡¡¡ÁíÍâÈç¹ûÏëÌåÑéApacheºÍPHPµÄÅäºÏЧ¹û¶øÒª·ÅÆúIISµÄ»°£¬Çëµ½ http://www.apache.org ÏÂÔØ×îеÄfor win31µÄ.MSI°²×°°ü£¬Ä¿Ç°×îа汾ÊÇ2.0.45¡£
¡¡¡¡ÁíÍ⣬¿ÉÒÔÏÂÔØZend OptimizerÀ´¶ÔPHP½øÐмÓËÙ¡£¾ßÌå¿ÉÒÔ·ÃÎÊ http://www.zend.com
¡¡¡¡
¡¡¡¡<1>°²×°ÅäÖÃPHP
¡¡¡¡
¡¡¡¡1.½âѹËõPHPѹËõ°üµ½C:PHP£¨Õâ¸ö·¾¶¿ÉÒÔËæÒ⣬²»¹ýÒÔÏÂÒªÊÇÓõ½Õâ¸ö·¾¶£¬ÇëÏàÓ¦µÄÐ޸ģ©¡£
¡¡¡¡
¡¡¡¡2.¸´ÖÆC:PHPĿ¼ÏµÄphp4ts.dll¼°C:PHPdllsĿ¼ÏµÄËùÓÐÎļþµ½windowsµÄϵͳÎļþ¼ÐÀÎļþ¼ÐÊÓWindows°æ±¾µÄ ......
PHPÔÚÔËÐеÄʱºò£¬Ö±½Ókillµô£¬ÓпÏÄÜÔì³ÉÊý¾ÝµÄ¶ªÊ§¡£ÐÒºÃphpÄ£¿é£¬ÓÐÕë¶ÔsignalµÄ´¦Àí¡£
´¦Àí·½Ê½£¬Ê×Ïȼì²éÓÐûÓа²×° PCNTL Ä£¿é
È»ºó¿ÉÒÔÔÚÒ»¸ö°üº¬ÎļþÖУ¬Ìí¼ÓÒÔÏ´úÂë
global $exitFlag;
$exitFlag = false;
// Ôö¼ÓlinuxÐźÅÁ¿´¦Àí
if (DIRECTORY_SEPARATOR != '\\') {
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGINT, "sig_handler");
}
// ÐźŴ¦Àíº¯Êý
function sig_handler($signo)
{
global $exitFlag;
echo "signal handler...\n";
switch ($signo) {
case SIGTERM :
case SIGHUP :
case SIGINT :
$exitFlag = true;
break ......
PHPÔÚÔËÐеÄʱºò£¬Ö±½Ókillµô£¬ÓпÏÄÜÔì³ÉÊý¾ÝµÄ¶ªÊ§¡£ÐÒºÃphpÄ£¿é£¬ÓÐÕë¶ÔsignalµÄ´¦Àí¡£
´¦Àí·½Ê½£¬Ê×Ïȼì²éÓÐûÓа²×° PCNTL Ä£¿é
È»ºó¿ÉÒÔÔÚÒ»¸ö°üº¬ÎļþÖУ¬Ìí¼ÓÒÔÏ´úÂë
global $exitFlag;
$exitFlag = false;
// Ôö¼ÓlinuxÐźÅÁ¿´¦Àí
if (DIRECTORY_SEPARATOR != '\\') {
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGINT, "sig_handler");
}
// ÐźŴ¦Àíº¯Êý
function sig_handler($signo)
{
global $exitFlag;
echo "signal handler...\n";
switch ($signo) {
case SIGTERM :
case SIGHUP :
case SIGINT :
$exitFlag = true;
break ......
PHP
ÊÇÎÒÓùýµÄÓïÑÔÖУ¬×îÁîÈËÄÕ»ðµÄµ«Í¬Ê±Ò²ÊÇ×îÓÐȤµÄÓïÑÔ¡£ÎÒÖ®ËùÒÔ˵“ÁîÈËÄÕ»ð”Ö÷ÒªÊÇÒòΪº¯ÊýÃüÃû¼«Æä²»Ò»Ö¡£¾¡¹ÜÎÒÿÌ춼ҪÓõ½ÕâЩº¯Êý£¬ÎÒ»¹ÊÇÒªÏë
һϓ¾¿¾¹ÊÇ str_pos »¹ÊÇ strpos£¿ÊÇ str_split »¹ÊÇ
strsplit£¿”¡£ÁíÒ»·½Ã棬ÓÐʱºò¿ÉÒÔÓÃÒ»Ðмòµ¥µÄ´úÂë¾ÍÄܽâ¾öÒ»¸öÄÑÌâ¡£
ÏÂÃæÊÇһЩºÜ¿áµÄÌØÐÔ£¬ºÜ¿ÉÄÜÄãҲûÓÐ×¢Òâµ½£º
ʹÓà ip2long
() ºÍ long2ip
() º¯ÊýÀ´°Ñ IP
µØַת»¯³ÉÕûÐÍ´æ´¢µ½Êý¾Ý¿âÀï¡£
ÕâÖÖ·½·¨°Ñ´æ´¢¿Õ¼ä½µµ½Á˽ӽüËÄ·ÖÖ®Ò»£¨char(15) µÄ 15 ¸ö×Ö½Ú¶ÔÕûÐ뵀 4
¸ö×Ö½Ú£©£¬¼ÆËãÒ»¸öÌض¨µÄµØÖ·ÊDz»ÊÇÔÚÒ»¸öÇø¶ÎÄÚÒ³¸ü¼òµ¥ÁË£¬¶øÇÒ¼Ó¿ìÁËËÑË÷ºÍÅÅÐòµÄËٶȣ¨ËäÈ»ÓÐʱ½ö½öÊÇ¿ìÁËÒ»µã£©¡£
ÔÚÑéÖ¤ email µØÖ·µÄʱºòʹÓà checkdnsrr
()
º¯ÊýÑéÖ¤ÓòÃûÊÇ·ñ´æÔÚ¡£
Õâ¸öÄÚÖú¯ÊýÄܹ»È·ÈÏÖ¸¶¨µÄÓòÃûÄܹ»½âÎö³É IP µØÖ·¡£¸Ãº¯ÊýµÄPHP ÎĵµµÄÓû§ÆÀÂÛ
²¿·ÖÓÐÒ»¸ö¼òµ¥µÄÓû§×Ô¶¨Ò庯Êý£¬Õâ¸öº¯
Êý»ùÓÚ checkdnsrr()£¬ÓÃÀ´ÑéÖ¤ email µØÖ·µÄºÏ·¨ÐÔ¡£¶ÔÓÚÄÇЩÈÏΪ×Ô¼ºµÄ email µØÖ·ÊÇ “joeuser@wwwphp.net
”
¶ø²»ÊÇ “joeuser@php.net
”
µÄ¼Ò»ïÃÇ£¬Õâ¸ö·½·¨¿ÉÒԺܷ½±ãµÄץסËûÃÇ¡£
Èç¹ûÄ ......
PHPÓïÑÔ±¾ÉíÊDz»Ö§³Ö¶àÏ̵߳Ä. ×ܽáÁËÒ»ÏÂÍøÉϹØÓÚPHPÄ£Äâ¶àÏ̵߳ķ½·¨, ×ܵÄÀ´Ëµ, ¶¼ÊÇÀûÓÃÁËPHPµÄºÃ»ï°éÃDZ¾ÉíËù¾ßÓеĶàÏß³ÌÄÜÁ¦.
PHPµÄºÃ»ï°éÖ¸µÄ¾ÍÊÇLINUXºÍAPACHEÀ², LAMPÂï.
ÁíÍâ, ¼ÈÈ»ÊÇÄ£ÄâµÄ, ¾Í²»ÊÇÕæÕýµÄ¶àÏß³Ì. ÆäʵֻÊǶà½ø³Ì. ½ø³ÌºÍÏß³ÌÊÇÁ½¸ö²»Í¬µÄ¸ÅÄî. ºÃÁË, ÒÔÏ·½·¨¶¼ÊÇ´ÓÍøÉÏÕÒÀ´µÄ.
1. ÀûÓÃLINUX²Ù×÷ϵͳ
<?php
for ($i=0;$i<10;$i++) {
echo $i;
sleep(5);
}
?>
ÉÏÃæ´æ³Étest.php, È»ºóдһ¶ÎSHELL´úÂë
#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10
do
php -q test.php &
done
2. ÀûÓÃfork×Ó½ø³Ì(ÆäʵͬÑùÊÇÀûÓÃLINUX²Ù×÷ϵͳ)
<?php
declare(ticks=1);
$bWaitFlag = FALSE; /// ÊÇ·ñµÈ´ý½ø³Ì½áÊø
$intNum = 10; /// ½ø³Ì×ÜÊý
$pids = array(); /// ½ø³ÌPIDÊý×é
echo ("Startn");
for($i = 0; $i < $intNum; $i++) {
$pids[$i] = pcntl_fork();/// ²úÉú×Ó½ø³Ì£¬¶øÇÒ´Óµ±Ç°ÐÐ֮ϿªÊÔÔËÐдúÂ룬¶øÇÒ²»¼Ì³Ð¸¸½ø³ÌµÄÊý¾ÝÐÅÏ¢
&nb ......
1. PHP¿ÉÔĶÁËæ»ú×Ö·û´®
´Ë´úÂë
½«´´½¨Ò»¸ö¿ÉÔĶÁµÄ×Ö·û´®£¬Ê¹Æä¸ü½Ó½ü´ÊµäÖеĵ¥
´Ê£¬ÊµÓÃÇÒ¾ßÓÐÃÜÂëÑéÖ¤¹¦ÄÜ¡£
/**************
[email=*@length]*@length[/email] - length of random string (must be a
multiple of 2)
**************/
function readable_random_string($length = 6){
$conso=array("b","c","d","f","g","h","j","k","l",
"m","n","p","r","s","t","v","w","x","y","z");
$vocal=array("a","e","i","o","u");
$password="";
srand ((double)microtime()*1000000);
$max = $length/2;
for($i=1; $i<=$max; $i++)
{
$password.=$conso[rand(0,19)];
$password.=$vocal[rand(0,4)];
}
&n ......