http://www.myfreax.com/admin/news/search/3/首部
public function search (){ $start=$this->uri->segment(5, 0); $keyword=$this->uri->segment(4, 0); echo $keywordd //%E9%A6%96%E9%83%A8 将会是输出的是escape加密过的字符串,需要这个字符解密, $limit=3; if ($this->input->get('name', TRUE)) { $keyword=$this->input->get('name', TRUE); echo $keyword; }
需要 定义一个函数进行解密:
public function unescape($str){ //注意这个函数只适合utf8编码 $ret = ''; $len = strlen($str); for ($i = 0; $i < $len; $i++){ if ($str[$i] == '%' && $str[$i+1] == 'u'){ $val = hexdec(substr($str, $i+2, 4)); if ($val < 0x7f) $ret .= chr($val); else if($val < 0x800) $ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f)); else $ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f)); $i += 5; } else if ($str[$i] == '%'){ $ret .= urldecode(substr($str, $i, 3)); $i += 2; } else $ret .= $str[$i]; } return $ret; }
public function search (){ $start=$this->uri->segment(5, 0); $keyword=$this->uri->segment(4, 0); $keyword=$this->unescape($keyword); $limit=3; if ($this->input->get('name', TRUE)) { $keyword=$this->input->get('name', TRUE); echo $keyword; }