如果你會點php基礎我可以給你點參考意見
目前創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、網(wǎng)站托管維護、企業(yè)網(wǎng)站設計、丹鳳網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
一個是,你這個文件肯定是txt格式的
$fp = fopen('xxx.txt','r');//用只讀方式打開文件
$getsource = fgets($fp);//讀取第一行,主要是用于去除第一行
while(!feof($fp)){
$getsource = fgets($fp);//獲取有用數(shù)據(jù)
$insource = explode(" ", $getsource);//把一行文字變成數(shù)組,按符號分割
/*---------------下面寫數(shù)據(jù)存儲的sql-------------------*/
......
/*---------------上面寫數(shù)據(jù)存儲的sql-------------------*/
}
我默認為你對php和mysql是熟悉的,不然你也不會打算用php寫這個程序,我只提供你點思路,php對文件操作不熟悉的話你可以參考下這篇文章
;id=77class=2
希望對你有幫助
function?Encode16T10($str){
preg_match_all("/\w/",$str,$date);
$date=$date['0'];
foreach($date?as?$key=$val){
switch($val){
case?a:case?A:
echo?10;
break;
case?b:case?B:
echo?11;
break;
case?c:case?C:
echo?12;
break;
case?d:case?D:
echo?13;
break;
case?e:case?E:
echo?14;
break;
case?f:case?F:
echo?15;
break;
default:
echo?$val+10;
}
}
}
Encode16T10("a2c");//里面的a2c是你可以隨便改的,只要是16進制數(shù)就行,看輸出結(jié)果是否符合你的要求
很簡單,用循環(huán),你那樣用只能有一條記錄,建議多看看php手冊,對自己有好處
while ($result= mysql_fetch_array($result, MYSQL_NUM)) {
print_r($result);
}
php+mysql數(shù)據(jù)時我們必須保證提交到數(shù)據(jù)庫的編碼與mysql編碼是一致的這樣才可以保存中文不出現(xiàn)問號亂碼問題,下面我先整理兩個讓mysql與頁面保證編碼一致的方法。
解決中文插入數(shù)據(jù)庫亂碼的方法:
直接把中文轉(zhuǎn)變成utf-8格式,大多是這個問題導致的。
代碼如下復制代碼
$str = iconv('gbk','utf-8',$str);
如果還不行檢查網(wǎng)頁編碼是否正確:
代碼如下復制代碼
?php
header("Content-Type:text/html;charset=utf-8");
?
建表:
代碼如下復制代碼
Create TABLE `net_city` (
`cityid` smallint(4) NOT NULL auto_increment,
`cityname` varchar(80) NOT NULL default '',
`provinceid` smallint(2) NOT NULL default '0',
`inarea` varchar(5000) NOT NULL default '',
`outarea` varchar(5000) NOT NULL default '',
`tel` varchar(400) NOT NULL default '',
PRIMARY KEY (`cityid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
PHP里的代碼:
$conn=mysql_connect("localhost", "用戶名", "密碼");
mysql_query("set names 'utf8'",$conn);
mysql_select_db(" 數(shù)據(jù)名",$conn);
$exec="insert into net_city (cityname,inarea,outarea,tel) values ('".$link_cityname."','".$link_inarea."','".$link_outarea."','".$link_tel."')";
$result=mysql_query($exec,$conn);
if($result){
echo "1";
}else{
echo "0";
}
mysql_close($conn);
后來我試了試全部都用成gbk的,也是可以的~
在查詢數(shù)據(jù)時我們直接使用mysql_query()來設置
mysql_query("SET NAMES GBK"); //GBK處為編碼設置
例子
下面是 "insert.php" 頁面的代碼:
代碼如下復制代碼
?php$con = mysql_connect("localhost","peter","abc123");
if (!$con) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("my_db", $con);
mysql_query("SET NAMES GBK"); //GBK處為編碼設置
$sql="INSERT INTO person (FirstName, LastName, Age)VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$con))
{ die('Error: ' . mysql_error()); }
echo "1 record added";
mysql_close($con)
?
還有一種可能是編碼錯誤,包括頁面編碼及數(shù)據(jù)庫編碼。
可能導致錄入數(shù)據(jù)亂碼。
是不是你數(shù)據(jù)庫那個字段給設置成了int型了(這種情況基本沒有可能,因為如果不是int型它會報錯)?或者是你在向數(shù)據(jù)庫插入的時候,將a,b,c轉(zhuǎn)換成了int型?最好把你的程序代碼貼出來,也好幫你找錯誤。