亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP pcntl_fork多進程下載圖片實例

2024-09-04 11:45:07
字體:
來源:轉載
供稿:網友

PHP pcntl_fork — 在當前進程當前位置產生分支,子進程,譯注:fork是創建了一個子進程,父進程和子進程 都從fork的位置開始向下繼續執行,不同的是父進程執行過程中,得到的fork返回值為子進程號,而子進程得到的是0.

注意:PHP有個pcntl_fork的函數可以實現多進程,但要加載pcntl拓展,而且只有在linux下才能編譯這個拓展.

1.首先在ubuntu下編譯pcntl.so,我的ubuntu下找不到pcntl的包,于是創建一個文件夾下載了整個PHP包,在里面找到了pcntl包運行如下命令,代碼如下:

  1. mkdir php 
  2. # cd php 
  3. # apt-get source php5 
  4. # cd php5-(WHATEVER_RELEASE)/ext/pcntl 
  5. # phpize 
  6. # ./configure (注一) 
  7. # make 
  8. # make install phpize 命令是用來準備 PHP 外掛模塊的編譯環境的 

成功的安裝將建立 extname.so 并放置于 PHP 的外掛模塊目錄中(預設存放于 /usr/lib/php/modules/ 內),需要調整 php.ini,加入 extension=extname.so 這一行之后才能使用此外掛模塊.

例:void pcntl_exec(string $path [,array $args [,array $envs ]])

pcntl_exec — 在當前進程空間執行指定程序,代碼如下:

  1. $cmds=array
  2.  
  3.         array('/home/jerry/projects/www/test2.php'), 
  4.  
  5.         array('/home/jerry/projects/www/test3.php'
  6.  
  7. ); 
  8.  
  9. foreach($cmds as $cmd){ 
  10.  
  11.         $pid=pcntl_fork(); 
  12.  
  13.         if($pid==-1){ 
  14.  
  15.         //進程創建失敗 
  16.  
  17.             echo '創建子進程失敗時返回-1'
  18.  
  19.             exit(-1); 
  20.  
  21.         } 
  22.  
  23.         else if($pid){ 
  24.  
  25.         //父進程會得到子進程號,所以這里是父進程執行的邏輯 
  26.             
  27.             pcntl_wait($status,WNOHANG); 
  28.  
  29.         } 
  30.  
  31.         else
  32.  
  33.         //子進程處理邏輯 
  34.  
  35.             sleep(5); 
  36.  
  37.             pcntl_exec('/usr/bin/php',$cmd); 
  38.  
  39.             exit(0); 
  40.  
  41.         } 
  42.  

