Foros del Web » Programando para Internet » PHP »

Estoy hecho un lío

Estas en el tema de Estoy hecho un lío en el foro de PHP en Foros del Web. A ver, tengo un texto en la base de datos, lo imprimo en la página para que aparezca con el retorno de carro y cualquier ...
  #1 (permalink)  
Antiguo 21/04/2003, 16:34
 
Fecha de Ingreso: enero-2002
Mensajes: 94
Antigüedad: 15 años, 10 meses
Puntos: 0
Estoy hecho un lío

A ver, tengo un texto en la base de datos, lo imprimo en la página para que aparezca con el retorno de carro y cualquier código html aparezca sin ser interpretado de esta forma:



Código PHP:
echo (nl2br(htmlentities($row_textosblog['introduccion']))); 

y me funciona... pero además necesito que sí se pueda poner los textos en negrita y eso y utilizo el str_replace así en el formulario la gente puede meter el texto entre [-b-] y [-/b-] para que cuando se muestre quede en negrita

Código PHP:
$texto="el texto sacado de la base de datos";
$texto=str_replace("[-b-]","<b>",$texto);
$texto=str_replace("[-/b-]","</b>",$texto);
echo 
$texto

y he intentado unir lo anterior de dos formas, pero ninguna funciona, como podría hacerlo??

estas son las formas:

1.

Código PHP:
$texto="nl2br(htmlentities($row_textosblog['introduccion']))";
$texto=str_replace("[-b-]","<b>",$texto);
$texto=str_replace("[-/b-]","</b>",$texto);
echo 
$texto
2


Código PHP:
        function ponertexto() {
        echo (
nl2br(htmlentities($row_textosblog['introduccion'])));
        }


$texto="ponertexto()";
$texto=str_replace("[-b-]","<b>",$texto);
$texto=str_replace("[-/b-]","</b>",$texto);


echo 
$texto

na, que no me funciona, en su lugar aparece eso de ponertexto()

como puedo hacerlo??


gracias.
  #2 (permalink)  
Antiguo 21/04/2003, 16:48
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Tus problemas son las comillas:

Caso 1:
Código PHP:
$texto=nl2br(htmlentities($row_textosblog['introduccion']
));

$texto=str_replace("[-b-]","<b>",$texto);

$texto=str_replace("[-/b-]","</b>",$texto);

echo 
$texto
Si al principio pones las comillas al nl2br(), no se ejecuta la funcion, sino que el contenido de texto seria la cadena'nl2br(...'.

Caso 2:
Código PHP:
function ponertexto() {
global 
$row_textosblog;

        return  (
nl2br(htmlentities($row_textosblog['introduccion'
])));

        }





$texto=ponertexto();

$texto=str_replace("[-b-]","<b>",$texto);

$texto=str_replace("[-/b-]","</b>",$texto);





echo 
$texto
En este caso, ademas de las comillas, la funcion solo mandaba al navegador el texto. Para recoger ese valor, tienes que usar el return. Ademas, $row_textoblog no esta definido dentro de la funcion, sino fuera. Para poder acceder a el dentro de la funcion, debes usar global. Aunque esta no es la mejor fomar de hacerlo, ya que obligas a que siempre que quieras usar la funcion, exista una variable llamada $row_textoblog o crear una nueva funcion con otra variable. La forma correcta de hacerlo con funciones es:
Código PHP:
function ponertexto($texto_a_cambiar) {

        return (
nl2br(htmlentities($texto_a_cambiar)));

        }





$texto=ponertexto($row_textoblog['introduccion']);

$texto=str_replace("[-b-]","<b>",$texto);

$texto=str_replace("[-/b-]","</b>",$texto);





echo 
$texto
Y un consejo, antes de correr, aprende a andar.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:00.