0

我的网页上运行了一个搜索脚本,并且正在扩展搜索功能。目前,它搜索特定的动态用户字段。现在,如果第一次搜索没有结果,我想执行二次搜索。

假设有人搜索“健康”,搜索 url 输出将是:

" *.com/ .php?do=getall& study =health"

如果没有结果,将运行以下命令:

    if ( preg_match( "~/(.*?)$~msi", $_SERVER[ "REQUEST_URI" ], $vv ))
    {
        $string = strstr( $vv[1], 'health=');
        $n_string = explode("=",$string);
        $url = 'http://www.****.com/***.php?do=getall&enjoys=' . $_GET[$n_string[1]];
        ob_clean();
        header('Location:' . $url);
    }

该 url 将被重定向到另一个搜索字段。如果我不包含 ob_clean() 或某些变体,则会出现“标头已发送”错误。

问题是,在运行 ob_clean() 之后,$n_string 中的值丢失了。

感谢您的任何帮助!

- - 编辑 - -

谢谢大家的答案。我找到了解决我的代码中错误的方法。$url = 'http://www. * .com/ .php?do=getall&enjoys=' 。$_GET[$n_string[1]];

本来应该

        $url = 'http://www.****.com/***.php?do=getall&enjoys=' . $n_string[1];

尽管允许我清理使用 ob_clean() 的方法,但您的回答很有帮助。

4

3 回答 3

0

为什么不先执行 ob_clean() - 在设置字符串之前?

于 2012-08-24T07:17:42.650 回答
0

尝试使用 ob_end_clean() 而不是 ob_clean()。ob_clean() 函数只清除最顶层输出缓冲区的内容,但不会关闭它。

于 2012-08-24T07:15:36.467 回答
0

您应该首先通过调用ob_start();来启动输出缓冲。在您加入之前。

请参阅下面的链接 ob_clean 不会在头文件之前清理输出?

于 2012-08-24T07:20:29.313 回答