Retroceder   Foros del Web > Programación para sitios web > PHP
Crea un nuevo usuario o inicia sesión utilizando tu cuenta de Facebook
Connect with Facebook

Respuesta
 
Herramientas Desplegado
Antiguo 20-nov-2008, 11:03   #1 (permalink)
Alejo18 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Enviar un mensaje por MSN a Alejo18
Alejo18 está desconectado
Funcion dentro de preg_replace

Código PHP:
function funcionUper($text){
$text strtoupper($text);
return 
$text;
}
///////
function bbCode($texto){
// Funciona 
$texto preg_replace("/\\[b\\](.+?)\[\/b\]/is",'<b>\1</b>'$text);
// y Eso es lo que no funciona, es decir no toma a funcionUper como una función
$texto preg_replace("/\\[CLAVE\\](.+?)\[\/CLAVE\]/is",funcionUper('\1'), $text);

return 
$texto;

Abrá una forma de hacer funcionar funcionUpder dentro del preg_replace?, alguna idea? e probado con otros métodos pero siempre tienen su contra, como por ejemplo.
Código PHP:
//...
            
$clave preg_match("/\\[CLAVE\\](.+?)\[\/CLAVE\]"$text);

            if(
$clave ){
            
$nuevo preg_replace("/\(\((.+?)\)\)/is",'\1'$text);
            
$texto funcionUper($nuevo);
            } 
return 
$texto
Pero cuando hago eso si encuentra algo con [clave], la funcion coge a todo el texto =S.
La idea es reemplazar todos los textos que contengan [CLAVE]unaclave[/CLAVE] por la clave en mayúsculas.

Última edición por Alejo18; 20-nov-2008 a las 11:08
  Responder Citando
Antiguo 20-nov-2008, 11:13   #2 (permalink)
$this->role('moderador');
GatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra Lassie
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 22.530
GatorV está desconectado
Respuesta: Funcion dentro de preg_replace

http://www.forosdelweb.com/f18/aport...s-pcre-646110/

Saludos
__________________
Blog Web
  Responder Citando
Antiguo 20-nov-2008, 12:20   #3 (permalink)
Alejo18 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Enviar un mensaje por MSN a Alejo18
Alejo18 está desconectado
Respuesta: Funcion dentro de preg_replace

No se tío pero las expresiones ya me las se o mejor dicho se cómo aplicarlas. pero cuando hago esto:
$texto = preg_replace("/\\[CLAVE\\](.+?)\[\/CLAVE\]/is",funcionUper('\1'), $text);
la funcion funcionUper no me funciona (valga la redundancia)
Gracias igual
  Responder Citando
Antiguo 20-nov-2008, 12:39   #4 (permalink)
$this->role('moderador');
GatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra LassieGatorV es mas bueno que la perra Lassie
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 22.530
GatorV está desconectado
Respuesta: Funcion dentro de preg_replace

Ve el aporte necesitas pasar el parámetro "e" para evaluar la función.

Saludos
__________________
Blog Web
  Responder Citando
Antiguo 20-nov-2008, 14:16   #5 (permalink)
Alejo18 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Enviar un mensaje por MSN a Alejo18
Alejo18 está desconectado
Respuesta: Funcion dentro de preg_replace

Le agregué la e para que tome el código pero me lanza un caracter raro " " es un cuadrado =S
Código PHP:
$texto preg_replace("/\\[CLAVE\\](.+?)\[\/CLAVE\]/ise",funcionUper('\1'), $text); 
Warning: Unexpected character in input: '' (ASCII=1) state=1 in C:\AppServ\www\bbcode.php(21) : regexp code on line 1

Linea 21:
Código PHP:
 $text preg_replace("/\\[CLAVE\\](.+?)\[\/CLAVE\]/ise",funcionUper("\1"), $text); 

Última edición por Alejo18; 20-nov-2008 a las 14:23
  Responder Citando
Antiguo 20-nov-2008, 14:22   #6 (permalink)
pateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consola
 
Avatar de pateketrueke
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 5.309
Enviar un mensaje por MSN a pateketrueke
pateketrueke está desconectado
Respuesta: Funcion dentro de preg_replace

amigo, lo que pasa... es que no debes colocar la función como tal, sino en una cadena... para ser evaluada!!



y tu le colocaste la función como tal... ejecutada, demás estas doble-escapando las barras!! (eso también va mal)

pon atención... hasta necesita un return ... ojo!

Código PHP:
$texto preg_replace("/\[CLAVE\](.+?)\[\/CLAVE\]/ise","return funcionUper('\1')"$text); 


y ahora?
__________________
== Tiempo por Energía es Igual a Arte ==
  Responder Citando
Antiguo 20-nov-2008, 14:37   #7 (permalink)
Alejo18 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Enviar un mensaje por MSN a Alejo18
Alejo18 está desconectado
Respuesta: Funcion dentro de preg_replace

ME sigue apareciando ese signo raro del cuadrado
En realidad no son corchetes con las que se encierra, son "=="
En el post se escribe de esta manera

==clave==

Ahora quiero convertirla en esto:

CLAVE

Si.. con un Link la funcion no solo tiene que pasarlo a mayúsculas si no también un link y reemplazando subguiones.
Ésto es lo que hago: :(
Código PHP:
$text preg_replace("/\=\=(.+?)\=\=/ise","laFuncion('\1')"$text); 
  Responder Citando
Antiguo 20-nov-2008, 14:54   #8 (permalink)
Alejo18 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Enviar un mensaje por MSN a Alejo18
Alejo18 está desconectado
Respuesta: Funcion dentro de preg_replace

Edito ésta es la función:
Código PHP:
function laFuncion($n){
$i ucwords($n);
$l str_replace("_","",$i);
$z "<a href=\"Clave_".$l.".html\">".$i."</a>";
return 
$z;

  Responder Citando
Antiguo 20-nov-2008, 14:58   #9 (permalink)
pateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consola
 
Avatar de pateketrueke
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 5.309
Enviar un mensaje por MSN a pateketrueke
pateketrueke está desconectado
Respuesta: Funcion dentro de preg_replace

Código PHP:
$text preg_replace_callback("/==([^=]+)==/"'laFuncion'$text); 
y, ahora... ¿cual es el problema??
__________________
== Tiempo por Energía es Igual a Arte ==
  Responder Citando
Antiguo 20-nov-2008, 15:10   #10 (permalink)
Alejo18 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Enviar un mensaje por MSN a Alejo18
Alejo18 está desconectado
Respuesta: Funcion dentro de preg_replace

Solo agrego 'laFuncion' ?
Tira un array =S
  Responder Citando
Antiguo 20-nov-2008, 15:31   #11 (permalink)
pateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consolapateketrueke merece que le prestes tu consola
 
Avatar de pateketrueke
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 5.309
Enviar un mensaje por MSN a pateketrueke
pateketrueke está desconectado
Respuesta: Funcion dentro de preg_replace

mmm.... si, es por el callback ¿porque no revisas las funciones del manual??

Código PHP:
function laFuncion($n){
$i ucwords($n[1]); // listo ??
$l str_replace("_","",$i);
$z "<a href=\"Clave_".$l.".html\">".$i."</a>";
return 
$z;

__________________
== Tiempo por Energía es Igual a Arte ==
  Responder Citando
Antiguo 20-nov-2008, 15:50   #12 (permalink)
Alejo18 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Enviar un mensaje por MSN a Alejo18
Alejo18 está desconectado
Respuesta: Funcion dentro de preg_replace

$i = ucwords($n[1]);

Aleluya, con eso tomará el dato del array no ?

La desventaja es que si no quiero pasar el texto por bbcode, si no la funcion directa echo laFuncion("clave"), ya nmo lo tomará

Pero igual quedo perfecto, Muchas gracias pakete!

Última edición por Alejo18; 20-nov-2008 a las 15:56
  Responder Citando
Antiguo 20-nov-2008, 16:01   #13 (permalink)
oso96_2000 se está ganando tu confianza
 
Avatar de oso96_2000
 
Fecha de Ingreso: noviembre-2002
Ubicación: Xochimilco x3
Mensajes: 427
Enviar un mensaje por Skype™ a oso96_2000
oso96_2000 está desconectado
Respuesta: Funcion dentro de preg_replace

Hay que pensarle un poquito ;)

Código php:
Ver originalCopiar
  1. function laFuncion($n){
  2. if (is_array($n)) $n = $n[1];
  3. $i = ucwords($n); // listo ??
  4. $l = str_replace("_","",$i);
  5. $z = "<a href=\"Clave_".$l.".html\">".$i."</a>";
  6. return $z;
  7. }
__________________
713869 - Sl gjgql li qlrsm dl jc vcdg.

Sin Ideas - Un poco de todo
  Responder Citando
Antiguo 20-nov-2008, 16:23   #14 (permalink)
Alejo18 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 122
Enviar un mensaje por MSN a Alejo18
Alejo18 está desconectado
Respuesta: Funcion dentro de preg_replace

Cita:
Iniciado por oso96_2000 Ver Mensaje
Hay que pensarle un poquito ;)

Código php:
Ver originalCopiar
  1. function laFuncion($n){
  2. if (is_array($n)) $n = $n[1];
  3. $i = ucwords($n); // listo ??
  4. $l = str_replace("_","",$i);
  5. $z = "<a href=\"Clave_".$l.".html\">".$i."</a>";
  6. return $z;
  7. }
Lol pero que coincidencia, antes ya lo habia pensado si existe una funcion que comprueba si la cadena es un array, lei php y pues la use, pase por aquí para cerrar el caso y con lo que encuentro xDD. Gracias de todos modos.
  Responder Citando
Respuesta
No hay votos aún.
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.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 16:36.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100