这个文件存为:jacker.php
<?php
function drawer($image, $string, $x, $y, $color)
{
$fp = fopen("chs16.fon", "r"); //WIN98中,此文件在:c:/windows/command 下
if (feof($fp))
{
fclose($fp);
return 0;
}
// gbk
$strings = preg_split('/((?:[//x80-//xFF][//x40-//xFF])+)/', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
$isch = false;
for ($p = 0, $count = count($strings); $p < $count; $p ++)
{
if ($isch)
{
$string = $strings[$p];
for ($i = 0, $l = strlen($string) - 1; $i < $l; $i += 2)
{
$qh = ord($string{$i}); // get ascii code
$offset = (94 * ($qh - 0xA0 - 1) + (ord($string{$i + 1}) - 0xA0 - 1)) * 32;
fseek($fp, $offset, SEEK_SET);
$buffer = unpack('n*', fread($fp, 32));
// $buffers[$offset] = $buffer;
for ($yy = 1, $ypos = $y; $yy <= 16; $yy ++, $ypos ++)
{
$bits = $buffer[$yy];
for ($xbit = 32768, $xpos = $x; $xbit > 0; $xbit >>= 1, $xpos ++)
{
if ($bits & $xbit)
{
imagesetpixel($image, $xpos, $ypos, $color);
}
}
}
$x += 16;
}
}
else
{
imagestring($image, 12, $x, $y, $strings[$p], $color);
$x += strlen($strings[$p]) * 9;
}
$isch = !$isch;
}
return 0;
}
?>
提示:你可以先修改部分代码再运行
下面是读IP文本文件的代码,由于刚学PHP没几天,也是刚接触编程,所以.....
我自己看了,都有好多地方不尽人意,代码可以更简洁一点,希望各位前辈莫见笑,
帮忙指点一下!该文件我存为:ip.php
<?
$flag=0;
$ip_detail=explode(".",$_SERVER["REMOTE_ADDR"]);
if ($ip_detail[0]<=61) {
$ip_data_file=61;
}
elseif($ip_detail[0]<=199){
$ip_data_file=199;
}
elseif($ip_detail[0]<=217){
$ip_data_file=217;
}
elseif($ip_detail[0]==218){
$ip_data_file=218;
}
else{
$ip_data_file=255;
}
if (file_exists("ipdata/$ip_data_file.txt")) {
$ip_fdata=fopen("ipdata/$ip_data_file.txt","r");
}
else {
if(!($ip_fdata=fopen("/ipdata/0.txt","r"))) {
die("IP 数据文件错误");
}
}
for ($i=0; $i<=3; $i++) {
$ip_detail[$i]=sprintf("%3d", $ip_detail[$i]);
}
while(!feof($ip_fdata)){
$ip_data=fgets($ip_fdata,200);
$ip_data_detail=substr($ip_data,32,strlen($ip_data)-33); //IP物理地址
$test000=explode(".",substr($ip_data,0,16));
$test001=explode(".",substr($ip_data,16,16));
for($s=0;$s<=3;$s++){
$ip0[$s]=sprintf("%3d",$test000[$s]);
$ip1[$s]=sprintf("%3d",$test001[$s]);
}
if(join(".",$ip_detail)>=join(".",$ip0) and join(".",$ip_detail)<=join(".",$ip1)) {
fclose($ip_fdata);
$flag=1;
break; }
};
if($flag==0){
echo "未知地区"."<BR>".$flag;
}
?>
其中,IP地址我用的是纯情版的,我分成了5个文件来读写,
如果只要国内的IP,体积应该会更小,具体情况具体分析!
以下是一个示例文件:
源程序下载地址: 一:http://jacker.uni.cc/ip.rar
源程序下载地址: 二:http://jacker.cun.jp/ip.rar