HTML의 현대 방언과 올바른 규칙은 HTML 엔터티 (&likethat;
)의 세미콜론을 생략 할 수 없습니다. 하지만 임의의 페이지를 구문 분석하고 세미콜론없이 나쁜 HTML 엔터티를 처리해야하는 작업이 있습니다. 그리고 이것은 브라우저에 의해 완벽하게 표현됩니다. PHP로 세미콜론없이 각각의 UTF-8에 HTML 엔터티를 디코딩 할 수 있습니까?PHP에서 세미콜론없이 HTML 엔터티 디코드
2
A
답변
1
당신은 모든 HTML 엔티티의 목록을 자신의 UTF-8 표현으로 세미콜론없이 모두 교체 할 경우에 사용할 수 있습니다
// get all HTML entities
$mapping = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5, 'UTF-8');
// change array values representing the entities to regex pattern with negativ lookahead for semicolon
array_walk($mapping, function(&$value) { $value = '/'.rtrim($value, ';').'(?!;)/'; });
// replace all entities without semicolon by their utf8 representation
$html = preg_replace(array_values($mapping), array_keys($mapping), $html);
0
내 생각 엔 DOMDocument::loadHTML을 사용하여 문서를로드하고 DOMDocument::saveHTML을 사용하여 문서를 저장해보십시오.
libxml constants을 사용하여 추가 옵션을 지정할 수 있습니다.
+0
이 그냥 모든'및''& 이러한 HTML 엔티티에서 '탈출 html-entites로 올바르게 가져 오는 대신 이 libxml 상수를 어떻게 사용해야합니까? 어떻게 도와 줄 수 있습니까? HTML은 XML이 아닙니다. 그렇습니까? – Gherman
관련 문제
- 1. 세미콜론없이 & nbsp
- 2. PHP에서 JSON POST 디코드
- 3. PHP에서 JSON 배열 디코드
- 4. PHP에서 HTML 엔터티 (십진수)를 표시하는 방법?
- 5. PHP html 디코드 문자열
- 6. Html 엔티티 디코드 방법
- 7. PHP create_function, 세미콜론없이 함수?
- 8. 코코아 디코드 html 매개 변수
- 9. html 인 코드/디코드 - ckeditor
- 10. BeautifulSoup을 사용하여 html 엔티티 디코드
- 11. Objective-C에서 HTML 응답 디코드
- 12. 디코드 I 양식으로 HTML 페이지를
- 13. URL을 통해 HTML 엔터티 전달하기
- 14. 세미콜론없이 원자 자동 완성 플러스
- 15. 세미콜론없이 실행하는 이유는 무엇입니까? 여기
- 16. jQuery html()의 HTML 엔터티
- 17. PHP - 세미콜론이 누락 된 HTML 엔터티 다루기
- 18. jQuery JSON 디코드 (PHP에서 자바 스크립트)
- 19. PHP에서 json 사전 배열 디코드 및 액세스
- 20. php에서 디코드 encodeURI로 코딩 된 텍스트
- 21. HTML 엔터티 코드를 텍스트로
- 22. 녹아웃을 사용하는 HTML 엔터티
- 23. CSV 형식 HTML 엔터티
- 24. SIFR 및 HTML 엔터티
- 25. Ada의 HTML 엔터티 변환기
- 26. jQuery로 HTML 엔터티
- 27. Texture의 HTML 엔터티
- 28. TextFlow의 HTML 엔터티
- 29. xslt의 HTML 엔터티 번호
- 30. 디코드
http://it2.php.net/get-html-translation-table –
'& # 8211 [& # 8230]'과 같은 문자열이 있습니다. 왜이 답변이 효과가 없습니까? 'html_entity_decode'는 세미콜론이 있으면 작동합니다 : '– […]' – Shawn
get_html_translation_table()의 결과를 매핑 목록으로 사용하여 HTML 엔티티를 utf-8 표현으로 대체합니다. 이 함수는 & ü, & dollar ;, 등의 명명 된 html 엔티티 만 반환하지만 10 진수 표기법의 html 엔티티는 반환하지 않습니다. 그들은 매핑에 있지 않기 때문에 대체되지 않습니다. – SBH