遇到php的轉碼問題,差點沒折磨死我,無論我調用項目中的那些函數,都白做功夫,可能是掉錯了,不知道,到網上找了好多,終於,終於,被我找到了:
iconv("UTF-8","gb2312",$username);
就是這個,我遇到的問題是這樣的:
我要利用session的username,在config.php頁,我可以得到,賦值給變量
$username=$_SESSION['user_name'];
$fromuser=$username;
然後要把這個值傳到另一個頁,再保存到數據庫,從config.php到newmessage.php頁就遇到麻煩了,
<input type="hidden" name="fromuser" id="fromuser" value="<?php echo $fromuser; ?>"/>
按上面的寫法,值傳到newmessage.php頁就出現亂碼了。說一下,我的整個系統是utf-8編碼,而
config.php是gb2312(我也不清楚為什麼把config.php編碼直接改成utf-8就直接出現亂碼,反正得是
gb2312或是gbk的),所以就需要轉碼了,把username在config.php直接轉成gb2312,費了九牛二虎之力
好不容易找到這個瘋狂代碼,我的寫法是這樣的:
$fromuser=iconv("UTF-8","gb2312",$username);
===============================================================
騰訊的IP地址API接口地址:http://fw.qq.com/ipaddress
返回的是數據格式為:var IPData = new Array(“114.218.183.139″,””,”江蘇省”,”蘇州市”);
使用JS代碼進行調取:
查看源代碼打印幫助
1 <script language="javascript" type="text/javascript" src="http://fw.qq.com/ipaddress"></script>
2
3 <script>document.write("你的IP是:"+IPData[0]+",來自:"+IPData[2]);</script>
使用PHP解析的方法:
查看源代碼打印幫助
01 <?php
02 function getIpPlace(){
03 $ip=file_get_contents("http://fw.qq.com/ipaddress");
04 $ip=str_replace('"',' ',$ip);
05 $ip2=explode("(",$ip);
06 $a=substr($ip2[1],0,-2);
07 $b=explode(",",$a);
08 return $b;
09 }
10 $ip=getIpPlace();
11 print_r($ip);
12 ?>
處理後輸出的是一個數組。
另:
新浪的IP地址查詢接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
新浪多地域測試方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42
搜狐IP地址查詢接口(默認GBK):http://pv.sohu.com/cityjson
搜狐IP地址查詢接口(可設置編碼):http://pv.sohu.com/cityjson?ie=utf-8
搜狐另外的IP地址查詢接口:http://txt.go.sohu.com/ip/soip
摘自 Hurry的專欄