Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]wrzucenie pliku txt do bazy
Forum PHP.pl > Forum > Przedszkole
shtoc
CZesc mam plik z synonimami słow ktory wyglada mniejwiecej tak :

slowo;slowo1;slowo2 slowo3;slowo4 itd...

pomiedzy roznymi synonimami w tym przypadku pomiedzy slowo2 i slowo3 jest znak enter.
jak zrobic żeby wyswietlalo sie to na stronie tak

slowo;slowo1;slowo2
slowo3;slowo4
itd....

a nie w jednej lini.

czy do tego trzeeba uzyc wyrazen regolarnych questionmark.gif

i jeszcze chcialbym to wrzucic do bazy w forme
ID slowo
1 slowo;slowo1;slowo2
itd..
decha-design
1. wyrażenia regularne nie potrzebne, wystarczy str_replace" title="Zobacz w manualu PHP" target="_manual i zamień znak nowego wiersza na spację i po sprawie ... a wyświetlanie w 3 kolumnach, możesz zrobić to w tabelce w pętli, i jeżeli $i % 3 = 0 to tworzyć nowy wiersz (<tr>)

2. Odczytujesz caly plik po jednym wierszu do tablicy i robisz z tego zapytania... file" title="Zobacz w manualu PHP" target="_manual

  1. INSERT INTO `cos` (id, slowo) VALUES (NULL, $word)
Maciekbjw
Witaj,

http://pl.php.net/explode

  1. <?php
  2. $dane = explode(';',$zawartosc_pliku);
  3. print_r($dane); //sprawdzasz co zawiera tablica
  4. ?>


a jeśli masz entery, to explode('\n',$zawartosc_pliku); itd...

Pozdrawiam.
shtoc
sprawdzilem spsob Maciekbjw to mi daje taki wynik :

Array ( [0] => 60 minut;godzina abak;abakus abat;opat abażur;klosz;lampion ABC;abecadło;alfabet itd....
a chodzilo mi o to zeby bylo :

60 minut;godzina
abak;abakus
abat;opat
abażur;klosz;lampion
ABC;abecadło;alfabet
itd

zeby synonimy byly w jednym wierszu a nowe synonimy juz w nastepnym
zeby to potem wpiac do bazy tez w takiej kolejności
erix
Cytat
a jeśli masz entery, to explode('\n',$zawartosc_pliku); itd...

tongue.gif
bim2
  1. <?php
  2. $sText = '60 minut;godzina abak;abakus abat;opat abażur;klosz;lampion ABC;abecadło;alfabet';
  3. $aText = explode(' ', $sText);
  4. foreach($aText AS $v)
  5. {
  6.   $tmp = explode(';', $v);
  7.   echo $tmp[0].' - '.$tmp[1].'<br />';
  8. }
  9. ?>
shtoc
Cytat(erix @ 2.01.2009, 12:47:10 ) *
tongue.gif


tak tez zrobilem!!i wynik podalem exclamation.gif

polecenie file podane przez decha-design robi to fajnie wrzuca w tablice poszczegolne wiersze exclamation.gif
o to mi chodzilo!!

teraz tylko zapakowac te wiersze do bazy!!

chcialem to zrobic tak
  1. <?php
  2. $plik = file(&#092;"d:synonimysynonimy.txt\");
  3.  
  4. //print_r ($plik);
  5.  
  6. foreach ($plik as $tmp)
  7. {
  8. $sql = &#092;"INSERT INTO synonimy (`slowa`) VALUES (:slowa)\";
  9. $statement = $pdo->prepare($sql);
  10. $statement->bindValue(':slowa', $tmp, PDO::PARAM_STR);
  11. }
  12. ?>


ale nie dorzuca rekordow do bazy questionmark.gif

nie aktualne!! zapomnialem dodac :
$statement->execute();

mam jeszcze jeden problem :/ kodowanie znakow jest rozwalone.
baze ustawilem na utf8_general_ci i jak tak pobiore to rozwala mi znaki
probowalem jeszcze dodac w skrypcie
  1. <?php
  2. $pdo ->query("SET NAMES utf8");
  3. ?>

ale to wogole robi jakis kosmos i jak napotka przy dodawaniu slow na polskie znaki to ucina slowo i dalsze wystepujace po nim questionmark.gif

jakies rady??

decha-design
sprawdź jakie masz kodowanie w tym pliku tekstowym, bo to też ważne ... skorzystaj np. z programu Gżegżółka ... czy jak mu tam, ponoć zmienia kodowanie haha.gif
shtoc
ten programik pokazuje ze plik jest kodowany jako
Kodowanie: ISO 8859-2 (Europa Środkowa)

jakie kodowanie odpowiada temu w mysql questionmark.gif
phpion
Cytat(shtoc @ 2.01.2009, 16:25:31 ) *
Kodowanie: ISO 8859-2 (Europa Środkowa)

jakie kodowanie odpowiada temu w mysql questionmark.gif

latin2
shtoc
pomoglo smile.gif przestawilem baze na latin2_general_ci
i w skrypcie dodalem
  1. <?php
  2. $pdo ->query("SET NAMES latin2");
  3. ?>

i smiga!!
dzieki!!
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.