Foros del Web » Programando para Internet » PHP »

problema: str_replace

Estas en el tema de problema: str_replace en el foro de PHP en Foros del Web. Hola amigos del foro cuando ya casi lo tenia listo se presenta un problema con esto: str_replace si bien es cierto respeta de las minusculas ...
  #1 (permalink)  
Antiguo 22/04/2005, 18:44
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
problema: str_replace

Hola amigos del foro cuando ya casi lo tenia listo se presenta un problema con
esto: str_replace si bien es cierto respeta de las minusculas y mayusculas
pero no cuando existe una palabra dentro de otra (jeje, asi se dice no?)
osea solo quiero que haga los cambios a palabras completas.
espero haberme hecho entender

Código PHP:

<?php
function PonerNegrita($mensaje)
{
    
$mensaje str_replace("auto","<b>auto</b>",$mensaje); //
    
$mensaje str_replace("autoridad","<b>autoridad</b>",$mensaje); //
    
    
$mensaje nl2br($mensaje);
    return 
$mensaje;
}
?>
    
// -----------------------------------------------
    echo PonerNegrita($res["1"]);

y gracias por ayudarme a solucionar estre problemilla

  #2 (permalink)  
Antiguo 22/04/2005, 18:54
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
No se si será la mejor solución, pero así funciona:
Código PHP:
<?php
$msj 
"un auto cruzo con autoridad la calle de mi esquina";
function 
PonerNegrita($mensaje)
{
    
$mensaje str_replace('autoridad',"<b>autoridad</b>",$mensaje); //
    
$mensaje str_replace('auto',"<b>auto</b>",$mensaje); //
    
    
$mensaje nl2br($mensaje);
    return 
$mensaje;
}
?>
<html>
<head>
</head>
<body>
<?=PonerNegrita($msj);?>
</body>
</html>
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #3 (permalink)  
Antiguo 22/04/2005, 20:02
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
gracias sebtev por atender a esta inquietud
la verdad que si funciona pero no se como lo implementaria
a la arquitectura de mi sistema, es un sistema de noticias
el cual que si coincide con la palabra de la base de datos
con la que tengo en la funcion la pone en negrita.
aca pego el script:

Código PHP:
FuncionNegrita.php
---------------------

<?php
############################################
function PonerNegrita($mensaje)
{
    
$mensaje str_replace('autoridad',"<b>autoridad</b>",$mensaje); // ponemos en negrita las coincidencias = (N)
    
$mensaje str_replace('auto',"<b>auto</b>",$mensaje); // (N)
     
    
$mensaje nl2br($mensaje); 
    return 
$mensaje
}
############################################
?>


LeerNota.php
------------

<?
include("conexionBD.php");
include(
"FuncionNegrita.php");

$conn mysql_connect("$hostbd","$loginBaseDatos","$passwordBaseDatos");
mysql_select_db("$nombreBaseDatos");
$q mysql_query("SELECT titulo0, contenido1, titulo2, fecha3, fecha4, fecha5 FROM $NoticiasData WHERE id=$id");
$res mysql_fetch_row($q);
mysql_query("UPDATE $NoticiasData SET hits=hits+1 WHERE id=$id");

echo 
" Titulo noticia: $res[0] <br>
noticia: <br>"
;
// -------------------------------------
echo PonerNegrita($res["1"]);"; ";  // aca muestro toda la noticia
// -------------------------------------

echo "fecha: $res[2], $res[3] de $res[4] de $res[5]";
echo 
" <hr>";

echo 
"
<br><br><br><br>
"
;
?>
gracias nuevamente

Última edición por adex; 23/04/2005 a las 11:18
  #4 (permalink)  
Antiguo 23/04/2005, 14:30
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
no he logrado solucionar este problemilla, me pueden hechar una manita plz...
  #5 (permalink)  
Antiguo 23/04/2005, 20:10
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Segun la función, vas a modificar cada vez q aparezca la palabra "auto" por <b>auto</b> y autoridad por <b>autoridad</b> según texto extraído de la BD.
Debería de funcionar así, porq declaras en tu función dos palabras a modificar, pruebalo, introduce un string en la DB q contenga las dos palabras (como la frase en el ej.) y prueba, si no hace como lo quieres, postea q es lo q sale no el código porq ya lo tenemos.
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #6 (permalink)  
Antiguo 23/04/2005, 21:34
 
Fecha de Ingreso: julio-2003
Ubicación: Puebla
Mensajes: 34
Antigüedad: 20 años, 9 meses
Puntos: 0
el problema esta en que el campo que usas eso es contenido1 no existe un campo mensaje por eso no te funciona el reemplazo porque no hay campo a reemplazar me explico???? cambia los $mensaje por $contenido1 y ademas tienes


echo PonerNegrita($res["1"]);"; ";

creo que los "; "; salen sobrando

o de lo contrario has un $imprimir = PonerNegrita("$res[1]");

echo "$imprimir";

saludos!
  #7 (permalink)  
Antiguo 23/04/2005, 22:26
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Hice tal cual me pusieron los ejemplos pero no cambia en nada
es mas, tampoco me salio algun error.
tal vez sirva en algo esto: las palabras a reemplazar que tengo en la funcion
no solo son dos sin no que es una lista de mas de 80 plalabras
que reemplazan poniendolas en negrita

muchas Gracias
  #8 (permalink)  
Antiguo 24/04/2005, 02:36
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
haber... dejame adivinar...
Código PHP:
<?php
// tu finción así
function PonerNegrita($mensaje)
{
    
$mensaje str_replace("autoridad","<b>autoridad</b>"$mensaje);
    
$mensaje str_replace("auto""<b>auto</b>"$mensaje);
     
    
$mensaje nl2br($mensaje);
    return 
$mensaje;
}

// y la llamas así
echo PonerNegrita($res[1]);
?>
... debe servir... haznos saber los resultados. Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 24/04/2005, 03:01
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola a todos.

Hace algún tiempo se habló de este tema en otro mensaje, creo que la solución que se dio os puede ayudar:

http://www.forosdelweb.com/f18/str_replace-solo-para-palabras-completas-253494/

Saludos,
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 19:59.