Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: czytanie uploada
Forum PHP.pl > Forum > Przedszkole
maxxxta
Hej mam dosc prosty problem ale jakos nie moge sobie z nim poradzic.
Chce zrobic cos podobnego jak phpmyadminie czy innych podobnych programach czyli wrzucanie do bazy z pliku po kolei roznych "querów". Jak na razie wszytsko mam obcykane skrypt dziala jezeli w kodzie umieszcze nazwe pliku i teraz pojawia sie problem. Mianowicie chce uplodowac , obsugiwac plik (czyli czytac linia po linii ), ale cos mi nie dziala to znaczy nie chce tego pliku zapisywac na dysku tylko przeczytać cały. Czy da się coś takiego zrobić?? Reszte mniej wiecej mam opracowane.


Pokażę kod.....tylko proszę bez tyr , że mało czytelny smile.gif

  1. <?php
  2. require_once('./main.conf.php');
  3. require_once($adodbDir.'adodb.inc.php');
  4. /////////////////////funkcje
  5. function getline ($handle) {
  6.  while (!feof($handle)) {
  7.  $char = fgetc($handle);
  8.  if ($char == &#092;";\") {
  9.  $char2 = fgetc($handle);
  10.  if ($char2 != &#092;";\") {
  11.  fseek ($handle,-1,SEEK_CUR);
  12.  }
  13.  break;
  14.  }
  15.  else {
  16.  $buffer .= $char;
  17.  }
  18.  }
  19.  return $buffer;
  20. } 
  21.  
  22.  
  23. function gen_www()
  24. {
  25.  $time = explode(&#092;" \", microtime());
  26.  $usec = (double)$time[0];
  27.  $sec = (double)$time[1];
  28.  return $sec + $usec;
  29. }
  30.  
  31. ///////////
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39. $start = gen_www();
  40. if(!$db -> dbConnect())
  41. {
  42. $smarty -> assign('error',&#092;"Błąd połaczenia z bazą\");
  43. $smarty -> assign('fileToInclude', 'error.tpl'); // to tylko chwilowo bo nie ma template na strone tytulawa
  44. $smarty->assign(&#092;"links\",$links);
  45. $smarty -> display('main.tpl');
  46. return;
  47. }
  48. else
  49. {
  50.  
  51. if($_FILES['userfile']['tmp_name'])
  52. {
  53. $f=fopen($_FILES['userfile']['tmp_name'],&#092;"r\");
  54.  
  55.  
  56. while (!feof($f)) 
  57. {
  58.  
  59. $query = getline($f);
  60. $db->dbExecute($query);
  61. }
  62.  
  63.  
  64. fclose($f);
  65. echo &#092;"<br><br>Dane dodane<br><br>\";
  66. }
  67. else
  68. {
  69.  
  70.  
  71.  
  72. echo &#092;"Nie ma pliku\";
  73. }
  74. }
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89. $end = gen_www();
  90. $run = $end - $start;
  91. echo &#092;"Strona wygenerowana w \" . substr($run, 0, 5) . \" sek.\";
  92.  
  93.  
  94.  
  95. ?>
Darti
moze dla pewnosci posluz sie funkcja is_uploaded_file() oraz move_uploaded_file()
pozdrawiam
maxxxta
Hmm...tak ale ja nie chce go nigdzie zapisywać....w tym problem...poza tym tam gdzie wykonuje execute while robi sie w nieskonczonosc nie wiem dlaczego mimo , ze szukam end of file
Darti
Cytat(maxxxta @ 2005-03-31 19:36:46)
execute while robi sie w nieskonczonosc nie wiem dlaczego

jak na moj gust to funkcja getline nie przewiduje, ze znak EOF moze byc zaraz za (w tej samej linii) co ostatnie query. Chyba ze sie myle to powiedzcie.
maxxxta
  1. <?php
  2.  
  3. require( &#092;"adodb/adodb.inc.php\");
  4. require( &#092;"adodb/adodb-xmlschema.inc.php\" );
  5.  
  6. function getline ($handle) {
  7.  while (!feof($handle)) {
  8.  $char = fgetc($handle);
  9.  if ($char == &#092;";\") {
  10.  $char2 = fgetc($handle);
  11.  if ($char2 != &#092;";\") {
  12.  fseek ($handle,-1,SEEK_CUR);
  13.  }
  14.  break;
  15.  }
  16.  else {
  17.  $buffer .= $char;
  18.  }
  19.  }
  20.  return $buffer;
  21. } 
  22.  
  23.  
  24. function gen_www()
  25. {
  26.  $time = explode(&#092;" \", microtime());
  27.  $usec = (double)$time[0];
  28.  $sec = (double)$time[1];
  29.  return $sec + $usec;
  30. }
  31.  
  32. $start = gen_www();
  33.  
  34. $platform = 'postgres';
  35. $dbHost = '';
  36. $dbName = 'iboi2';
  37. $dbUser = 'pgsql';
  38. $dbPassword = 'pgsql';
  39. $filename = 'hist_a.iboi';
  40.  
  41. $db = ADONewConnection( $platform );
  42. $db->Connect( $dbHost, $dbUser, $dbPassword, $dbName );
  43. //$db->debug = true;
  44.  
  45.  
  46. $i = 0;
  47. $fp = fopen($filename,'r');
  48.  
  49.  
  50.  
  51.  
  52. while (!feof($fp)) {
  53.  
  54. $mm = getline($fp);
  55. $db->Execute($mm);
  56.  
  57. }
  58.  
  59.  
  60.  
  61.  
  62.  
  63. $end = gen_www();
  64. $run = $end - $start;
  65. echo &#092;"Strona wygenerowana w \" . substr($run, 0, 5) . \" sek.\";
  66. echo &#092;"<br><br>Dane dodane\";
  67. fclose($fp);
  68.  
  69.  
  70.  
  71. ?>




kurcze ale ten plik dziala bez zarzutu, dlatego cos mi tutaj nie gra z uploadem, albo odczytem pliku ktory przesylam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.