Subversion Repositories php_guestbook

Rev

Blame | Last modification | View Log | RSS feed

  1. <?php
  2. /**
  3.  * This is a PHP library that handles calling reCAPTCHA.
  4.  *
  5.  * @copyright Copyright (c) 2015, Google Inc.
  6.  * @link      http://www.google.com/recaptcha
  7.  *
  8.  * Permission is hereby granted, free of charge, to any person obtaining a copy
  9.  * of this software and associated documentation files (the "Software"), to deal
  10.  * in the Software without restriction, including without limitation the rights
  11.  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  12.  * copies of the Software, and to permit persons to whom the Software is
  13.  * furnished to do so, subject to the following conditions:
  14.  *
  15.  * The above copyright notice and this permission notice shall be included in
  16.  * all copies or substantial portions of the Software.
  17.  *
  18.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  19.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  20.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  21.  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  22.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  23.  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  24.  * THE SOFTWARE.
  25.  */
  26.  
  27. namespace ReCaptcha\RequestMethod;
  28.  
  29. /**
  30.  * Convenience wrapper around native socket and file functions to allow for
  31.  * mocking.
  32.  */
  33. class Socket
  34. {
  35.     private $handle = null;
  36.  
  37.     /**
  38.      * fsockopen
  39.      *
  40.      * @see http://php.net/fsockopen
  41.      * @param string $hostname
  42.      * @param int $port
  43.      * @param int $errno
  44.      * @param string $errstr
  45.      * @param float $timeout
  46.      * @return resource
  47.      */
  48.     public function fsockopen($hostname, $port = -1, &$errno = 0, &$errstr = '', $timeout = null)
  49.     {
  50.         $this->handle = fsockopen($hostname, $port, $errno, $errstr, (is_null($timeout) ? ini_get("default_socket_timeout") : $timeout));
  51.  
  52.         if ($this->handle != false && $errno === 0 && $errstr === '') {
  53.             return $this->handle;
  54.         }
  55.         return false;
  56.     }
  57.  
  58.     /**
  59.      * fwrite
  60.      *
  61.      * @see http://php.net/fwrite
  62.      * @param string $string
  63.      * @param int $length
  64.      * @return int | bool
  65.      */
  66.     public function fwrite($string, $length = null)
  67.     {
  68.         return fwrite($this->handle, $string, (is_null($length) ? strlen($string) : $length));
  69.     }
  70.  
  71.     /**
  72.      * fgets
  73.      *
  74.      * @see http://php.net/fgets
  75.      * @param int $length
  76.      * @return string
  77.      */
  78.     public function fgets($length = null)
  79.     {
  80.         return fgets($this->handle, $length);
  81.     }
  82.  
  83.     /**
  84.      * feof
  85.      *
  86.      * @see http://php.net/feof
  87.      * @return bool
  88.      */
  89.     public function feof()
  90.     {
  91.         return feof($this->handle);
  92.     }
  93.  
  94.     /**
  95.      * fclose
  96.      *
  97.      * @see http://php.net/fclose
  98.      * @return bool
  99.      */
  100.     public function fclose()
  101.     {
  102.         return fclose($this->handle);
  103.     }
  104. }
  105.