Comunidad de diseño web y desarrollo en internet online

¿Hay alguna funcion que haga esto?

Citar            
MensajeEscrito el 02 Ago 2013 11:23 pm
Hola

Pues vereis, tengo el siguiente codigo que es para mostrar las caratula de los ultimos aportes de un foro...

Código PHP :

foreach ($posts as $post) {
$content1 = str_replace("[", "<", $post['body']); // cambiamos los corchetes del principio
$content2 = str_replace("]", ">", $content1);  // cambiamos los corchetes del final
$caratula = strip_tags($content2); // retiramos etiquetas html
$caratula1 = substr ($caratula,0,70)); // cogemos los primero 70 caracteres

}

y consigo esto:

Código CSS :

http://imageshack.us/a/img001/491/XXXX.jpghttp://img809.imageshack.us/
http://i.imgur.com/XXXXXXXXXXX.pngINFORMACI%C3%93N%20DE%20LA%20SERIET%
http://s1.directupload.net/images/user/999999/XXXXXXXX.pnghttp://s14.d
http://uploadingit.com/file/hasfw7865gd4yhgrd/XXXXXXXXX.jpghttp://solo

(perdon por el codigo css, es para que veais que ocupan todos igual)

esos 70 caracteres se los paso a la instruccion echo ' <img src="' . $caratula1 .'" />'; para que me muestre las imagenes y el problema viene en que hay muchos servidores de imagenes (el 1 y el 3 de este ejemplo para ser mas exactos) como tiene mas texto despues de la extension de la imagen no la carga con lo que no la muestra.

Mi pregunta es ¿hay alguna funcion o codigo que elimine todo lo que hay despues de .jpg o .png para dejar solo la direccion de la imagen?

Gracias por adelantado

Por rober1

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Ago 2013 12:41 pm
Pues me gustaría ver qué te llega exactamente en $post['body'] porque me da la impresión que lo puedes resolver con expresiones regulares.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 03 Ago 2013 06:22 pm
Me llega el cuerpo del mensaje completo

Por rober1

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Ago 2013 12:26 pm
Bueno pues al final tambien he conseguido solucionar este problema, simplemente he cambiado esto:

Código PHP :

foreach ($posts as $post) {
$content1 = str_replace("[", "<", $post['body']); // cambiamos los corchetes del principio
$content2 = str_replace("]", ">", $content1);  // cambiamos los corchetes del final
$caratula = strip_tags($content2); // retiramos etiquetas html
$caratula1 = substr ($caratula,0,70)); // cogemos los primero 70 caracteres
}

por esto:

Código PHP :

foreach ($posts as $post) {
$noimg = $boardurl.'/images/box.png';
         preg_match('/<img src="(.*?)" alt="(.*?)" class="(.*?)" \/>/',$post['body'],$images);
                if ($images == null)
         $img = $settings['default_images_url'].'/noimagen.jpg';
      elseif ($images['3'] == 'smiley')
         $img = $settings['default_images_url'].'/noimagen.jpg';
      elseif ($images['1'] == $noimg)
          $img = $settings['default_images_url'].'/noimagen.jpg';
      else
   $img = $images['1'];
}

No me pregunteis que es lo que hace porque no tengo ni idea, lo unico que se es que funciona. :P
Lo he sacado de un bloque de un foro americano que hacia algo parecido a lo que yo estaba intentand conseguir, lo que pasa es que el bloque no tiene copyright :( con lo que no puedo agracederselo al que lo haya echo, lo que se es que el portal que utilizan en el foro es el de SimplePortal, osea que si han sido los chicos de SimplePortal ¡¡¡muchisimas gracias a ellos!!! y a DriverOp por molestarse en contestarme.

Por rober1

5 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.