2011-12-19 1 views
12

explode() 함수는 mb_split()에 상관 멀티 바이트 안전 함수를 가지고 있습니다.PHP : 다중 바이트 문자열에 대해 implode() 함수가 안전합니까?

나는 implode()에 대한 상관 관계 기능이 표시되지 않습니다. 이것은 implode가 멀티 바이트 문자열에 대해 이미 안전하다는 것을 의미합니까?

+0

나는 멀티 바이트 안전있을 필요가 이유를 이해 힘든 시간을 보내고 있습니다을()'- 처음에는 문자열을 분할하는 것이 다중 바이트로 안전합니까? 그러나 그것은 다른 질문입니다. –

+0

PHP는 모든 문자열 (AFAIK)을 원시 바이너리 바이트 시퀀스로 저장하므로, 이론적으로 분할 토큰의 올바른 이진 표현을 전달하는 한 멀티 바이트 문자열에도'explode() '를 사용할 수 있어야합니다. 따라서'implode()'에 똑같이 적용됩니다 - 결합 분리 문자로 전달 된 바이너리 시퀀스는 그대로 사용되기 때문에 구분 기호가 올바르게 저장되어 있으면 문제가 발생하지 않습니다. – DaveRandom

+1

@DaveRandom : 멀티 바이트 문자가 2 개의 싱글 바이트 문자처럼 보일 수도 있습니까? 만약 그 1 바이트 문자 중 하나가 구분 기호가된다면 실수로 멀티 바이트 문자로 분리 될 가능성이 있지 않습니까? –

답변

6

는만큼 당신의 구분 및 배열의 ​​문자열은 잘 구성된 멀티 바이트를 포함하기 때문에 문제가 안 시퀀스.

implode는 기본적으로 멋진 연결 연산자 내가 연결이 멀티 바이트 안전하지 않은 시나리오를 상상할 수 없었다;`분할)

+2

이 컨텍스트에서 "올바른 형식의 멀티 바이트 시퀀스"가 무엇을 의미하는지 확신 할 수 없습니까? (나는 나머지와 동의한다) –

+0

고마워. 나는 공간을 구분자로 사용하고있다 :'mb_split ('', $ mbstring)'. 이것은 잘 형성된 멀티 바이트 시퀀스를 구성합니까? –

+0

@danielfaraday 스크립트가 문자열이 사용하는 멀티 바이트 문자 세트에 저장되어 있는지 여부에 따라 다릅니다. 그렇지 않다면, 그렇지 않습니다. – DaveRandom