2010-06-12 5 views
0

배경 정보 : 웹 응용 프로그램은 MySQL 데이터베이스의 텍스트 열에 XML을 저장합니다. 이 XML은 응용 프로그램에 대한 트랜잭션을 나타냅니다.PHP는 자동으로 문자열을 구문 분석합니까?


내 라이브러리를 테스트 할 때 문제가 발생합니다. PHP 내에서 문자열이 있습니다 :

$s="<flist><transaction amount=\"10\" type=\"income\">Initial Amount</transaction></flist>"; 

그러나이 문자열을 에코하거나 봉헌 할 때마다 "초기 금액"이됩니다. PHP의 기능이 누락 되었습니까? 이 문제를 어떻게 해결할 수 있습니까? 와우! 이 게시물을 만들면서 StackOverflow는 해당 XML을 $ s = Initial Amount로 변환합니다. 제발 도와주세요 ... 감사합니다. 완전히 저를 당황하게합니다.

+0

브라우저에서 "소스보기"를 클릭 해 보았습니까? – Artelius

+0

HTML입니다. HTML로 태그를 분석합니다. Go figure –

+0

전 태그가 그것을 막아 버렸을 것이라고 생각했지만, 그렇습니다. 그것이 문제였습니다. – PlagueEditor

답변

3

PHP는 자동으로 문자열을 구문 분석하지 않습니다.

당신은 그것을 반향과 브라우저에서 볼 수 있습니까? 브라우저가 알 수없는 태그를 건너 뛰고 가능한 것을 보여줄 가능성이 큽니다. 당신은 다음처럼 출력()은 htmlspecialchars에 추가 고려를 할 수 있습니다 : 웹 소스를 볼 때

echo htmlspecialchars($s); 

당신은 또한 제대로 볼 수 있습니다. 이것은 현재 버전을 손상시키지 않으면 서 향후 버전을 지원하는 HTML의 기능입니다.

+0

와우; 그거였다. 나는 벙어리가 느껴진다. 나는 pre 태그로 그것을 둘러싼다고 생각했다. 그것이 문제였습니다. 고맙습니다! – PlagueEditor

관련 문제