你必须确定,feek的刚好是合法的字符结束或者开始处。
解决方案 »
- PHP4 如何按行返回文本内容?
- 问一下sql语句中 order by和group by的作用域?
- 为memcached开发的tag功能【支持php扩展】
- 使用PHP5遇到的怪事
- cookie问题,什么原因造成的呢?
- $write=fwrite($fp,$m_string),为什么要用变量$write?
- $topic_name=str_replace('%a%','',$topic_name);中的%a%是什么意思?
- 在php中,怎样列出所有的目录名称?用什么函数??
- 执行程序的问题.
- 555,自己做了一个投票问卷调查功能。求助。
- 关于 sessions 保存验证码的问题.....
- PHP的换行问题
请帮下忙哦.
header("Expires:Mon,26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT"); // always modified
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache");
----------------------------
把这段代码加紧PHP页里。
如果还不行的话。可以用 $titlenode = iconv('gb2312','utf-8//IGNORE',$titlenode);
{
$seeked = 0;
while(($seeked<$offset)&&(!feof($fp)))
{
$c = fgetc($fp);
if(ord($c)>0xa0)
{
fseek($fp,1,SEEK_CUR);
$readed++;
}
$seeked++;
}
}
function my_read($fp,$count)
{
$readed = 0;
while(($readed<$count)&&(!feof($fp)))
{
$c = fgetc($fp);
echo $c;
if(ord($c)>0xa0)
{
//fseek($fp,1,SEEK_CUR);
echo fgetc($fp);
$readed++;
}
$readed++;
}
}大家帮忙看看上面两个函数有没问题,我用上面的函数实现读取文本
结果有时候在文本的开头或结尾处还是有一两个乱码:
echo '<div>';
my_seek($fp,1000);
my_read($fp,1000);
echo '</div>'
现在读取的文本大部分没乱码了,就是在开头和结尾处有几个乱码.
而且很多时候我发现读取的文本和'</div>'混起来了.变成了
XXXXXXXX/div>也就是说把HTML标签</div>前面的<给弄没掉了.
iconv成宽字符集的。
帮我看看这个函数有没问题?
function my_seek($fp,$offset)
{
$seeked = 0;
while(($seeked <$offset)&&(!feof($fp)))
{
$c = fgetc($fp);
if(ord($c)>0xa0)
{
fseek($fp,1,SEEK_CUR);
$seeked++;
}
$seeked++;
}
}
我最终的解决方法,贴出来和大家分享下(只适用于UTF-8编码的TXT文本):
fseek($fp,1000);
$c = fgetc($fp);
$num = ord($c);
while(($num>=0x80)&&($num<=0xDF))
{
$c = fgetc($fp);
$num = ord($c);
}
$start = ftell($fp)-1;
fseek($fp, 1000, SEEK_CUR);
$c = fgetc($fp);
$num = ord($c);
while(($num>=0x80)&&($num<=0xDF))
{
$c = fgetc($fp);
$num = ord($c);
}
$end = ftell($fp)-1;
fseek($fp, $start);
if($data = fread($fp,$end-$start))