PHP는 HTML 문자열 차단
2008년 11월 19일 - 드리머욕구 : 텍스트의 한 부분 특정 보여주는 문자열, 한자의 UFT - 8 인코딩 대신 바이트의 수를의 차단에 관심을 3 바이트 또는 4 바이트, 그리고 공연 시간이 될 것이다 중국의 요격의 실제 길이가 될 것입니다 두 캐릭터, 영어 문자 하나만 전체 - time과 다른 각도의 길이를 차지했다. 하지만 이와 같은 데이터는 HTML 코드를 문자열입니다 :
를 <div class="aaa">은 <a href="/aaa.php?id=1"> 샌프란 </>의 <a에 댓글을 달았습니다 href="/aaa.php?id=444"> 리자 </ a> 문서를 참조하십시오 <a 것들의 긴 목록에있는 문서를 href="bbb.html"> </> </ div 공유>
차단 시간의 div 태그의 차단 내부 것들뿐만 아니라, HTML 태그를 유지하기 위해, 오직 텍스트는 다룰 것이다. "리" "리"단어의 예를 들어, 내가 수있는 것은 차단하지만, 그렇다면, 다음 프런트 엔드를 넣어 태그 앞에 "리"에 해당하므로 폐쇄 후 차단을 보장도 없다는 올바른 HTML 구문.
문제는 너무 관여하는, 나를 우울하게 이일을 위해 좋지 않다. 주의 사항이 단순한 문자열이지만 콘텐츠는 HTML 코드는 없다는 DOM입니다. 프런트 엔드에있다면 - 쉽게, 그리고 직접 DOM을 액세스, 그리고 처리를위한 노드의 내부에서, 그리고 마지막으로 처리할 수있습니다 innerHTML 또는 그 같은 출력을 얻을 뭔가. 지금 생각에 변화가 할 수있다. 내 동료의 생각이있다 :
각 문자가 문자열의 탐색. 마커를 설정하고 레이블 <on의 시작 1,의 문자로 구입 후 number, 기억이 안 따라 마킹 만진 후 encountered> 계산하기 시작했다. 문자열 처리 시간은 내부의 레이블뿐 아니라, 현재의 문자 인코딩을 결정하기 위해 중국에있을 가능성이, 일반적으로 PHP는이 UTF - 8로 인코딩 중국 문자 3의 길이있다, 그래서 중국의 문자를 인코딩하는 경우가 발생하지 않습니다 , 그것은 두 가지를 건너뛸 필요가 몇 상관 없어 ... ... 그렇긴해도 제가 제 자신을 큰 머리를하기 시작했다. 개인적으로이 방법은 매우, 우선, 이러한 벌금의 논리를 제어하는, 쉽지 않은 일이다와 UFT - 8 인코딩은 중국 아래에 생성된 의문의 3 또는 4 개의 너무 엄격한 코드의 길이가있을 수있습니다 정확한라고 생각합니다.
내 개인적인 생각은 Tidy 来搞 (구체적인 사용법과 PHP 매뉴얼 참조)입니다. 어제는 Tidy,이 것은 아직 잘 사용 뭘 찾았을 공부했다. 우선,이 같은 Tidy 객체에이 문자열 :
로그보기 풀 텍스트>>










