2010-07-02 6 views
1

Je suis en train de récupérer une URL envoyé dans les chaînes de requête dans une fonction CodeIgniter:CodeIgniter + encodeURIComponent

function recipe($url = ''){ 

     $url = $this->uri->uri_string(); 
     $url = ltrim($url, '/bookmarklet/recipe/'); 

     log_message('info', 'URL: ' . rawurldecode($url)); 

Cependant, pour une raison quelconque l'url manque toujours un «/» dans le protocole http, ce qui Je reçois du journal est quelque chose comme ceci:

INFO - 2010-07-02 12:12:51 --> URL: http:/www.google.com.eg/ 
+0

A quoi ressemble 'url' avant le code url? – DrColossos

+0

même http: /www.google.com.eg/ il n'a eu aucun effet, peut-être uri_string() retourne une chaîne d'échappement? –

+0

Etes-vous sûr que vous utilisez ltrim comme vous le souhaitez? http://php.net/ltrim – Boldewyn

Répondre

0

apparemment le uri-> uri_string() échappe à plusieurs caractères à l'intérieur, de sorte que "http://www." retournerait 'http:/www.', utilisez plutôt les variables du serveur $ _SERVER

0

Je ne vois pas comment vous obtiendriez même le nom de domaine. Et pourquoi avez-vous un argument $ url mais le remplace par la première ligne de code?

je me attends à la sortie suivante si vous êtes allé à http://domain.com/bookmarklet/recipe/food
INFO (date etc) --> URL: food

+0

je n'obtiens pas le nom de domaine ou l'hôte, quand j'appelle uri_string() il retourne:/bookmarklet/start/http% 3A% 3F% 3Fwww .google.com qui est ce que les docs disent http://codeigniter.com/user_guide/libraries/uri.html –