목차
CodeIgniter 完美解决URL含有中文字符串,codeigniterurl
백엔드 개발 PHP 튜토리얼 CodeIgniter 完美解决URL含有中文字符串,codeigniterurl_PHP教程

CodeIgniter 完美解决URL含有中文字符串,codeigniterurl_PHP教程

Jul 12, 2016 am 08:51 AM
codeigniter url 중국인

CodeIgniter 完美解决URL含有中文字符串,codeigniterurl

codeIgniter默认的配置下是不允许URL中包含非ASCII字符的,如果URL中含非ASCII字符,那么CI会毫不客气的抛出错误。本文章向码农介绍CodeIgniter 如何解决URL含有中文字符串。

你 可能会说,那我把这个URL使用函数urlencode一下呢?不行。因为Web Server会在接收到一个被urlencode的URL后自动将其decode,然后在PHP里得到的这些字符串转换成他原来所代表的含义,并使用 Web Server自己的URL编码字符集(IIS6 中文版是GBK,Apache 2.2是UTF-8)传送给应用程序,这就使得CI得到的URL已经是一个解码过的,无论你有没有对URL进行urlencode,浏览器在发出请求时会 自动检测,若没有,则会自动进行编码。所以,手动的进行urlencode并不能解决问题。那么我们应该怎么做来解决这个问题呢?

对于CI这种框架,用到现在,我的观点是尽量不要去修改它,而是去扩展他,CI提供了很好的扩展机制,我们只需要在application/core/下(2.0版本以前的为application/libraries/)增加一个文件MY_URI.php,其内容为:

<&#63;php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 
 
class MY_URI extends CI_URI { 
 
 /** 
  * 自定义的url过滤函数 
  * 
  * @access private 
  * @param string 
  * @return string 
  */ 
 function _filter_uri($str) 
 { 
  if ($str != '' AND $this->config->item('permitted_uri_chars') != '') 
  { 
   $str = urlencode($str); 
   if ( ! preg_match("|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i", $str)) 
   { 
    exit('The URI you submitted has disallowed characters.'); 
   } 
   $str = urldecode($str); 
  } 
  return $str; 
 }  
}
로그인 후 복사

我覆盖了原来CI_URI中的_filter_uri方法,这样就可以使得中文的URL通过检测。但是,如果URL里有空格, 也不行了,怎么办呢?原来,urlencode会将空格转换成+,而CI的默认配置中是不允许+出现在URL里的,OK,把

