Hola gente..
Les comento que con IMAGESHACK.US es facil subir imagenes a su hosting.
Con ésto, se sube una imagen:
<form action="http://www.imageshack.us/upload_api.php" enctype="multipart/form-data" method="post">
<input name="fileupload" type="file" /><br />
<input name="gosubir" type="submit" value="Subir" />
</form>
Si hace un .html con eso, y le dan a SUBIR, verán que imageshack les devuelve un XML con un monton de datos... entre ellos:
<image_link>
http://xxxx.imageshack.us/xxxxxx/xxx/xxxxxxx.jpg
</image_link>
La cuestion, es que yo quiero implementar eso en mi sitio web... PERO.. obviamente que no se puede DIRECTAMENTE.. ya que si el usuario sube la foto, luego de darle click a Subir, verá todo ese codigo...
Mi drama es el siguiente:
Quiero hacer algo así:
Al darle al boton SUBIR, que envie esa imagen a imageshack y me ponga en una variable el dato de <image_link> para poder guardarlo en una base de datos..
Como se puede hacer algo así?
En realidad si, se puede ;D
<?php
function desde_hasta($desde, $hasta, $texto){
if(eregi($desde ,$texto)){
$retorno = explode($desde, $texto);
$retorno = $retorno[1];
$retorno = explode($hasta, $retorno);
$retorno = $retorno[0];
return $retorno;
} else {
return FALSE;
}
}
?>
Usa función lo que hace es extraer lo que hay entre 2 strings que vos establezcas (no es de php, la hice yo) en este caso la usarias con <image_link> y </image_link>
<?php
$contenido="aca pone lo que te devuelve(el xml, no se como lo harás :P";
$linkimagen = desde_hasta('<image_link>', '</image_link>', $contenido);
echo $linkimagen;
?>
Suerte ;)
La proxima duda ya mandamela por MP ;D
:silbar:
Interesante...
Gracias..
Pero como logro obtener lo que devuelve imageshack?
con la funcion desde_hasta xD
por ejemplo
$desde = '<image_link>';
$hasta = '</image_link>';
$a = desde_hasta($desde, $hasta);
osea tu url ;) esa la guardas, puedes usar read_file() o file_get_contents() aunque creo que tienes razon xD ni la mas minima idea de como obtener el resultante jajajaja ya te entendi :s
si supiera como se devuelve tambien te ayudaria, despues veo :\
Suerte ;)
de todas formas si usas esto necesitaras una API KEY, quizas con ello sea distinto
Usa Minería de datos (http://es.wikipedia.org/wiki/Miner%C3%ADa_de_datos)
Usa Expresiones Regulares man, si quieres te hago un ejemplo.
A ver si me entienden:
HAcer un FORM con un ACTION a Google.com, entro a google.com... O sea... si quiero analizar lo que Google.com me devuelve, tengo que subir un script a google.com
Por favor, si leen CON DETALLE el post que he creado, se darán cuenta que el texto que se devuelve, está en www.imageshack.us.. como voy a leer el texto que devuelve, si está en otra web!!?
Yoya, no digas boludeces ;)
:silbar:
Acabo de entender lo que decis... ;D
Se podria hacer usando ajax, pero costaria bastante. Ahora pruebo y te aviso.
Suerte ;)
Cita de: Zazú en 2 Agosto 2010, 17:53 PM
Yoya, no digas boludeces ;)
:silbar:
Acabo de entender lo que decis... ;D
Se podria hacer usando ajax, pero costaria bastante. Ahora pruebo y te aviso.
Suerte ;)
Te amo
xD yo entendí cuando respondía la conocí primera vez jajaja
Supongo que tendrías que usar curl para enviar el "archivo" y recibir el xml
Cita de: Zazú en 2 Agosto 2010, 17:53 PM
Yoya, no digas boludeces ;)
No hay porque insultar, así por así, porque al final el que dice boludeces eres tu. Así que respeta un poco...
Encontré una pagina que me lo hace por mi, luego lo que hago es capturar los datos que yo deseo (Minería de datos).
Lo hice con Curl, para agilizar la petición...
<?php
$url = 'http://freedirectlink.com/tools/imageshack_api.php?img=';
//Url de la imagen
$url_image ='http://foro.elhacker.net/Themes/converted/selogo.jpg';
$url .= $url_image;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
//Fin del curl
preg_match("/image\":\"(.+)\"}/",$response,$capturado);
$captura = $capturado[1];
$captura = str_replace("\\","",$captura);
echo $captura;
?>
Salida:
http://img651.imageshack.us/img651/6860/selogo.jpg
Bueno usando la API, fue muy difícil hacerlo pero lo pude lograr xD. Ya que tenia que establecer el tipo de contenido del archivo a subir y por lo tanto imageshack no sabia que tipo de archivo era y lo rechazaba...
<?php
$ch = curl_init("http://www.imageshack.us/upload_api.php");
curl_setopt ($ch, CURLOPT_POST, true);
$post = array(
"fileupload" =>"@/home/yoya/Escritorio/aas.gif;type=image/gif",
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec ($ch);
curl_close ($ch);
preg_match("/<image_link>(.+)<\//",$response,$captura);
echo $captura[1];
?>
Salida:
http://img835.imageshack.us/img835/7446/aas.gif