Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 10th, 2012  |  syntax: PHP  |  size: 5.57 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2.  
  3.  
  4. set_time_limit(200000);
  5. ignore_user_abort(1);
  6.  
  7. /* config */
  8. define('STRINGS_COUNT', 30);
  9. define('QUERY_URL', 'http://site.com/test.php?id1=%file1%&id2=%file2%');
  10. define('QUERY_TIMEOUT', 5);
  11. /* end.config */
  12.  
  13.  
  14.  
  15.  
  16. #ini_set('display_errors', 1);
  17.  
  18.  
  19. while(true){ /* general loop */
  20.  
  21.  
  22.     if(file_exists(dirname(__FILE__).'/stop.txt')){
  23.         die('Stopped by stop.txt');
  24.     }
  25.  
  26.        
  27.    
  28.     $file1 = @file(dirname(__FILE__).'/file1.txt');
  29.     $file2 = fopen(dirname(__FILE__).'/file2.txt', "r");
  30.     $file2tmp = fopen(dirname(__FILE__).'/tmp.txt', "w");
  31.    
  32.    
  33.  
  34.     $file1Strings = array();
  35.     $file2Strings = array();
  36.    
  37.    
  38.    
  39.    
  40.         /* strings select */    
  41.    
  42.     for($i=0; $i<STRINGS_COUNT; $i++){
  43.        
  44.         $file1string = array_shift($file1);
  45.         $file2string = trim(fgets($file2, 2048));
  46.        
  47.         if(!empty($file1) && !feof($file2)){
  48.            
  49.             if(!empty($file1string) && !empty($file1string)){
  50.                 $file1Strings[$i] = trim($file1string);
  51.                 $file2Strings[$i] = $file2string;
  52.             }
  53.            
  54.         }else{
  55.             break;
  56.         }
  57.     }
  58.    
  59.     if(empty($file1Strings) || empty($file2Strings)){
  60.         @unlink(dirname(__FILE__).'/tmp.txt');
  61.         die('No strings for work');
  62.     }
  63.    
  64.         /* end.strings select */
  65.        
  66.    
  67.        
  68.    
  69.         /* rewtire file1 */
  70.        
  71.     for($i2=0; $i2<STRINGS_COUNT; $i2++){
  72.         array_push($file1, $file1Strings[$i2]."\n");
  73.     }
  74.     @file_put_contents(dirname(__FILE__).'/file1.txt', implode($file1));
  75.    
  76.         /* end.rewtire file1 */
  77.    
  78.    
  79.    
  80.    
  81.         /* rewtire file2 */
  82.        
  83.     while(!feof($file2)) {
  84.         fwrite($file2tmp, fgets($file2, 2048));
  85.     }
  86.     @rename(dirname(__FILE__).'/tmp.txt', dirname(__FILE__).'/file2.txt');
  87.    
  88.         /* end.rewtire file2 */
  89.        
  90.        
  91.        
  92.        
  93.         /* fhandlers close */
  94.        
  95.     fclose($file2);
  96.     fclose($file2tmp);
  97.    
  98.         /* end.fhandlers close */
  99.    
  100.    
  101.    
  102.    
  103.        
  104.     $rtasks = array();
  105.     $wtasks = array();
  106.        
  107.     $host = parse_url(QUERY_URL, PHP_URL_HOST);
  108.    
  109.     if($host){
  110.        
  111.        
  112.        
  113.        
  114.         /* cockets create */
  115.    
  116.         for($i3=0; $i3<STRINGS_COUNT; $i3++){
  117.        
  118.             if(!empty($file1Strings[$i3]) && !empty($file2Strings[$i3])){
  119.                
  120.                 $url = str_replace('%file1%', urlencode($file1Strings[$i3]), QUERY_URL);
  121.                 $url = str_replace('%file2%', urlencode($file2Strings[$i3]), $url);
  122.                
  123.                 $sh = stream_socket_client($host.':80', $errno, $errstr, QUERY_TIMEOUT, STREAM_CLIENT_ASYNC_CONNECT|STREAM_CLIENT_CONNECT);
  124.                
  125.                 if($sh){
  126.                     stream_set_blocking($sh, 0);
  127.                     stream_set_timeout($sh, QUERY_TIMEOUT);
  128.                     $wtasks['handlers'][$url] = $sh;
  129.                 }
  130.                
  131.             }
  132.         }
  133.        
  134.         /* end.cockets create */
  135.        
  136.        
  137.        
  138.        
  139.        
  140.         while($wtasks['handlers'] || $rtasks){
  141.            
  142.             $rtasks_ = $rtasks;
  143.             $wtasks_ = $wtasks['handlers'];
  144.            
  145.             $n = stream_select($rtasks_, $wtasks_, $e, QUERY_TIMEOUT);
  146.            
  147.            
  148.             if($n > 0){
  149.                
  150.                
  151.                
  152.                
  153.                     /* read data from socket */
  154.    
  155.                 foreach($rtasks_ as $sh){
  156.                    
  157.            
  158.                     $url = array_search($sh, $rtasks);
  159.    
  160.                     if($url){
  161.    
  162.                         /* uncomment to get result
  163.                        
  164.                         $result = '';
  165.                        
  166.                         while ($r = fread($sh, 2048)){
  167.                             $result .= $r;
  168.                         }
  169.                        
  170.                         */
  171.    
  172.                        
  173.                         fclose($sh);
  174.                  
  175.                         unset($rtasks[$url]);
  176.    
  177.                     }
  178.                 }
  179.                     /* end.read data from socket */    
  180.                    
  181.                    
  182.                    
  183.                    
  184.                    
  185.                     /* write data to socket */
  186.                    
  187.                 foreach($wtasks_ as $u => $sh){
  188.                    
  189.                     $url = array_search($sh, $wtasks['handlers']);
  190.        
  191.                     if($url){
  192.    
  193.                         $headers  = "GET $url HTTP/1.0\r\n";
  194.                         $headers .= "\r\n";
  195.    
  196.    
  197.                         if($sh){
  198.      
  199.                             if (fwrite($sh, $headers) === false){
  200.                                 fclose($sh);
  201.                             }
  202.                        
  203.                             $rtasks[$url] = $sh;
  204.    
  205.                             unset($wtasks['handlers'][$url]);
  206.                            
  207.                         }
  208.                        
  209.                        
  210.                     }
  211.                 }
  212.                
  213.                     /* end.write data to socket */              
  214.                        
  215.                
  216.                
  217.                
  218.             }else{
  219.                 break;
  220.             }
  221.            
  222.         }
  223.        
  224.        
  225.        
  226.     }else{
  227.         die('Incorrect Query Url');
  228.     }
  229.    
  230.  
  231. } /* end.general loop */
  232.    
  233.  
  234.  
  235.  
  236. ?>