Ive tenía un par de problemas con secuencias de comandos que dependen de cURL colgando tiempo suficiente para que mi equipo ha tenido que matar a los procesos de PHP y me dice al respecto. La primera vez que sucedió fue con un script que se ejecuta a través de cron y simplemente algo publicado en Twitter cada día. La época más reciente, sin embargo, fue con un script que tiene una interfaz de usuario HTML y las imágenes las peticiones de un par de servidores en el fondo.
Por suerte las dos veces su sido algo que sólo puede desactivar y no preocuparse.
Estaban seguros de que tiene algo que ver con mi clase cURL perezoso y cómo depende de los tiempos de espera por defecto que se presente. Así que por el amor de depuración, creo que mi clase de malos post cURL aquí, luego fijarla y después el resultado en un puesto más adelante.
<?php
class cURL
{
protected $conn;
public $opts = array(
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_NOBODY => 0
);
public $http_status;
public function __construct($opts = array())
{
$this->conn = curl_init();
foreach($opts as $key => $val)
{
$this->opts[$key] = $val;
}
curl_setopt_array($this->conn, $this->opts);
return $this;
}
public function get($url, $opts = array())
{
curl_setopt($this->conn, CURLOPT_URL, $url);
foreach($opts as $key => $val)
{
$this->opts[$key] = $val;
curl_setopt($this->conn, $key, $val);
}
$returns = curl_exec($this->conn);
$this->http_status = curl_getinfo($this->conn, CURLINFO_HTTP_CODE);
return $returns;
}
public function post($url, $data)
{
return $this->get($url, array(
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $data
));
}
}
?>
- <?php
-
- class cURL
- {
- protected $conn;
- public $opts = array(
- CURLOPT_HEADER => 0,
- CURLOPT_RETURNTRANSFER => 1,
- CURLOPT_FOLLOWLOCATION => 1,
- CURLOPT_NOBODY => 0
- );
- public $http_status;
- public function __construct($opts = array())
- {
- $this->conn = curl_init();
- foreach($opts as $key => $val)
- {
- $this->opts[$key] = $val;
- }
- curl_setopt_array($this->conn, $this->opts);
-
- return $this;
- }
- public function get($url, $opts = array())
- {
- curl_setopt($this->conn, CURLOPT_URL, $url);
- foreach($opts as $key => $val)
- {
- $this->opts[$key] = $val;
- curl_setopt($this->conn, $key, $val);
- }
- $returns = curl_exec($this->conn);
- $this->http_status = curl_getinfo($this->conn, CURLINFO_HTTP_CODE);
- return $returns;
- }
- public function post($url, $data)
- {
- return $this->get($url, array(
- CURLOPT_POST => 1,
- CURLOPT_POSTFIELDS => $data
- ));
- }
- }
-
- ?>
Strong with this one, the sudo is.