有一個TXT檔案,大概300多MB,想要PHP讀取出來,然後分條插入到資料庫,應該怎麼做呢,TXT檔案格式大概是這樣的。應該怎麼樣做呢
wangli # 20100203 # 李四
liwsi # 2015544 # xiaofen
wangli # 20100203 # 李四
liwsi # 2015544 # xiaofen
wangli # 20100203 # 李四
liwsi # 2015544 # xiaofen
wangli # 20100203 # 李四
liwsi # 2015544 # xiaofen
wangli # 20100203 # 李四
liwsi # 2015544 # xiaofen
wangli # 20100203 # 李四
liwsi # 2015544 # xiaofen
這是我自己寫的,但是只是可以讀取出並且顯示除了,不知道怎麼插入資料庫,而且TXT檔案裡面本來是有換行的,但是PHP讀取出來都麼有換行,還有一個問題就是如果用fread($data,1000)這個地方的是1000是指讀取1000個字元,那如果需要一行一行的讀取呢。現在這個TXT是一行一行這樣的,如果說1000個字元這樣子,那有可能最後只是讀取到半行
';
回複討論(解決方案)
$data = '11.txt';$fp = fopen($data, 'r');while($r = fgets($fp)) { $t = join("','", explode(' # ', $r)); $sql = "insert into 表 values ('$t')"; //.... 執行sql}
不過對於 mysql 似乎應該用 LOAD DATA INFILE 指令來完成
PHP code?1234567$data = '11.txt';$fp = fopen($data, 'r');while($r = fgets($fp)) { $t = join("','", explode(' # ', $r)); $sql = "insert into 表 values ('$t')"; //.... 執行sql}
不過對於 mysq……
我按照你的這個,然後開啟這個頁面,直接不顯示,空白的~
$data = '11.txt';$fp = fopen($data, 'r');while($r = fgets($fp)) { echo $t = join("','", explode(' # ', $r)); //$sql = "insert into 表 values ('$t')"; //.... 執行sql}
# 是不用插入到資料庫裡面的,另外如果這個檔案很大,怎麼分割呢
怎麼樣輸出到PHP一行一行來顯示呢,TXT預設換行是\n,這樣的,PHP怎麼匹配出來
你的資料不是按行按列(" # ")做值得嗎?
只有你提供正確的資料和需求,才有可能得到可行的處理方案
$filename="11.txt";$fps=fopen($filename,'r');while(!feof($fps)){$ceshi=fgets($fps);echo $ceshi."
";}fclose($fps);
謝謝版主,我是按照這樣的,然後瀏覽器輸出以後就是和TXT文本一樣顯示出來了,但是如果要插入到資料庫裡面應該怎麼做呢
我資料庫裡面有四個欄位,id,name,time,bak
第一個是ID是auto_increment
其餘三個欄位都是varchar
現在TXT檔案是格式是
lisi # 121015 # 3900
xiaomao # 130205 #2500
lisa # 1258 # ok
我想插入到資料裡面以後的資料是這樣的
id name time bak
1 lisi 121015 3900
2 xiaomao 130205 2500
3 lisa 1258 ok
我沒有弄錯,資料行分隔符號是“ # ”,即 # 號兩邊各有一個空格(真難為你了,不嫌煩嗎?)
補上欄位列表,為
$t = join("','", explode(' # ', $r));
$sql = "insert into 表 ( name, time, bak) values ('$t')";