2010-12-27 26 views
8

Estoy accediendo a imágenes de otro sitio web. Recibo el error "No se ha podido abrir la secuencia: error de solicitud HTTP HTTP/1.1 400 Solicitud incorrecta" al copiar "algunas imágenes (no todas)". aquí está mi códigono se pudo abrir la secuencia: ¡Falló la solicitud HTTP! HTTP/1.1 400 Bad Request

$img=$_GET['img']; //another website url 
$file=$img; 

function getFileextension($file) { 
     return end(explode(".", $file)); 
} 
$fileext=getFileextension($file); 
if($fileext=='jpg' || $fileext=='gif' || $fileext=='jpeg' || $fileext=='png' || $fileext=='x-png' || $fileext=='pjpeg'){ 
if($img!=''){ 
$rand_variable1=rand(10000,100000); 
       $node_online_name1=$rand_variable1."image.".$fileext; 

       $s=copy($img,"images/".$node_online_name1); 

}

+0

¿Es esta todo el código para reproducir el problema? Hay un corsé abierto no cerrado al final. Además, ¿dónde está realmente enviando una solicitud a un servidor web? Cuando obtiene el error, ¿cuál es la solicitud? – David

+0

estoy copiando imágenes de otro sitio. cuando alguna función de copia se ejecuta entonces obtengo este error. $ s = copy ($ img, "images /".$ node_online_name1); –

Respuesta

14

Creo preg_replace hacer más mejor sentido, ya que trabajará con las últimas versiones del PHP como ereg_replace no funcionó para mí consideran obsoletos

$url = preg_replace("/ /", "%20", $url); 
4

El único problema que ocurre es que son espacios en la url, muy probablemente en el nombre del archivo. Todos los espacios en una url necesitan convertirse a su codificación adecuada, que es% 20.

Si usted tiene un nombre de archivo de la siguiente manera:

"http://www.somewhere.com/images/img 1.jpg"

Usted recibirá el error anterior, pero con esto:

"http://www.somewhere.com/images/img%201.jpg"

Usted debería tener problemas.

sólo tiene que utilizar el str_replace() para reemplazar los espacios (" ") para su correcta codificación (" % 20")

Parece que este:

$url = str_replace(" ", "%20", $url); 

Para obtener más información sobre el cheque str_replace() a cabo The PHP Manual.

+1

Mejor que str_replace sería llamar a urlencode en la cadena "img 1" – Yuliy

10

que tenían el mismo problema, pero era resolver por

$url = str_replace(" ", "%20", $url); 

Gracias Cello_Guy para el puesto.

Cuestiones relacionadas