$config ['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 
로그인 후 복사

改成

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\+\-'; 
로그인 후 복사

就可以了。

或者

第一步把config.php 中的

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 

로그인 후 복사

替换成

$config['permitted_uri_chars'] ='a-z 0-9~%.:_-u4e00-u9fa5'; 
로그인 후 복사

面所有的操作我们都做完了,但是接下来你可能又遇到了新的问题,那就是url中得到的中文信息是乱码,不知道在你的服务器上会不会遇到该问题,但是我遇到了(IIS)。但是在本地是正常的,本地用的是apache。

好,我在程序中,把$_SERVER['REQUEST_URI']打印出来,发现它就是乱码的,苦思冥想,这是怎么回事?这就说明在我得到uri中的参数之前,就已经被编码了,好,我们使用iconv解码:

iconv("gb2312","UTF-8",$uri); 
로그인 후 복사

现在打印出来看看,好了,原来的中文参数打印出来了,是正确的。

这个问题解决了,但是还是有一个疑问,url为什么是gb2312编码的呢,如果在我的程序中使用(我采用的是utf-8编码),还需要转换为utf-8编码,是不是和web服务器是有关系的呢,希望大家能够帮忙解答。

以上这篇CodeIgniter 完美解决URL含有中文字符串就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持帮客之家。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1127918.htmlTechArticleCodeIgniter 完美解决URL含有中文字符串,codeigniterurl codeIgniter默认的配置下是不允许URL中包含非ASCII字符的,如果URL中含非ASCII字符,那么CI会...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Call of Duty: Warzone 모바일 게임에서 중국어를 설정하는 방법 Call of Duty: Warzone 모바일 게임에서 중국어를 설정하는 방법 Mar 22, 2024 am 08:41 AM

Call of Duty Warzone은 새로 출시된 모바일 게임입니다. 많은 플레이어들이 이 게임의 언어를 중국어로 설정하는 방법에 대해 매우 궁금해하고 있습니다. 실제로 플레이어는 중국어 언어 팩만 다운로드하면 됩니다. 사용 후 수정하세요. 자세한 내용은 이 중국어 설정 방법 소개에서 배울 수 있습니다. 모바일 게임 Call of Duty: Warzone의 중국어 언어 설정 방법 1. 먼저 게임에 접속한 후 인터페이스 오른쪽 상단에 있는 설정 아이콘을 클릭합니다. 2. 나타나는 메뉴바에서 [다운로드] 옵션을 찾아 클릭하세요. 3. 이 페이지에서 [SIMPLIFIEDCHINESE](중국어 간체)를 선택하여 중국어 간체 설치 패키지를 다운로드합니다. 4. 설정으로 돌아가기

VSCode를 사용하여 중국어 설정: 전체 가이드 VSCode를 사용하여 중국어 설정: 전체 가이드 Mar 25, 2024 am 11:18 AM

중국어 VSCode 설정: 전체 가이드 소프트웨어 개발에서 Visual Studio Code(줄여서 VSCode)는 일반적으로 사용되는 통합 개발 환경입니다. 중국어를 사용하는 개발자의 경우 VSCode를 중국어 인터페이스로 설정하면 작업 효율성이 향상될 수 있습니다. 이 기사에서는 VSCode를 중국어 인터페이스로 설정하는 방법을 자세히 설명하고 특정 코드 예제를 제공하는 완전한 가이드를 제공합니다. 1단계: 언어 팩을 다운로드하고 설치합니다. VSCode를 연 후 왼쪽을 클릭합니다.

중국어를 표시하도록 Excel 테이블을 설정하는 방법은 무엇입니까? Excel 전환 중국어 작업 튜토리얼 중국어를 표시하도록 Excel 테이블을 설정하는 방법은 무엇입니까? Excel 전환 중국어 작업 튜토리얼 Mar 14, 2024 pm 03:28 PM

Excel 스프레드시트는 현재 많은 사람들이 사용하는 사무용 소프트웨어 중 하나입니다. 일부 사용자는 컴퓨터가 Win11 시스템이므로 중국어 인터페이스로 전환하고 싶지만 작동 방법을 모릅니다. 이 문제를 해결하기 위해 편집자는 모든 사용자의 질문에 답변하기 위해 왔습니다. 오늘의 소프트웨어 튜토리얼에서 공유된 내용을 살펴보겠습니다. Excel을 중국어로 전환하기 위한 튜토리얼: 1. 소프트웨어에 들어가서 페이지 상단 도구 모음 왼쪽에 있는 "파일" 옵션을 클릭합니다. 2. 아래 옵션 중에서 "옵션"을 선택하세요. 3. 새 인터페이스에 들어간 후 왼쪽의 '언어' 옵션을 클릭하세요.

wwe2k24에 중국어가 있나요? wwe2k24에 중국어가 있나요? Mar 13, 2024 pm 04:40 PM

'WWE2K24'는 비주얼콘셉츠(Visual Concepts)가 제작한 레이싱 스포츠 게임으로, 2024년 3월 9일 정식 출시됐다. 이 게임은 높은 평가를 받았으며, 많은 플레이어들이 중국어 버전이 나올지 궁금해하고 있습니다. 불행하게도 아직까지 "WWE2K24"는 중국어 버전을 출시하지 않았습니다. wwe2k24는 중국어로 제공되나요? 답변: 중국어는 현재 지원되지 않습니다. 스팀 중국 지역 WWE2K24 스탠다드 버전의 가격은 199위안, 디럭스 버전은 329위안, 기념 에디션은 395위안이다. 이 게임은 구성 요구 사항이 상대적으로 높으며 프로세서, 그래픽 카드 또는 실행 메모리 측면에서 특정 표준이 있습니다. 공식 권장 구성 및 최소 구성 소개:

PHP로 txt 파일을 작성할 때 중국어 왜곡 문자를 해결하기 위한 팁 PHP로 txt 파일을 작성할 때 중국어 왜곡 문자를 해결하기 위한 팁 Mar 27, 2024 pm 01:18 PM

PHP로 작성한 중국어 왜곡 문자를 txt 파일로 해결하는 방법 인터넷의 급속한 발전과 함께 널리 사용되는 프로그래밍 언어인 PHP를 점점 더 많은 개발자가 사용하고 있습니다. PHP 개발에서는 중국어 내용이 포함된 txt 파일을 포함하여 텍스트 파일을 읽고 써야 하는 경우가 많습니다. 그러나 인코딩 형식 문제로 인해 때때로 작성된 중국어가 깨져서 나타날 수 있습니다. 이 기사에서는 PHP로 txt 파일에 작성된 중국어 문자 왜곡 문제를 해결하는 몇 가지 기술을 소개하고 구체적인 코드 예제를 제공합니다. PHP, 텍스트의 문제 분석

Chrome을 중국어 모드로 변경하는 방법은 무엇입니까? Chrome을 중국어 모드로 변경하는 방법은 무엇입니까? Mar 13, 2024 pm 07:31 PM

Chrome에서 중국어를 영어로 바꾸는 방법은 무엇입니까? 어떤 친구들은 사용하는 동안 지속적으로 영어 실력을 향상시킬 수 있도록 Chrome을 영어로 설정하고 싶어합니다. 그럼 영어로 어떻게 설정하나요? Chrome은 기본적으로 중국어입니다. 아래에서는 Chrome의 언어를 영어로 설정하는 방법을 살펴보겠습니다. 설정 단계: 1. 아래 그림과 같이 [Google Chrome]을 엽니다. 2. 아래 그림과 같이 Google Chrome 인터페이스 오른쪽 상단에 있는 [점 3개] 메뉴를 클릭합니다. 3. 메뉴 페이지에 진입한 후, 아래 그림과 같이 [설정]을 찾습니다. 4. 설정 페이지에 진입한 후, 아래 그림과 같이 [언어] 옵션을 클릭하세요. 5. 아래 그림과 같이 언어 인터페이스에서 [언어 추가]를 선택합니다.

PHP에서 int형을 문자열로 변환하는 방법에 대한 자세한 설명 PHP에서 int형을 문자열로 변환하는 방법에 대한 자세한 설명 Mar 26, 2024 am 11:45 AM

PHP에서 int 유형을 문자열로 변환하는 방법에 대한 자세한 설명 PHP 개발에서 int 유형을 문자열 유형으로 변환해야 하는 경우가 종종 있습니다. 이 변환은 다양한 방법으로 수행할 수 있습니다. 이 기사에서는 독자의 이해를 돕기 위해 특정 코드 예제와 함께 몇 가지 일반적인 방법을 자세히 소개합니다. 1. PHP 내장 함수 strval()을 사용하세요. PHP는 다양한 유형의 변수를 문자열 유형으로 변환할 수 있는 내장 함수 strval()을 제공합니다. int형을 string형으로 변환해야 할 때,

python_python 반복 문자열 튜토리얼에서 문자열을 반복하는 방법 python_python 반복 문자열 튜토리얼에서 문자열을 반복하는 방법 Apr 02, 2024 pm 03:58 PM

1. 먼저 pycharm을 열고 pycharm 홈페이지로 들어갑니다. 2. 그런 다음 새 Python 스크립트를 생성하고 마우스 오른쪽 버튼을 클릭하고 새로 만들기를 클릭한 후 Pythonfile을 클릭합니다. 3. 문자열(코드: s="-")을 입력합니다. 4. 그런 다음 문자열의 기호를 20번 반복해야 합니다(코드: s1=s*20). 5. 인쇄 출력 코드(코드: print(s1))를 입력합니다. 6. 마지막으로 스크립트를 실행하면 하단에 반환 값이 표시됩니다. - 20번 반복됩니다.

See all articles