Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema al sustituir palabras en una variable

Estas en el tema de Problema al sustituir palabras en una variable en el foro de PHP en Foros del Web. Hola, tengo un problemilla, me voy a intentar explicar lo mejor posible: Necesito sustituir algunas palabras, para traducir una fecha. He probado muchas cosas, pero ...
  #1 (permalink)  
Antiguo 20/06/2014, 08:25
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Problema al sustituir palabras en una variable

Hola, tengo un problemilla, me voy a intentar explicar lo mejor posible:
Necesito sustituir algunas palabras, para traducir una fecha. He probado muchas cosas, pero no he conseguido nada.
De momento tengo esto:
Código PHP:
<?php
$prueba 
'<time datetime="'.date('c'$expulsionActual['expulsion-expira_en']).'">'.segundos_a_texto_legible($expira).'</time>';
echo 
$prueba//Esto me devuelve: 1 Week, 1 Day, 21 Hours, 39 Minutes, 29 Seconds

$viejaPalabra "Week";
$nuevaPalabra "Semana";
$prueba str_replace($viejaPalabra $nuevaPalabra $prueba);
$viejaPalabra2 "Day";
$nuevaPalabra2 "D&iacute;a";
$prueba str_replace($viejaPalabra2 $nuevaPalabra2 $prueba);
$viejaPalabra3 "Hours";
$nuevaPalabra3 "Horas";
$prueba str_replace($viejaPalabra3 $nuevaPalabra3 $prueba);
$viejaPalabra4 "Minutes";
$nuevaPalabra4 "Minutos";
$prueba str_replace($viejaPalabra4 $nuevaPalabra4 $prueba);
$viejaPalabra5 "Seconds";
$nuevaPalabra5 "Segundos";
$prueba str_replace($viejaPalabra5 $nuevaPalabra5 $prueba);
echo 
$prueba// Esto me sigue devolviento lo mismo: 1 Week, 1 Day, 21 Hours, 39 Minutes, 29 Seconds

?>
No sé si estoy haciendo algo mal, les doy gracias desde ya y a ver si me pueden ayudar. Saludos
  #2 (permalink)  
Antiguo 20/06/2014, 08:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al sustituir palabras en una variable

No me imagino que harás mal, el código funciona perfecto así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $prueba = '1 Week, 1 Day, 21 Hours, 39 Minutes, 29 Seconds';
  4.  
  5. $viejaPalabra = "Week";
  6. $nuevaPalabra = "Semana";
  7. $prueba = str_replace($viejaPalabra , $nuevaPalabra , $prueba);
  8. $viejaPalabra2 = "Day";
  9. $nuevaPalabra2 = "D&iacute;a";
  10. $prueba = str_replace($viejaPalabra2 , $nuevaPalabra2 , $prueba);
  11. $viejaPalabra3 = "Hours";
  12. $nuevaPalabra3 = "Horas";
  13. $prueba = str_replace($viejaPalabra3 , $nuevaPalabra3 , $prueba);
  14. $viejaPalabra4 = "Minutes";
  15. $nuevaPalabra4 = "Minutos";
  16. $prueba = str_replace($viejaPalabra4 , $nuevaPalabra4 , $prueba);
  17. $viejaPalabra5 = "Seconds";
  18. $nuevaPalabra5 = "Segundos";
  19. $prueba = str_replace($viejaPalabra5 , $nuevaPalabra5 , $prueba);
  20. echo $prueba;
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 20/06/2014, 11:14
 
Fecha de Ingreso: mayo-2014
Mensajes: 6
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Problema al sustituir palabras en una variable

Pues la verdad yo tampoco me imagino que está mal, no sé si alguien sabe otra forma de hacerlo.
He probado tu código y funciona cuando creas la variable así:
Código PHP:
$prueba '1 Week, 1 Day, 21 Hours, 39 Minutes, 29 Seconds'
Sin embargo cuando lo hago así, no sustituye nada.
Código PHP:
$prueba '<time datetime="'.date('c'$expulsionActual['expulsion-expira_en']).'">'.segundos_a_texto_legible($expira).'</time>'
Pero al final lo he solucionado a mi manera, con un poquito de paciencia y lógica. Busqué por el código y encontré una variable que almacenaba el tiempo en segundos, luego encontré por google una función que servía para convertir segundos en texto legible (semanas, dias, horas, minutos, segundos) y he sustituído donde ponía week por semana y ya.
La dejo por aquí:
Código PHP:
/*
 * Convertir segundos a texto legible.
 *
 */
function conversor_segundos($secs)
{
        
$units = array(
                
"semana"   => 7*24*3600,
                
"dia"    =>   24*3600,
                
"hora"   =>      3600,
                
"minuto" =>        60,
                
"segundo" =>         1,
        );

    
        if ( 
$secs == ) return "0 segundos";

        
$s "";

        foreach ( 
$units as $name => $divisor ) {
                if ( 
$quot intval($secs $divisor) ) {
                        
$s .= "$quot $name";
                        
$s .= (abs($quot) > "s" "") . ", ";
                        
$secs -= $quot $divisor;
                }
        }

        return 
substr($s0, -2);

Para llamarla:
Código PHP:
conversor_segundos(valorquequieras); 
  #4 (permalink)  
Antiguo 20/06/2014, 11:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Problema al sustituir palabras en una variable

Eso si es redundante porque str_replace() acepta arrays
__________________
Salu2!

Etiquetas: palabras, sustitución, variable
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 21:12.