Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/10/2013, 05:47
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Problema al sustituir subcadena/tag por otra cadena

La idea es que la siguiente función genere sobre el usuario:
un amigo aleatorio, 5 preguntas aleatorias sobre este amigo, que seleccione todas las tags de la BD y sustituya en las preguntas aleatorias escogidas las tags por los datos de dicho amigo para personalizar las preguntas.

Todo lo hace bien, excepto la sustitución de las tags por los datos del amigo.

Excepto las tags, y los números aleatorios, los datos están en sesión.

El código es el siguiente, he leído el manual sobre las funciones in_array() y str_ireplace(); y no entiendo por qué no funciona.

Código PHP:
Ver original
  1. function play_start()
  2. {
  3.     if ( isset( $_SESSION['user_twitter'] ) AND $_SESSION['twitter_status'] == true )
  4.     {
  5.         //obtengo los amigos en una sesion
  6.         gettruefriendslist();
  7.        
  8.         //instancio la clase personal
  9.         $newget                     = new Twitter_main();
  10.        
  11.         //obtengo un numero de amigo aleatorio
  12.         $getfriendrandom            = $newget->getrandomvalue( $_SESSION['gettruefriendslist'] );
  13.        
  14.         //guardo el amigo aleatorio en sesion
  15.         $_SESSION['randomresult']['friend'] = $_SESSION['gettruefriendslist'][$getfriendrandom];
  16.        
  17.         //instancio la clase Conectar
  18.         $newget2                    = new Conectar();
  19.        
  20.         //selecciono las preguntas y las guardo en array
  21.         $select                     = "SELECT * FROM questions";
  22.        
  23.         $result_conexion            = $newget2->conectar( $select );
  24.  
  25.         while ($result = mysqli_fetch_array( $result_conexion ))
  26.         {
  27.             $getquestions[] = $result;
  28.         }
  29.        
  30.         $_SESSION['randomresult']['questions'] = array();
  31.        
  32.         //obtengo de la BD todos los tags y los meto en array
  33.         $select = "SELECT * FROM tags";
  34.         $get    = $newget2->conectar( $select );
  35.         while ( $result_conexion = mysqli_fetch_array( $get ) )
  36.         {
  37.             $tags[] = $result_conexion['tag'];
  38.         }
  39.        
  40.         //busco 5 preguntas aleatorias
  41.         //y sustituyo [nombre] por el valor que deseo finalmente
  42.         for($i=0; $i<=4 ; $i++)
  43.            
  44.         {
  45.             //obtengo 5 numeros aleatorios
  46.             $getquestionrandom      = $newget->getrandomvalue ( $getquestions );
  47.            
  48.             //guardo las preguntas segun los numeros anteriores
  49.             array_push($_SESSION['randomresult']['questions'], $getquestions[$getquestionrandom]);
  50.            
  51.             //busco en las preguntas los tags
  52.             if ( in_array( $tags, $_SESSION['randomresult']['questions'][$i] ) )
  53.             {
  54.                 //reemplazo los tags por el valor y finalmente lo guardo
  55.                 $_SESSION['randomresult']['questions'][$i]['question'] =
  56.                 str_ireplace ( $tags, "@".$_SESSION['randomresult']['friend']['screen_name'],
  57.                   $_SESSION['randomresult']['questions'][$i]['question'] );
  58.             }
  59.         }
  60.     }
  61.        
  62. }

¿Alguien puede ayudarme a entender por qué no funciona?
__________________
Ayúdame a hacerlo por mi mismo.