主题:[讨论]+30!为什么我从hzk16文件读出来的数据是空白的
我想做个php程序把汉字的字模数据从hzk16文件里读出来,再根据点阵的分布情况来用汉字填充,形成一个超级字符.
可是我做了一个实验的程序却发现读出来的数据是空的;
请看代码:
<?php
$qh=ord(substr("江",0,1))-161; //取得汉字区号
$wh=ord(substr("江",1,1))-161; //取得汉字位号
$data_p=$data_p+($qh*94+$wh)*32; //取得汉字字模数据位置
$fp=fopen("hzk16","rb");
if(!$fp)
{
echo "文件打开失败!";
}
else
{
fseek($fp,$data_p); //定位文件指针
$content=fread($fp,32); //取得字模数据
for($i=0;$i<=15;$i++)
{
$line_data_l=ord(substr($content,2*$i,1)); //获取每一行左边的8个点数据
for($j=8;$j>=1;$j--)
{
$data_hz[$j]=$line_data_l % 2;
$line_data_l=($line_data_l-$data_hz[$j])/2;
}
for($k=1;$k<=8;$k++)
{
if($data_hz[$j]==1)
{
echo "江";
}
else
{
echo "__";
}
}
$line_data_r=ord(substr($content,2*i+1,1)); //获取每一行右边的8个点数据
for($j=8;$j>0;$j--)
{
$data_hz[$j]=$line_data_r % 2;
$line_data_l=($line_data_r-$data_hz[$j])/2;
}
for($k=1;$k<=8;$k++)
{
if($data_hz[j]==1)
{
echo "江";
}
else
{
echo "__";
}
}
echo "\n"; //系统的换行
}
}
?>
可是我做了一个实验的程序却发现读出来的数据是空的;
请看代码:
<?php
$qh=ord(substr("江",0,1))-161; //取得汉字区号
$wh=ord(substr("江",1,1))-161; //取得汉字位号
$data_p=$data_p+($qh*94+$wh)*32; //取得汉字字模数据位置
$fp=fopen("hzk16","rb");
if(!$fp)
{
echo "文件打开失败!";
}
else
{
fseek($fp,$data_p); //定位文件指针
$content=fread($fp,32); //取得字模数据
for($i=0;$i<=15;$i++)
{
$line_data_l=ord(substr($content,2*$i,1)); //获取每一行左边的8个点数据
for($j=8;$j>=1;$j--)
{
$data_hz[$j]=$line_data_l % 2;
$line_data_l=($line_data_l-$data_hz[$j])/2;
}
for($k=1;$k<=8;$k++)
{
if($data_hz[$j]==1)
{
echo "江";
}
else
{
echo "__";
}
}
$line_data_r=ord(substr($content,2*i+1,1)); //获取每一行右边的8个点数据
for($j=8;$j>0;$j--)
{
$data_hz[$j]=$line_data_r % 2;
$line_data_l=($line_data_r-$data_hz[$j])/2;
}
for($k=1;$k<=8;$k++)
{
if($data_hz[j]==1)
{
echo "江";
}
else
{
echo "__";
}
}
echo "\n"; //系统的换行
}
}
?>