Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: irenuchi_04 en 18 Agosto 2015, 01:18 am



Título: Problemas para mostrar correctamente etiqueta <img> mediante PHP
Publicado por: irenuchi_04 en 18 Agosto 2015, 01:18 am
 :DMuy buenas

Antes de explicar mi problema agrego la siguiente imagen:

(https://farm6.staticflickr.com/5835/20471222180_d537c37803_b.jpg)

La cuestión es que estoy diseñando ese cuadro de imágenes para Wordpress el cual tiene como objetivo mostrar artículos de forma aleatoria para una determinada tag, las imágenes son traídas desde el respectivo thumbnail de cada post.

Ahora bien, conociendo lo anterior uso una función para esto:

Código
  1. function atrib_imagen_destacada() {
  2.    $reciente = new WP_Query("tag=juegos-para-pc&showposts=1&orderby=rand");
  3.      while($reciente->have_posts()){
  4.          $reciente->the_post();
  5.    $thumbID = get_post_thumbnail_id( $post->ID );
  6.    $imgCuadro = wp_get_attachment_image_src( $thumbID, 'medium' );
  7.  
  8.      }      
  9.  
  10. echo "<h2 class='titulosp'>'" .wp_html_excerpt (get_the_title(), 65 ). "'...</h2><a href='".get_permalink()."' title='".get_the_title()."'><img class='imagenes' src='".$imgCuadro[0]."'></a>";
  11. }
  12.  

el problema esta en el código HTML que me devuelve la función mediante el echo, ya que  la etiqueta <img> me la muestra con la siguiente estructura:

Código
  1. <img src="......"></img>

Lógicamente la etiqueta <img> no requiere de una finalización, </img>.

Entonces agradecería alguna orientación que me pudieran dar para solucionar este inconveniente.

Desde ya muchos saludos  ;-) :xD


Título: Re: Problemas para mostrar correctamente etiqueta <img> mediante PHP
Publicado por: DarK_FirefoX en 18 Agosto 2015, 03:32 am
Y porque no la cierras manualmente en esta línea:

Código
  1. echo "<h2 class='titulosp'>'" .wp_html_excerpt (get_the_title(), 65 ). "'...</h2><a href='".get_permalink()."' title='".get_the_title()."'><img class='imagenes' src='".$imgCuadro[0]."'/></a>";

Nota como antes de cerrar la etiqueta a, añadí un / para cerrar la img

Salu2s

PD: ¿Coloreaste a mano el código?  :D Utiliza las etiquetas GeSHi para publicar código, te hace el syntax highlighting automático.


Título: Re: Problemas para mostrar correctamente etiqueta <img> mediante PHP
Publicado por: irenuchi_04 en 18 Agosto 2015, 11:52 am
Y porque no la cierras manualmente en esta línea:

Código
  1. echo "<h2 class='titulosp'>'" .wp_html_excerpt (get_the_title(), 65 ). "'...</h2><a href='".get_permalink()."' title='".get_the_title()."'><img class='imagenes' src='".$imgCuadro[0]."'/></a>";

Nota como antes de cerrar la etiqueta a, añadí un / para cerrar la img

Salu2s

PD: ¿Coloreaste a mano el código?  :D Utiliza las etiquetas GeSHi para publicar código, te hace el syntax highlighting automático.

Gracias por tu respuesta, solo debo decir que ya encontré el origen del problema y este viene siendo del navegador Firefox, tanto en su versión para desarrolladores como la normal, no se por que motivo todas las etiquetas img les agrega un cierra </img> algo que me estaba volviendo loca.

Así que si a alguien más le ocurre lo mismo pueden probar con otro navegador distinto, Chrom, opera, etc..

Con respecto al código no lo he coloreado a mano solo lo puse dentro de dos etiquetas PHP y apareció de esa manera, así que podríamos estar ante un nuevo truco  :D

Saludos


Título: Re: Problemas para mostrar correctamente etiqueta <img> mediante PHP
Publicado por: DarK_FirefoX en 18 Agosto 2015, 16:30 pm
Gracias por tu respuesta, solo debo decir que ya encontré el origen del problema y este viene siendo del navegador Firefox, tanto en su versión para desarrolladores como la normal, no se por que motivo todas las etiquetas img les agrega un cierra </img> algo que me estaba volviendo loca.

Así que si a alguien más le ocurre lo mismo pueden probar con otro navegador distinto, Chrom, opera, etc..

La verdad que no se porque sucede esto, justo lo probé y es verdad, en el inspector de elementos te añade el cierre de la etiqueta. Incluso en el Chrome lo probé y en este no te lo añade, sin embargo. Si pongo:

Código
  1. <img src="hola.jpg"/>

Lo que muestra en el inspector es:

Código
  1. <img src="hola.jpg">

 :¬¬

Con respecto al código no lo he coloreado a mano solo lo puse dentro de dos etiquetas PHP y apareció de esa manera, así que podríamos estar ante un nuevo truco  :D

Saludos


Así ya estamos, la verdad no lo sabía, pues yo pense que le habías dado color a mano.  ;D

Salu2s


Título: Re: Problemas para mostrar correctamente etiqueta <img> mediante PHP
Publicado por: MinusFour en 18 Agosto 2015, 17:38 pm
El codigo presentado por el Inspector de Firefox no es el mismo. Tienes que darle a ver codigo fuente y ahi encontrar lo que realmente imprimio PHP.


Título: Re: Problemas para mostrar correctamente etiqueta <img> mediante PHP
Publicado por: DarK_FirefoX en 18 Agosto 2015, 17:40 pm
El codigo presentado por el Inspector de Firefox no es el mismo. Tienes que darle a ver codigo fuente y ahi encontrar lo que realmente imprimio PHP.

Si, esta claro, cuando presionas "Ver código fuente" si lo muestra correctamente, pero ahora me surge la duda, ¿Por qué sucede esto en el inspector de elementos?

Salu2s


Título: Re: Problemas para mostrar correctamente etiqueta <img> mediante PHP
Publicado por: MinusFour en 18 Agosto 2015, 18:58 pm
Si, esta claro, cuando presionas "Ver código fuente" si lo muestra correctamente, pero ahora me surge la duda, ¿Por qué sucede esto en el inspector de elementos?

Salu2s

Porque el inspector de elementos es una representacion del DOM que formula el navegador. Tu archivo HTML es parseado y de acuerdo a la informacion se crea un documento, el inspector de elementos te muestra la representacion de este documento.

Por ejemplo, en las tablas, el inspector de elementos agrega la etiqueta <tbody>.

Inspecciona esta tabla para que veas:

tablaaqui

Este es el HTML que genera SMF:
Código
  1. <table style="font: inherit; color: inherit;"><tr><td valign="top" style="font: inherit; color: inherit;">tabla</td><td valign="top" style="font: inherit; color: inherit;">aqui</td></tr></table>