Web ページで検索スクリプトを実行しており、検索機能を拡張しています。現在、特定の動的ユーザー フィールドを検索します。ここで、最初の検索で結果が得られなかった場合に、2 次検索を実行したいと考えています。
誰かが「Health」を検索すると、検索 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() を使用する方法をクリーンアップすることができました。