He escrito este sencillo código:
$ch = curl_init();
//Set options
curl_setopt($ch, CURLOPT_URL, "http://www.php.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$website_content = curl_exec ($ch);
En mi caso $website_contentviene como false. ¿Alguien puede sugerir / aconsejar algo sobre lo que podría estar saliendo mal?

curl_error()los detalles del error y publíquelos aquí, por favor.curl_error()reveló?Respuestas:
La comprobación y el manejo de errores son amigos del programador. Compruebe los valores de retorno de las funciones cURL de inicialización y ejecución.
curl_error()ycurl_errno()contendrá más información en caso de avería:* El
curl_init()manual dice:He observado que la función regresa
FALSEcuando está usando su$urlparámetro y el dominio no se pudo resolver. Si el parámetro no se utiliza, la función podría no volver nuncaFALSE. Sin embargo, compruébelo siempre de todos modos, ya que el manual no indica claramente qué son los "errores" en realidad.fuente
curl_execFALSE return. - Modo Curl Verbose en PHP ejemploEn mi caso necesito conjunto
VERIFYHOSTyVERIFYPEERquefalse, de esta manera:antes de la llamada a
curl_exec($ch).Porque estoy trabajando entre dos entornos de desarrollo con certificados autoasignados. Con certificados válidos, no es necesario configurar
VERIFYHOSTyVERIFYPEERhacerlofalseporque elcurl_exec($ch)método funcionará y devolverá la respuesta que espera.fuente
Esto me pasó ayer y en mi caso fue porque estaba siguiendo un manual en PDF para desarrollar algún módulo para comunicarme con una API y mientras copiaba el enlace directamente desde el manual, por alguna extraña razón, el
hyphenenlace del copiado estaba en una forma diferente codificación y, por lo tanto,curl_exec()siempre regresabafalseporque no podía comunicarse con el servidor.Me tomó un par de horas entender finalmente la diferencia en los caracteres a continuación:
Cada vez que intenté acceder al enlace directamente desde un navegador, se convirtió en algo como
https://www.xn--eexample-0m3d.com/api.Puede que te parezca que son iguales pero si revisas la codificación de
hyphensaquí verás que el primerohyphenes un carácter Unicode U + 2010 y el otro es un U + 002D .Espero que esto ayude a alguien.
fuente