2017-06-27 6 views
1

現在、CodeIgniterを使用して参照元URLからセグメントを抽出する方法を見つけることに苦労しています。通常のURLセグメントとしてCodeigniter参照セグメント

nは、我々が探している区間の数である

$this->uri->segment(n) 

により求めることができます。

私の直感は、私が次のものを使うべきだと言いますが、もちろんそれは機能しません。

$this->agent->referrer()->segment(1); 

誰かが私を助けてくれますか? CodeIgniterの中

+0

あなたのコードのフラグメントを適切にフォーマットしていただけますか? –

答えて

1

リファラ機能は、セグメントを許可しない - それは単に(User_agent.phpで発見)$_SERVERのパラメーターを戻します。

public function referrer() 
{ 
    return empty($_SERVER['HTTP_REFERER']) ? '' : trim($_SERVER['HTTP_REFERER']); 
} 

あなたはそのためのURLを爆発かにhttp://php.net/manual/en/function.parse-url.phpを使用する必要がありますあなたのための要素を入手してください。

+0

私はparse_urlを使用しました、ありがとう! – user8219608

0

PHPでは、URLからパスを取得するために$_SERVER['HTTP_REFERER']、次にparse_urlを使用してreffer URIを取得し、explodeを使用してそのセグメントに分割できます。

例:

$from = $_SERVER['HTTP_REFERER']; 
$segments = explode('/', $from['path']); 

//result 
$first_segment = $segments[0]; 
$second_segment = $segments[1]; 
$third_segment = $segments[3]; 
// and more 

//but if you want to count start from last segment example is below 

$first_segment_from_last = $segments[sizeof($segments)-1]; 
$second_segment_from_last = $segments[sizeof($segments)-2]; 
//and more 

//test 
print_r('my refferal URI is ' . $from . ', and the first segment is '. $first_segment); 
関連する問題