Ver Mensaje Individual
  #15 (permalink)  
Antiguo 22/05/2011, 10:46
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: no consigo funcionar codigo php

Bueno esto hice, porque no tenía nada que hacer
Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * Nombre del archivo
  4.  */
  5. $file = 'a.txt';
  6.  
  7. /**
  8.  * Verifica si existe un id, si no crea uno genérico, por defecto 0
  9.  */
  10. $currentId = array_key_exists('id', $_GET) ? $_GET['id'] : 0;
  11.  
  12. /**
  13.  * Verifica si existe el archivo, si no, lo crea
  14.  */
  15. if(!file_exists($file)){
  16.     file_put_contents($file, "$currentId,0");
  17. }
  18.  
  19. /**
  20.  * Crea array conforme a las líneas que exista
  21.  */
  22. $rows = file($file);
  23.  
  24. /**
  25.  * Valor booleano para ver si existe el id en el array
  26.  * por defecto true, si existe, en el foreach se
  27.  * modificará.
  28.  */
  29. $notInArray = true;
  30.  
  31.  
  32. /**
  33.  * Modificamos la variable $rows a través de referencía &$v
  34.  */
  35. foreach($rows as &$v){
  36.     /**
  37.      * Tomamos los valores que necesitamos
  38.      */
  39.     list($txtId, $counter) = explode(',', $v);
  40.     if($txtId == $currentId){
  41.         /**
  42.          * Necesitamos indicar que el valor es un entero para que
  43.          * funcione el autoincrementable
  44.          */
  45.         $counter = (int)$counter;
  46.         $v = $txtId . ',' . ++$counter;
  47.         $notInArray = false;
  48.     }
  49. }
  50.  
  51. /**
  52.  * Importante el quitar la referencia, por si se usa
  53.  * nuevamente la variable $v, así no hay modificación en el array
  54.  */
  55. unset($v);
  56.  
  57. /**
  58.  * Esto es cuando no existe el id en el archivo
  59.  */
  60. if($notInArray){
  61.     $rows[] = "$currentId,1";
  62. }
  63.  
  64. /**
  65.  * Implode crea "returns" de más, necesitamos uno entre cada valor
  66.  */
  67. $data = str_replace(PHP_EOL . PHP_EOL, PHP_EOL, implode(PHP_EOL, $rows));
  68.  
  69. /**
  70.  * Añadimos el valor en el archivo de nuevo
  71.  */
  72. file_put_contents($file, $data);
  73. print_r(file($file));
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos