我有一個表名爲uri_table包含:如何在sql或codeigniter中將值設置爲%field_value%?
ID,uri_segment
1/DIR_NAME/BLA-BLA-1/
2,/ DIR_NAME/BLA-BLA-2/
3,/ dir_name/bla-bla-3/
我想獲得純粹的鏈接,只有包含controller_name和控制器參數時才包含。但是當我使用$ _SERVER ['URI_SEGMENT']時,它也會得到控制器參數。
,所以我不能做到這一點下面的代碼在我的模型來搜索:代替
function check_uri()
{
$this->db->like('uri_segment',$uri_segment,'after');
$id = $this->db->get('uri_table')->row_array()['id'];
return $id;
}
:
function check_uri($request_uri=$_SERVER['URI_SEGMENT'])
{
//trim controller param that is numeric
for($i = strlen($request_uri)-1;$i > 0;$i--)
{
if(is_numeric($request_uri[$i]) || $request_uri[$i]=='/')
{
continue;
}
else
{
$request_uri = substr($request_uri,0,$i+1);
break;
}
}
$this->db->where('uri_segment',$request_uri);
$id = $this->db->get('uri_table')->row_array()['id'];
return $id;
}
這是我的代碼,但現在也可以刪除PARAM即數字如果$request_uri = '/dir_name/bla-bla-3/1/some_param/3'
它會返回$ id null。我能做些什麼,以除去帕拉姆/獲取URI無控制器PARAM或者如何比較$uri_segment
到uri_segment ($this->db->like($uri_segment, '%uri_segment%'))?
遺憾的困惑的解釋。我只是一個PHP和Codeigniter初學者,不知道該怎麼做 –
你想從字符串中提取'bla-bla-1'嗎? –
我想提取/ DIR_NAME/BLA-BLA-1而不是/ DIR_NAME/BLA-BLA-1/some_param –