クライアントはサービスを介してデータベースに接続します。何らかのアクションを実行すると、私はfile_get_contents
というサービスURLを呼び出し、応答を処理します。file_get_contentsの奇妙なパラメータをクリアする
ユーザーがGoogle検索結果からサイトに入ると、私はgoogleがfile_get_contents
に属するサービスURLにいくつかのパラメータを追加すると思います。例えば
、 それがあるべきよう、
file_get_contents(service.domain/service_name?param1=0)
が、Googleは、URLの最後にいくつかの奇妙なパラメータを追加します。このように:
file_get_contents(service.domain/service_name?param1=0&force=1)
私はどのように私は、これらのパラメータを処理し、削除することができますかわからないので、
force = 1
gclid=CNC-jvTapbcCFaaj
を二、三の奇妙なパラメータを見ました。
file_get_contentsでURLを呼び出す前に、これらの奇妙なパラメータを削除するにはどうすればよいですか?
public function getWhere($keyword)
{
$locale = session('locale');
if($locale != "en" && $locale != "")
{
$locale = "_".session('locale');
}else{
$locale = "";
}
$page = file_get_contents(getenv('API_URL')."station_info?search.url=".$keyword);
$page = json_decode($page);
$page = (array) $page->rows;
$station = $page[0];
if($station->search->status == 1)
{
return redirect('/');
}
return view('station', compact('station', 'locale'));
}
奇妙なパラメータが自らURLの末尾に追加:
は、これは私の関数です。
編集
私は、誰かが何かしようとしていると思います。 $ keywordは、駅名(例:ロンドン)の文字列でなければなりません。 しかし、誰かがLondon & force = 1を送信しようとしているので、$ keyword変数をチェックする必要があります。
PHPは、URLを操作するためのいくつかの機能を提供しています。 ['parse_url()'](http://php.net/manual/en/function.parse-url.php)と['' parse_str() '](http://php.net/manual/ja/)を使用してください。 function.parse-str.php)を使用してURLを断片に分解し、パラメータをデコードし、必要に応じてパラメータを変更/削除し、['http_build_query()'](http://php.net/manual/en/function .http-build-query.php)を使って新しいクエリ文字列を生成し、残りのURLに結合します(関数は必要ありません。文字列連結( '.')で十分です)。 – axiac
Googleはあなたのコードに影響しません。あなたのコードがリクエストから全てのパラメータを取得して渡すのであれば、問題はありますが、あなたのコードを見ることはありません。 – Steve