Foros del Web » Programando para Internet » PHP »

Consulta sobre strtok en php

Estas en el tema de Consulta sobre strtok en php en el foro de PHP en Foros del Web. Tengo una cadena como esta: @marca país #numero [tipo de modo][CT:13/TT:5] by midominio.com Necesito quedarme con: país #numero [tipo de modo] El @marca y by ...
  #1 (permalink)  
Antiguo 19/03/2015, 10:02
Avatar de FaNaTyCk  
Fecha de Ingreso: enero-2008
Mensajes: 54
Antigüedad: 16 años, 10 meses
Puntos: 2
Pregunta Consulta sobre strtok en php

Tengo una cadena como esta:

@marca país #numero [tipo de modo][CT:13/TT:5] by midominio.com

Necesito quedarme con:

país #numero [tipo de modo]

El @marca y by midominio.com lo quito con str_replace

Ahora mi problema es que los datos de [CT:13/TT:5] cambian todo el tiempo, ya que son estadísticas en tiempo real, entonces str_replace ya no me sirve, bueno.. dije voy a utilizar strtok, lo cual se acerca mucho.. hice

strtok($Info['HostName'], ']');

donde $Info['HostName'] es igual a @marca país #numero [tipo de modo][CT:13/TT:5] by midominio.com

El problema es que no sé como detectar el segundo ], para que no me quede:

país #numero [tipo de modo

Obviamente si pongo [ me va a quedar

país #numero

y no es lo que busco, el resultado final que necesito es:

país #numero [tipo de modo]

Desde ya, Gracias.
  #2 (permalink)  
Antiguo 19/03/2015, 10:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Consulta sobre strtok en php

Lo mejor para tu caso es usar expresiones regulares:
Código PHP:
Ver original
  1. $txt = ' @marca país #numero [tipo de modo][CT:13/TT:5] by midominio.com ';
  2. $rgx = '/(@.+?\[.+?\])/';
  3.  
  4. var_dump(preg_match($rgx, $txt, $matches), $matches);
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: Ninguno
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 14:05.