2012-08-24 73 views
0

我有一個搜索腳本在我的網頁上運行,並擴大搜索功能。目前,它搜索特定的動態用戶字段。現在,如果第一次搜索沒有結果,我想執行二級搜索。PHP String丟失後ob_clean()

稱之爲 「健康」 有人搜索時,搜索URL輸出將爲:

* .COM/ .PHP DO = GETALL & 研究 =健康?」

如果有沒有結果,以下將運行:

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()或某些變體,將會出現「Header already sent」錯誤。

問題是,運行ob_clean()後,$ n_string中的值會丟失。

謝謝你的幫助!

----編輯----

謝謝大家的回答。我找到了解決我的代碼中的錯誤的解決方案。 $ url ='http:// www。 * .com/ .php?do = getall &。喜歡='。 $ _GET [$ n_string [1]];

應該已經

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

您的回答一直儘管讓我清理我使用ob_clean的方法(有用)。

回答

0

嘗試使用ob_end_clean()而不是ob_clean()。 ob_clean()函數僅清除最上面的輸出緩衝區的內容,但不關閉它。

0

爲什麼不先設置ob_clean() - 在設置字符串之前?