例,實例多圖片同步下載,代碼如下:

  1. #!/usr/bin/php 
  2. <?php 
  3. // 需要抓取的網頁地址 
  4. $url = 'http://www.49028c.com'
  5. $content = file_get_contents($url); 
  6. preg_match_all('/<imgs+src="(.*?)"/'$content$matches,PREG_SET_ORDER); 
  7. echo "已發現".count($matches)."張圖片n"
  8.  
  9. list($sm$ss) = explode(" ", microtime()); 
  10. foreach ($matches as $k => $val
  11.  $pid[$k] = pcntl_fork(); 
  12.  if(!$pid[$k]) 
  13.  { 
  14.   download($url$val); 
  15.   // 子進程要exit否則會進行遞歸多進程,父進程不要exit否則終止多進程 
  16.   exit(0); 
  17.  } 
  18.  
  19.  if ($pid[$k]) 
  20.  { 
  21. //    pcntl_waitpid($pid[$k], $status, WUNTRACED); 
  22.  } 
  23.  
  24. echo "下載完成n"
  25.  
  26. list($em$es) = explode(" ", microtime()); 
  27.  
  28. echo "用時:",($es+$em) - ($ss + $sm),"n"
  29. /** 
  30.  * 抓取網頁圖片 
  31.  *  
  32.  */ 
  33. function download($url$val
  34.  $pic_url = $val[1]; 
  35.  if (strpos($val[1], '//') !== false) 
  36.  { 
  37.   ; 
  38.  } 
  39.  elseif (preg_match('@^(.*?)/@'$val[1], $inner_matches) == 0) 
  40.  { 
  41.   $pic_url = $url.$val[1]; 
  42.  } 
  43.  elseif (preg_match('@[:.]@'$inner_matches[1], $tmp_matches) == 0) 
  44.  { 
  45.   $pic_url = $url.$val[1]; 
  46.  } 
  47.  
  48.  $pic = file_get_contents($pic_url); 
  49.  
  50.  if ($pic === false) 
  51.  { 
  52.   return
  53.  } 
  54.  
  55.  preg_match('@/([^/]+)$@'$pic_url$tmp_matches); 
  56.  // 可使用assert處理異常 
  57.  $pic_file_name = $tmp_matches[1]; 
  58.  $f = fopen("tmp/".$pic_file_name"wb"); # 
  59.  fwrite($f$pic); 
  60.  fclose($f); 
  61.  
  62. /* End of file pcntl_fork.php */ 
  63. ?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品欧美亚洲777777| 久久在线免费视频| 91社区国产高清| 亚洲欧美成人精品| 国产日韩欧美日韩| 日韩黄色av网站| 欧美成人午夜视频| 欧美一级高清免费| 国内揄拍国内精品少妇国语| 日韩av免费在线| 欧美视频免费在线观看| 少妇精69xxtheporn| 日韩精品www| 国产精品免费一区二区三区都可以| 欧美日韩激情小视频| 国产成人综合精品| 日韩av免费一区| 精品欧美激情精品一区| 国产成人午夜视频网址| 成人免费直播live| 欧美在线www| 欧美激情中文字幕乱码免费| 国产成人精品视频在线| 久久久女女女女999久久| 国产做受69高潮| 亚洲精品成人久久电影| 日韩精品欧美激情| 欧美性高潮床叫视频| 欧美在线视频免费播放| 欧美国产日韩免费| 日韩欧美国产中文字幕| 日韩av男人的天堂| 伊人亚洲福利一区二区三区| 日韩av最新在线| 国产日本欧美一区| 日韩精品久久久久久福利| 国产日韩欧美中文在线播放| 欧美午夜激情视频| 日韩欧美亚洲一二三区| 国产精品久久久久久久9999| 日韩av综合网| 日韩女优在线播放| 激情成人在线视频| 欧美精品日韩三级| 国产精品美女久久久久av超清| 国产综合久久久久| 亚洲第一区在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 成人美女av在线直播| 中文字幕日韩欧美精品在线观看| 欧美精品www在线观看| 欧美国产日韩一区| 亚洲国产高清高潮精品美女| 国产在线98福利播放视频| 久久久久日韩精品久久久男男| 国产精品久久久久久久久久新婚| 久久九九精品99国产精品| 日韩av在线最新| 国产一区二区久久精品| 欧美一级在线播放| 欧美一区二区.| 国产精品一区二区av影院萌芽| 国产一区二区三区18| 亚洲乱亚洲乱妇无码| 亚洲性xxxx| 欧美日韩国产页| 精品少妇v888av| 欧美色视频日本版| 国产精品久久久久久久久粉嫩av| 亚洲视频视频在线| 亚洲美女性视频| 97高清免费视频| 日韩av影院在线观看| 日韩精品在线观看一区| 欧美激情视频免费观看| 国产精品久久久久久五月尺| 91免费视频网站| 亚洲成人精品av| 亚洲最大成人在线| 人人做人人澡人人爽欧美| 国产日韩在线亚洲字幕中文| 国产精品91久久久久久| 国产成人中文字幕| 97视频免费观看| 亚洲一区二区三| 亚洲女在线观看| 992tv成人免费视频| 日韩欧美在线第一页| 欧美视频在线观看免费网址| 国产97在线视频| 日韩精品在线看| 欧美另类暴力丝袜| 亚洲女人天堂成人av在线| 亚洲成**性毛茸茸| 精品福利樱桃av导航| 国产精品草莓在线免费观看| 精品视频在线播放色网色视频| 海角国产乱辈乱精品视频| 久久精品亚洲国产| 亚洲国产小视频在线观看| 亚洲性生活视频在线观看| 国产成人久久久精品一区| 欧美精品成人91久久久久久久| 欧美日韩国产精品一区| 国内精品免费午夜毛片| 国产小视频国产精品| 国产精品久久久久影院日本| 国产91对白在线播放| 国产精品91视频| 亚洲天堂av在线免费| 中文字幕亚洲一区二区三区五十路| 日本国产一区二区三区| 中文字幕精品久久| 91精品视频播放| 尤物九九久久国产精品的分类| 亚洲一区二区三区久久| 夜夜嗨av色综合久久久综合网| 性色av一区二区三区在线观看| 久久久精品亚洲| 久久久女女女女999久久| 中文字幕精品av| 亚洲欧美三级在线| 亚洲欧美一区二区激情| 1769国产精品| 69av成年福利视频| 高清欧美电影在线| 亚洲人成在线免费观看| 精品久久久久久国产91| 久久97久久97精品免视看| 欧美激情一区二区三区高清视频| 久久久久久久一区二区三区| 欧美另类极品videosbestfree| 亚洲国产私拍精品国模在线观看| 久久精品这里热有精品| 91精品国产网站| 国产91精品高潮白浆喷水| 国产精品视频导航| 亚洲精品福利在线| 日韩经典一区二区三区| 亚洲品质视频自拍网| 国产精品入口日韩视频大尺度| 成人国产亚洲精品a区天堂华泰| 亚洲成年人在线| 免费91麻豆精品国产自产在线观看| 亚洲欧美日韩久久久久久| 欧美在线一级va免费观看| 国产成人精品免高潮在线观看| 疯狂蹂躏欧美一区二区精品| 久久久999精品| 久久久久久久一区二区三区| 久久久久久久影院| 国产精品视频播放| 成人欧美一区二区三区在线湿哒哒| 久久99亚洲精品| 国产欧美一区二区三区四区| 日韩视频在线一区| 欧美激情综合色综合啪啪五月| 伊人久久精品视频| 国产一区二区三区在线观看网站| 亚洲欧美国产日韩中文字幕| 亚洲三级免费看| 日韩日本欧美亚洲| 欧美在线视频导航| 国产成人精品久久亚洲高清不卡|