No entiendo cuál es la diferencia entre¿Qué significa curlopt_binarytranfer exactamente?
CURLOPT_RETURNTRANSFER AND
CURLOPT_BINARYTRANSFER
Escribí un guión para comprobarlo
<?php
$image_url = "http://localhost/curl/img1.png";
$ch = curl_init();
$timeout = 0;
curl_setopt ($ch, CURLOPT_URL, $image_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$image = curl_exec($ch);
curl_close($ch);
header("Content-type: image/jpeg");
print $image;
?>
en este caso me sale la imagen que aparece en el navegador Si quito la línea
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
sigo obteniendo la imagen que se muestra en el navegador.
y ahora si me quito la línea
header("Content-type: image/jpeg");
continuación iGet visualización de datos binarios en el navegador (se parece a la basura) en ambos casos si quito curl_setopt ($ ch, CURLOPT_BINARYTRANSFER, 1); o no lo elimino. entonces, ¿qué diferencia hace esta opción CURLOPT_BINARYTRANSFER
?
entonces, ¿qué efecto puede CURLOPT_BINARYTRANSFER hacer? ¿Puede dar un ejemplo? – lovesh
Algo que pude entender por su enlace es que las personas han intentado muchas más cosas para comprender CURLOPT_BINARYTRANSFER. – lovesh
@lovesh, cierto. En realidad, es necesario para el bien de PHP, por lo que sabe cómo tratar el resultado devuelto. Pero la responsabilidad recae en Curl. Entonces, básicamente, PHP dice curl: * cada vez que vas a buscar datos binarios, dime para no estropearlo *. Pero, la inteligencia y sofisticación de PHP para descubrir, por sí solo, si los datos devueltos deben tratarse como binarios o el texto ha fluctuado con el tiempo (algunas versiones han introducido errores que lo empeoran y otros lo han mejorado). Entonces, con algunas compilaciones puedes obtener el resultado sin usar la opción. Pero para estar seguro, será mejor que siempre avises a PHP. –