URI::uri_string()
を試しましたが、base_urlで動作させることができません。
URL:http://localhost/dropbox/derrek/shopredux/ahahaha/hihihi
戻り値:dropbox/derrek/shopredux/ahahaha/hihihi
しかし、http://localhost/dropbox/derrek/shopredux/
は単に空の文字列を返します。
最初の呼び出しで「ahahaha/hihihi」を返し、2番目の呼び出しで「」を返します。そのような機能はありますか?
// For current url
echo base_url(uri_string());
url
ヘルパーがロードされている場合、使用
current_url();
良くなります
この投稿は古いことがわかります。しかし、バージョンCI v3の答えは次のとおりです。
echo $this->uri->uri_string();
ありがとう
次のような「uri」セグメントを使用してみてください。
$this->uri->segment(5); //To get 'ahahaha'
$this->uri->segment(6); //To get 'hihihi
最初のURLを形成します...また、それらが空であるため、segment(5)、segment(6)についても2番目のURlから ''を取得します。
すべてのセグメント機能カウントは、ローカルホストから「1」および同時セグメントとして開始されます
パラメーターの場合、またはパラメーターURLなしの場合:
方法1:
$currentURL = current_url(); //for simple URL
$params = $_SERVER['QUERY_STRING']; //for parameters
$fullURL = $currentURL . '?' . $params; //full URL with parameter
方法2:
$full_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_Host]$_SERVER[REQUEST_URI]";
方法3:
base_url(uri_string());
//if you want to get parameter from url use:
parse_str($_SERVER['QUERY_STRING'], $_GET);
//then you can use:
if(isset($_GET["par"])){
echo $_GET["par"];
}
//if you want to get current page url use:
$current_url = current_url();
最新のCode Igniter 3.10の実行
$this->load->helper('uri'); // or you can autoload it in config
print base_url($this->uri->uri_string());
そのような関数があるかどうかはわかりませんが、$ this-> uri-> uri_to_assoc()を使用すると、$ _ GETパラメーターから連想配列を取得できます。これと、あなたがいるコントローラーで、URLがどのように見えるかがわかります。上記のURLでは、これはコントローラードロップボックスにあり、配列は次のようになることを意味します。
array("derrek" => "shopredux", "ahahaha" => "hihihi");
これにより、このような機能を自分で作成できるはずです。
CI v3では、次を試すことができます。
function partial_uri($start = 0) {
return join('/',array_slice(get_instance()->uri->segment_array(), $start));
}
これにより、$start
引数で指定されたURLセグメントの数が削除されます。 URLがhttp://localhost/dropbox/derrek/shopredux/ahahaha/hihihi
の場合:
partial_uri(3); # returns "ahahaha/hihihi"