Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Skeletron en 2 Agosto 2010, 04:56 am



Título: Como usar la API de ImageShack.us
Publicado por: Skeletron en 2 Agosto 2010, 04:56 am
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í?


Título: Re: Como usar la API de ImageShack.us
Publicado por: Zazú en 2 Agosto 2010, 05:18 am
En realidad si, se puede  ;D


Código
  1. <?php
  2. function desde_hasta($desde, $hasta, $texto){
  3. if(eregi($desde ,$texto)){
  4.  $retorno = explode($desde, $texto);
  5.  $retorno = $retorno[1];
  6.  $retorno = explode($hasta, $retorno);
  7.  $retorno = $retorno[0];
  8.  return $retorno;
  9. } else {
  10.  return FALSE;
  11. }
  12. }
  13.  
  14. ?>
  15.  

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>
Código
  1. <?php
  2. $contenido="aca pone lo que te devuelve(el xml, no se como lo harás :P";
  3. $linkimagen = desde_hasta('<image_link>', '</image_link>', $contenido);
  4. echo $linkimagen;
  5. ?>


Suerte  ;)
La proxima duda ya mandamela por MP  ;D

 :silbar:


Título: Re: Como usar la API de ImageShack.us
Publicado por: Skeletron en 2 Agosto 2010, 07:18 am
Interesante...
Gracias..

Pero como logro obtener lo que devuelve imageshack?


Título: Re: Como usar la API de ImageShack.us
Publicado por: jdc en 2 Agosto 2010, 07:36 am
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


Título: Re: Como usar la API de ImageShack.us
Publicado por: Zazú en 2 Agosto 2010, 12:07 pm
si supiera como se devuelve tambien te ayudaria, despues veo :\

Suerte  ;)


Título: Re: Como usar la API de ImageShack.us
Publicado por: jdc en 2 Agosto 2010, 16:47 pm
de todas formas si usas esto necesitaras una API KEY, quizas con ello sea distinto


Título: Re: Como usar la API de ImageShack.us
Publicado por: ~ Yoya ~ en 2 Agosto 2010, 16:54 pm
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.


Título: Re: Como usar la API de ImageShack.us
Publicado por: Skeletron en 2 Agosto 2010, 17:08 pm
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!!?


Título: Re: Como usar la API de ImageShack.us
Publicado por: 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  ;)


Título: Re: Como usar la API de ImageShack.us
Publicado por: Skeletron en 2 Agosto 2010, 21:21 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


Título: Re: Como usar la API de ImageShack.us
Publicado por: jdc en 3 Agosto 2010, 01:54 am
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


Título: Re: Como usar la API de ImageShack.us
Publicado por: ~ Yoya ~ en 3 Agosto 2010, 02:39 am
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...
Código
  1. <?php
  2. $url = 'http://freedirectlink.com/tools/imageshack_api.php?img=';
  3. //Url de la imagen
  4. $url_image ='http://foro.elhacker.net/Themes/converted/selogo.jpg';
  5. $url .= $url_image;
  6. $curl = curl_init();
  7. curl_setopt($curl, CURLOPT_URL, $url);
  8. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  9. $response = curl_exec($curl);
  10. curl_close($curl);
  11.  
  12. //Fin del curl
  13.  
  14. preg_match("/image\":\"(.+)\"}/",$response,$capturado);
  15. $captura = $capturado[1];
  16. $captura = str_replace("\\","",$captura);
  17. echo $captura;
  18. ?>


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...
Código
  1. <?php
  2. $ch = curl_init("http://www.imageshack.us/upload_api.php");
  3. curl_setopt ($ch, CURLOPT_POST, true);
  4. $post = array(
  5. "fileupload" =>"@/home/yoya/Escritorio/aas.gif;type=image/gif",
  6. );
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  8. curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
  9.  
  10. $response = curl_exec ($ch);
  11. curl_close ($ch);
  12. preg_match("/<image_link>(.+)<\//",$response,$captura);
  13. echo $captura[1];
  14. ?>

Salida:
Código:
http://img835.imageshack.us/img835/7446/aas.gif