遇到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> |
3 |
<script>document.write("你的IP是:"+IPData[0]+",來自:"+IPData[2]);</script> |
使用PHP解析的方法:
查看原始碼列印協助
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); |
處理後輸出的是一個數組。
另:
新浪的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
本文連結http://www.cxybl.com/html/wlbc/Php/20130113/36055.html