2009-04-28 3 views
0

PHP의 DOMDocument-> LoadHTMLFile ('test.html'); 나에게 오류를 반환하고 계속 36 행의 내용에 오류가 있음을보고합니다. 문자 다음에 문자를 삭제하면 범인 인 것으로 여겨지는 것으로 여겨집니다. 다른 에디터 (Editra)에서이 문장을 복사/붙여 넣기하면 이상한 RS 문자가 보입니다.PHP DOMDocument : 신비한 문자 위에서 질식하는 loadHTMLFile : RS

무엇이며 더 중요한 것은 어떻게 다시 피할 수 있습니까?

+0

그리고 오류 문자열은 무엇입니까? –

답변

5

IT는 Record separator

데이터 구조의 필드를 표시하는 구분 기호로 사용할 수 있습니다. 계층 적 수준에 사용되는 경우 미국은 가장 낮은 수준 (일반 텍스트 데이터 항목 나누기)이고 RS, GS 및 FS는 그 아래에있는 수준의 항목으로 구성된 그룹을 나누기 위해 증가하는 수준입니다.

SEQ : ^^ - 12 월 : 30 - 진수 : 1E - 약어 : RS

당신이 할 수있는 것은 아닌 눈에 보이는 문자를 벗겨하는 strtr()를 사용합니다. An example by Joel Degan on PHP.net가 가야합니다.

0

필자가 상기 한 것처럼 PHP는이 경우 치명적이지 않은 오류가 발생합니다. 그것은 파일이 당신에 의해 생성되지 않은 경우에 대해 아무것도 할 수없는 많은 것들에 대해 불평 할 것입니다. 할 수있는 일은 나쁜 프로그래밍 습관을 사용하고 명령 앞에 @를 넣어 오류를 억제하는 것입니다.

@DOMDocument->LoadHTMLFile('test.html'); 

파일을로드해야하지만 오류는 "무시"됩니다. 무지가 행복하다?

+0

그게 정확히 문제입니다 : 파일이 나에 의해 수행되지 않습니다, 그리고 문제는로드 된 nodeValue는 RS 문자의 위치에서 자른 것입니다 ... 나는 그 사용자의 큰 오류 표시를 더 잘 보여줄 것이라고 생각합니다. case ... – pixeline

+0

바로 오류를 억제하는 이유는 파일을 제어하지 않기 때문입니다. DOMDocument에 모든 웹 사이트를로드하면 오류가 발생합니다. 그러나 @를 사용하여 오류를 표시하지 않으면로드 된 문서를 가져올 수 있어야합니다. 그렇게하기 쉽기 때문에 한번 시도해볼 가치가 있습니다. –

+0

경고를 표시하지 않지만 문제는 html이 해당 오류 문자를 지나서 구문 분석되지 않는다는 것입니다. – pixeline

관련 문제