Page 1 of 1

XSL에서 PHP 코드 삽입은 어떻게 하죠?

Posted: 2005 02 27 12:26 59
by okoru
만들고 있던 XSL의 div 부분을 지우고

Code: Select all

<script language="php">
	echo ("okoru");
</script>
이 것을 삽입했습니다. 물론 <? echo ("okoru"); ?>과 <?php echo ("okoru"); ?>도 해봤습니다.

..만, 에러는 안나는데 작동도 안하내요.
최근 PHP공부도 하기 시작했는데 XML 홈페이지엔 어떻게 적용 시킬지 좀 난감합니다.

HTML과는 확실히 연동이 된다던데, XHTML로 써서 안되는 것일까요?
뭔가 다른 방법이 있다면 알려주시지 않겠습니까?

이유를 알겠습니다.

Posted: 2005 02 27 16:39 05
by okoru
선배에게 물어보니 서버에서 PHP 해석기를 거치는 확장자를 HTML, HTM, PHP, PHP3 정도로만 제한한다고 하내요.

Re: 이유를 알겠습니다.

Posted: 2005 02 27 17:49 39
by tokigun
okoru wrote:선배에게 물어보니 서버에서 PHP 해석기를 거치는 확장자를 HTML, HTM, PHP, PHP3 정도로만 제한한다고 하내요.
파일 확장자는 php로 하고, 파일 맨 처음(<?xml...보다 더 앞)에 다음과 같은 코드를 넣어 주시면 될 것 같습니다. (수동으로 Content-Type을 바꿔 줄 수 있습니다)

Code: Select all

<?php header('Content-Type: application/xml'); ?>
application/xml에 대한 자세한 정보는 RFC 3023를 참고하세요.

- 토끼군

Posted: 2005 02 27 19:19 47
by okoru

Code: Select all

<?php header('Content-Type:text/xml'); echo('<?xml-stylesheet type="text/xsl" href="style.xsl"?>'); ?>
이런 식으로 해결 했답니다.

Posted: 2005 03 01 21:27 29
by 빛알갱이
okoru wrote:

Code: Select all

<?php header('Content-Type:text/xml'); echo('<?xml-stylesheet type="text/xsl" href="style.xsl"?>'); ?>
이런 식으로 해결 했답니다.
XML 문서에 대해서 MIME type으로 'text/xml'을 쓰는 것은 좋은 생각이 아닙니다. 그래서, 앞에서 '토끼군'님이 (.... '군'이 붙었는데, '님'을 붙이니 정말 이상하군요 :-)) RFC 3023을 읽어 보라고 한 것이고요. text/xml을 쓰면서 Content-Type 헤더에서 charset을 지정해 주지 않으면 무조건 US-ASCII로 간주하도록 되어 있습니다. 따라서, 굳이 'text/xml'을 쓰려면 다음과 같이 charset을 http 헤더에서 명시해 주어야 합니다.

Code: Select all

<?php 
  header('Content-Type: text/xml; charset=UTF-8'); 
  echo('<?xml-stylesheet........'); 
?>
그보다는 그냥

Code: Select all

<?php
  header('Content-Type: application/xml');
  echo ('<?xml version="1.0" encoding="utf-8">'); 
?>
와 같이 본문의 xml 시작 부분에서 선언해 주는 게 더 낫겠지요.

http://www.w3.org/TR/2002/NOTE-xhtml-me ... -20020801/
도 읽어 보세요. (영어인데, 내용 파악할 수 있죠? :-) 이런 문서들도 빨리 번역해서 더 많은 사람이 볼 수 있도록 해 주어야 하는데....)


어떤 파일을 php 엔진을 통해서 처리하느냐는 서버 설정하기에 달렸습니다. 한국에 있는 많은 웹 호스팅 사이트의 상당수(대부분?)가 대단히 신기하게도 html/htm도 php 엔진을 통과하도록 Apache 서버를 설정해 놓은 경우가 많나 봅니다. PHP를 전혀 쓰지 않은 html조차도 PHP 엔진을 통과하므로 속도가 늦어질 터인데, 왜 그렇게 하는지 알 수 없습니다. (PHP의 caching 기능을 이용하려고 그런다??) 'php'가 확장자로 붙은 경우는 거의 확실하게 모든 서버가 PHP 엔진에 연결해 놓았으므로 (PHP를 지원하는 곳이라면), PHP를 쓰고 싶으면 php 확장자를 붙이는 게 좋은 생각이겠지요(이미 그렇게 하셨습니다만, 참고로 말씀 드립니다.)

Posted: 2005 03 03 08:52 49
by tokigun
빛알갱이 wrote:(.... '군'이 붙었는데, '님'을 붙이니 정말 이상하군요 :-))
많이 들은 얘기네요 :) 저는 "토끼군"이라고 불리든 "토끼군님"이라고 불리든 별로 신경 쓰지 않는 편이니 그냥 그렇게 쓰셔도 됩니다.
빛알갱이 wrote:한국에 있는 많은 웹 호스팅 사이트의 상당수(대부분?)가 대단히 신기하게도 html/htm도 php 엔진을 통과하도록 Apache 서버를 설정해 놓은 경우가 많나 봅니다.
일반 html 파일에도 추가 기능을 덧붙인다던지 하는 게 많아서 그런 모양입니다. 심지어 htm에도 붙이고 난리가 아니군요. :S (제가 쓰고 있는 서버는 html/htm은 php를 통과하지 않도록 되어 있는데, 덕분에 설정이 다른 서버에서 파일들을 옮겨 올 때 확장자를 모조리 바꿔 줘야 했습니다.) 날로 된 html 파일에 캐시를 적용하는 건 별 의미가 없다고 생각합니다.

- 토끼군

Posted: 2005 03 03 10:07 44
by 빛알갱이
위에 적은 제 글에서 틀린 부분 : 편집하려다가 틀린 것을 기록에 남기기 위해 그냥 다시 씁니다.

XHTML 문서는 application/xml보다는 appication/xhtml+xml로 제공하는 것이 더 바람직하다고 합니다.

http://www.w3.org/TR/2002/NOTE-xhtml-me ... s-20020801
의 3.5절에 보면 요약이 되어 있습니다.

Posted: 2005 03 04 00:35 44
by 빛알갱이
빛알갱이 wrote:위에 적은 제 글에서 틀린 부분 : 편집하려다가 틀린 것을 기록에 남기기 위해 그냥 다시 씁니다.

XHTML 문서는 application/xml보다는 appication/xhtml+xml로 제공하는 것이 더 바람직하다고 합니다.
이런... 참 여기서는 xhtml이 아니라 그냥 xml이었지요. 그렇다면 application/xml을 써야겠지요.