Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/09/2010, 11:29
ilole
 
Fecha de Ingreso: septiembre-2010
Mensajes: 2
Antigüedad: 13 años, 7 meses
Puntos: 0
expresión regular php y src

Muy buenas tardes a todos, antes de nada felicitarles por el foro, la verdad que se aprende muchísimo desde estos lares ;D, así que espero que sigan ustedes así de bien ^_^.

Bueno antes de comenzar, comentar únicamente que no ejerzo de programador (aunque estudie algún año, me arrepentí antes de terminar el FP) pero es, digamos, mi hobby, por ello ruego que me disculpen si meto alguna burrada en la aplicación del vocabulario o similares.

Dicho esto os comento cual es mi problema:

Tengo un textarea donde he implementado el WYSIWYG "nicEdit", el contenido de este se envía a través de POST a la variable $descripcionProyectoSinSustituir.

Código PHP:

$descripcionProyecto 
$_POST['descripcionProyecto'];
echo 
$descripcionProyecto
Nota: El echo me devuelve el siguiente contenido:

Código HTML:
<img src="../proyectos/nombre_del_archivo1.jpg" alt="" align="none" height="150" class="nicEdit-img">
<img src="../proyectos/proyectos/nombre_del_archivo2.jpg" alt="" align="none" height="150" class="nicEdit-img">
<img src="../proyectos/nombre_del_archivo3.jpg" alt="" align="none" height="150" class="nicEdit-img"> 
Seguidamente busco el atributo scr de las etiquetas img que existen en el contenido de dicha variable (o lo que es lo mismo en el textarea ya comentado) a través de una expresión regular (
Código PHP:
$buscaSrcImagenes '/<img.*?src=["\'](.*?)["\']/s'
),aplicando "prg_match_all" seguido de un foreach para crear un string concatenando los resultados en una variable, que posteriormente envío a la base de datos (con mysql), para utilizarla en la home con js.

Código PHP:

$buscaSrcImagenes 
'/<img.*?src=["\'](.*?)["\']/s';
if (
preg_match_all($buscaSrcImagenes $descripcionProyecto$imagenesArrayInicio)){
    foreach (
$imagenesArrayInicio[1] as $image) {
        
$image substr_replace($image'',013);
        
$image substr($image0, -4);
        
$imagenes[] = $image;
        
$concatenar .= $imagenes[$i]."|";
        
$i++;
    };

    
$concatenar substr($concatenar0, -1);
    
$totalNumeroProyectos $i;
};
echo 
$concatenar;
echo 
$totalNumeroProyectos
Sin embargo, al mostrar el valor de $concatenar o $totalNumeroProyectos (con echo) no muestra ningún resultado, lo que debería mostrar debería ser:

nombre_del_archivo1|nombre_del_archivo2|nombre_del _archivo3

He probado utilizando diferentes expresiones escritas, utilizando [URL="http://gskinner.com/RegExr/"]RegExr[/URL], algunas de estas pruebas han sido (por si sirven de orientación de lo que he intentado):

Código PHP:
src=["](http://.*?)["]
[
"\']path_completo/(.*?)["]
<
img.*?src=["\'].*?["]
<
img.*?src=["](http://.*?)["
... 
El problema está en que ya no se donde está realmente el error, si en la expresión regular (puesto que cuando las pruebo en [URL="http://gskinner.com/RegExr/"]RegExr[/URL] me sale como seleccionado el atributo scr de las etiquetas img. O es a causa de otro tipo de error en la aplicación del preg_match_all ...

Si me pudieran ayudar, os lo agradecería enormemente