Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   ereg_replace (http://www.forosdelweb.com/f18/ereg_replace-377907/)

Kailea 13/03/2006 13:15

ereg_replace
 
Hola a todos,

Estoy empezando con PHP por un trabajo, y tengo que revisar un panel de control de noticias, que tiene un modo de edición. Cuando vas a editar la noticia debería aparecer Título, Fecha, Datos, Resumen... El problema está en que según qué noticia se edite aparecen o no la fecha, los datos,...

Es decir, yo edito la noticia1 y me aparecen el título, fecha, datos y resumen. Pero si edito la noticia2 me aparece el título, datos y resumen, pero NO la fecha y la fecha es un dato que existe.

Este sistema está hecho en php y tiene un javascript para insertarle un wysiwyg al escribir y editar la noticia. Para cada una de las variables el código que está puesto es, para la fila de la fecha por ejemplo es:

Código:

<script language="JavaScript" type="text/javascript">
writeRichText('fechas', '<? $rownoticia[2]=ereg_replace("\n", " ", $rownoticia[2]); $rownoticia[2]=ereg_replace("\r", " ", $rownoticia[2]); print "$rownoticia[2]"; ?>', 100, 200, true, false);
                </script>

Por las pruebas que he estado haciendo parece ser que el problema pueda estar en lo de "\n" que no sé lo que significa, pues cada variable lleva una colección de letras distinta (v,r,t). He estado buscando el significado pero tampoco me aclara mucho la explicación de www.php.net. Y por los foros no acabo de encontrar la respuesta. ¿Alguien podría explicármelo un poquito más claro? ¿Es alguna especie de comodín?

Mil gracias!

mauled 13/03/2006 13:20

http://mx.php.net/manual/es/function.ereg-replace.php pues lo lo que hace ereg_replace es buscar el salto de linea(\n -como si fuera un "enter") y cuando lo encuentra lo sustituye por un espacio en blanco. Si pusieras el codigo del declaracion de $rownoticia se te podria ayudar de mejor manera.

Kailea 14/03/2006 06:20

$rownoticia la coge de aquí:


Código:

if (isset ($editar))
        {
        $sentencia = "SELECT * FROM cartelera WHERE id_cartelera=$editar";
        $res_sql = mysql_query($sentencia) or die('Error CARTELERA BUSCAR!');
        $rownoticia = mysql_fetch_array($res_sql);

La función de ereg_replace sí la conozco, lo que no encuentro por ningún lado es por ejemplo lo que me has dicho de "\n", y el resto "\v", "\r", "\t"...

Creo que podría ponerse algo genérico (en lugar de "\n") y de ese modo, hubiera el valor que hubiera de cada variable aparecería para ser reemplazado o no. Como tampoco sé como poner ese valor genérico, no lo puedo probar :(

Gracias!

Kailea 16/03/2006 04:28

Pues bien, he probado a usar el comodín (.) es decir que quede así:

Código:

                writeRichText('fechas', '<? $rownoticia[2]=ereg_replace(".", " ", $rownoticia[2]); $rownoticia[2]=ereg_replace("\r", " ", $rownoticia[2]); print "$rownoticia[2]"; ?>', 100, 200, true, false);
Lo que pasa es que haciéndolo así, el texto que había anteriormente se borra completamente, y debería conservarse porque si no en lugar de editar lo que estaría haciendo sería escribirlo todo de nuevo. ¿Alguna sugerencia? Mientras sigo buscando otras posibilidades.

¡Gracias!

nosoynadie 16/03/2006 04:56

Hola,
por lo que parece la sintaxis de ereg_replace() es corrrecta así que no entiendo por qué no te aparece la fecha. Podrías hacer un print_r() de $rownoticia y nos lo pones, para que veamos que traes de la base de datos.

Código PHP:

print_r($rownoticia); 

A ver si así hacemos algo :-)

Kailea 16/03/2006 05:56

Esto es lo que aparece. Espero que sirva de ayuda :)

Código:

Array ( [0] => 20 [id_cartelera] => 20 [1] => DE DRUIDAS Y LEYENDAS [titulo] => DE DRUIDAS Y LEYENDAS [2] =>
Fecha: 29 de diciembre, jueves

Hora: 19:00

Entrada: 8 €

[fechas] =>
Fecha: 29 de diciembre, jueves

Hora: 19:00

Entrada: 8 €

[3] => [datos] => [4] => [resumen] => [5] => DE DRUIDAS Y LEYENDAS [titulu] => DE DRUIDAS Y LEYENDAS [6] =>
Data: 2005-12-29

Ordua: 19:00

Sarrera: 8 €

[datak] =>
Data: 2005-12-29

Ordua: 19:00

Sarrera: 8 €

[7] => [datuak] => [8] => [laburpena] => [9] => 20 [posicion] => 20 [10] => Druidas1.jpg [foto] => Druidas1.jpg [11] => 4 [tipo] => 4 )



La zona horaria es GMT -6. Ahora son las 19:09.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.