程序太多,我写个简单的来代替下:
<?php
session_start();
function words_cb($ar)
{   
$tmpp='特警,狙击手,北京,地铁,内,击毙,劫匪,荣立,二等功,';
$_SESSION['tmp']=$tmpp;
flush();// 该函数将当前为止程序的所有输出发送到用户的浏览器。
}
?>
<html>
<link rel="stylesheet" href="./css/style.css" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<?php echo $_SESSION['tmp'];
?></html>
代码运行后输出: 荣立,二等功, 也就是说丢失了“特警,狙击手,北京,地铁,内,击毙,劫匪,”。请问这是什么情况?该怎么解决呢?

解决方案 »

  1.   

    函数  words_cb 在什么地方执行的?
      

  2.   

    我是故意不执行这个函数的,按理说用session是能够传值出来的啊,就算传不出来也不可能只传一部份值吧?
      

  3.   

    代码太繁杂了,是scws的分词系统,
    其中一个函数是function words_cb($ar)
    {
    $tmpp='';
    foreach ($ar as $tmp)
    {
    if ($tmp == "\n")
    {
    $tmp = iconv('GBk', 'UTF-8', $tmp);//将gbk转换成utf8
    continue;
    }
    $tmp = iconv('GBk', 'UTF-8', $tmp);
    $tmpp=$tmpp.$tmp.',';
    }
    echo $tmpp;
    }
    没有直接执行函数words_db()函数,但是却是通过words_db()函数输出的结果的。我先在是想将函数中输出的字符串$tmpp提出来用于别的代码。再说下,这个words_db()函数在代码中没有执行的相关代码,而是通过PSCWS3::segment($mydata, 'words_c');调用,整个模块都没有函数的执行代码,也找不到该函数的参数传值。所以在这里我遇到了门槛了。现在我最重要的还是想知道,这个函数里的值怎么提取出来。
      

  4.   

    终于找到了,它用了一个特别的调用函数的方法call_user_func()。我以前没见过,呵呵,现在找到了函数的执行处,就好办多了。
      

  5.   

    很抱歉,那个wainilxx号刚把密码忘了,用邮箱认证改了几次还是提示密码错误,不知到怎么回事。密码找回一定结贴给分。
       问题已经解决了。找到了函数的执行处就简单多了。主要是我在设置超全局变量后。用session_start();用错了地方。至于我给的第一给代码有输出,可能是因为上次执行后留下了session值没有得到清除。而在我执行“楼主”代码时有了输出。猜的,呵呵,有解释不对的请帮我纠正下。
      

  6.   

    还有,用session传值,老是碰到有上次的残留。所以我这样处理了下$tt=$_SESSION['tmp'];session_destroy();
    也就是讲session传来的值赋值给一个变量,然后清空session。    我不知道这方式如何,要是有更好的方式,请教下我呀,谢谢。