it-swarm.com.de

CodeIgniter -> Aktuelle URL relativ zur Basis-URL abrufen

Versuchte URI::uri_string() , kann es aber nicht dazu bringen, mit dem base_url zu arbeiten.

URL: http://localhost/dropbox/derrek/shopredux/ahahaha/hihihi
Rückgabe: dropbox/derrek/shopredux/ahahaha/hihihi

http://localhost/dropbox/derrek/shopredux/ gibt jedoch nur eine leere Zeichenfolge zurück.

Ich möchte, dass der erste Anruf "ahahaha/hihihi" und der zweite "" zurückkehren. Gibt es eine solche Funktion?

17
makuumba
// For current url
echo base_url(uri_string());
52
Nessler

Wenn url helper geladen ist, verwenden Sie

current_url();

wird besser sein

26
user3024431

Verwenden Sie "URI" -Segmente wie:

$this->uri->segment(5);   //To get 'ahahaha'
$this->uri->segment(6);   //To get 'hihihi

bilden Sie Ihre erste URL ... Sie erhalten '' von der zweiten URL auch für Segment (5), Segment (6) auch, weil sie leer sind.

Jede Segmentfunktion zählt von localhost als '1' und von symultanen Segmenten

10
Gautam3164

Ich sehe, dass dieser Beitrag alt ist. Aber in Version CI v3 ist hier die Antwort:

echo $this->uri->uri_string();

Vielen Dank

8
Karim Mtl

Für den Parameter oder ohne Parameter-URLs Verwenden Sie Folgendes:

Methode 1:

 $currentURL = current_url(); //for simple URL
 $params = $_SERVER['QUERY_STRING']; //for parameters
 $fullURL = $currentURL . '?' . $params; //full URL with parameter

Methode 2:

$full_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_Host]$_SERVER[REQUEST_URI]";

Methode 3: 

base_url(uri_string());
7
Danish Ali
 //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();
5
ashraf mohammed

Ausführen von Latest Code Igniter 3.10

$this->load->helper('uri'); // or you can autoload it in config

print base_url($this->uri->uri_string());
0
stevebaros

Ich weiß nicht, ob es eine solche Funktion gibt, aber mit $ this-> uri-> uri_to_assoc () erhalten Sie ein assoziatives Array aus den $ _GET-Parametern. Mit diesem und dem Controller, in dem Sie sich befinden, wissen Sie Wie die URL aussieht ... In Ihrer obigen URL würde dies bedeuten, dass Sie sich in der Dropbox des Controllers befinden würden und das Array etwa so aussehen würde:

array("derrek" => "shopredux", "ahahaha" => "hihihi");

Damit sollten Sie eine solche Funktion selbst erstellen können.

0
Shimu

In CI v3 können Sie Folgendes versuchen:

function partial_uri($start = 0) {
    return join('/',array_slice(get_instance()->uri->segment_array(), $start));
}

Dadurch wird die durch das Argument $start Angegebene Anzahl von URL-Segmenten gelöscht. Wenn Ihre URL http://localhost/dropbox/derrek/shopredux/ahahaha/hihihi Ist, dann:

partial_uri(3);  # returns "ahahaha/hihihi"
0
Michael Krebs