Foros del Web » Programando para Internet » PHP »

Duda expresiones regulares

Estas en el tema de Duda expresiones regulares en el foro de PHP en Foros del Web. Hola a todos. Quería conseguir lo siguiente con php: Tengo una cadena de texto dentro de la base de datos como la siguiente: "Buena, muy ...
  #1 (permalink)  
Antiguo 26/10/2009, 17:01
 
Fecha de Ingreso: mayo-2008
Mensajes: 198
Antigüedad: 16 años
Puntos: 3
Duda expresiones regulares

Hola a todos.
Quería conseguir lo siguiente con php:
Tengo una cadena de texto dentro de la base de datos como la siguiente:
"Buena, muy buena, regular, mala, muy mala".
Quería que, una vez leído en la base de datos, se muestre con una estructura como la siguiente:

<select name="select">
<option value="buena">Buena</option>
<option value="muybuena">Muy buena</option>
<option value="mala">Mala</option>
<option value="muymala">Muy mala</option>
</select>

Es decír: coger cada valor entre las comas, y pasarlo como un option.
Me imagino que se consigue con alguna función de expresiones regulares pero nunca he hecho esto.
Alguien puede ayudarme?
Muchas gracias!
  #2 (permalink)  
Antiguo 26/10/2009, 18:11
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 14 años, 7 meses
Puntos: 12
Respuesta: Duda expresiones regulares

Si tenes los datos separados por comas, no hace falta usar expresiones...

Yo lo haria asi:

Código php:
Ver original
  1. <?php
  2.  
  3. $string = 'buena, muy buena, regular, mala, muy mala';
  4. $optionString = "\t".'<option value="%s">%1$s</option>'."\r\n";
  5.  
  6. $arrayOptions = explode(',', $string);
  7.  
  8. print '<select name="select">'."\r\n";
  9.  
  10. foreach ($arrayOptions as $option) {
  11.     vprintf($optionString, trim($option));
  12. }
  13.  
  14. print '</select>'."\r\n";
  15.  
  16. ?>

Eso imprime esto:

Código html:
Ver original
  1. <select name="select">
  2.     <option value="buena">buena</option>
  3.     <option value="muy buena">muy buena</option>
  4.     <option value="regular">regular</option>
  5.     <option value="mala">mala</option>
  6.     <option value="muy mala">muy mala</option>
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 16:24.