July 3rd, 2006 1 Comment »

- 현재 한반도 구름 사진
예전에 만들었던 한반도 구름사진 페이지 http://hanury.net/wp/astro/claud/ 가 호스팅 시작후에 서버 설정에 의해 안돌아 가고 말았다.
호스팅을 맏긴 cafe24에서 php 5를 지원 안해서
•php4에서 stream_get_contents()가 지원이 안되고,
•sensitive URL Open을 막아서 인데, 어쩔수 없이
$fp = fopen($url, 'r');
$str = stream_get_contents($fp);
위에 2줄로 끝나던 코드를
my_stream_get_contents란 함수를 추가해주고(php4에서 없으므로)
fopen만으로 열던 것을 socket을 이용해서 열도록 수정해야만 했다…
function my_stream_get_contents($fp){
$buf = "";
while(!feof($fp)){
$buf .= fread($fp,1024*8);
}
return($buf);
}
$fp = fsockopen($host, 80, $errno, $errstr, 12);
fputs($fp, "GET $url HTTP/1.0\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: http://$host\r\n");
fputs($fp, "User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT5.1)\r\n\r\n");
$str = my_stream_get_contents($fp);
아! 점점 코드 지저분해 진다.
태그: php, 프로그래밍
카테고리: Astronomy, Computer
June 26th, 2006 No Comments »

그림과 같이 하늘이가 태어난 지 몇일 지났는지 블로그 헤더에 붙였다.
echo(time()-date("U",mktime(date("H"),date("i"),date("s"),2,21,2006)))/60/60/24+1;
다소 지저분해 보이긴 하지만, 헤더에 그냥 붙일꺼라서…
끝에 +1 한 이유는 우리나라에서는 태어난날을 1일로 친다고해서, +1일 해줌.
태그: php, 프로그래밍
카테고리: Computer, Hanury
June 22nd, 2006 3 Comments »

장마라, 별 볼일 없지만, 날씨 좋은날 주말이 다가오면 자주 찾아가는 곳 중의 하나가 기상청 위성 사진 페이지이다.
그래서 기상청에서 현재 위성 이미지를 가져와서 보여주는 페이지를 astro 메뉴 밑에 작성하려고 짜 보았다.
php에서 httprequest 같은거 없나 하고 한참을 찾았는데, 그냥 파일처럼 처리하면 되네…
역시 모르면 고생…
$url = 'http://www.kma.go.kr/kor/weather/picture/picture_01.jsp';
$base_url = 'http://www.kma.go.kr';
$fp = fopen($url, 'r');
$str = stream_get_contents($fp);
if ( ereg ( "(/kma_sat/DATA/MTSAT/GPL/wli[0-9]+\.gif)" , $str, $reg)){
echo "< img src='http://www.kma.go.kr$reg[0]' / >";
}else{
echo "fail to get image";
}
xml로 제공해주면 좋으련만….
태그: php, 프로그래밍
카테고리: Astronomy, Computer
June 22nd, 2006 7 Comments »
이전 글에 이어서 계속….
바로 밑에 Ajax가 어쩌구 XMLHttpRequest가 저쩌구 했는데,
브라우저간 약간 씩 서로 다른 동작이나, IE인 경우엔 ActiveX 경고창이 뜨고해서,
서버에서 렌더링 해서 내리기로 변경….
코드도 의외로 간단.
$xml = new DomDocument;
$xml->load("http://www.jwz.org/cheesegrater/RSS/apod.rss");
$xsl = new DomDocument;
$xsl->load("apod.xsl");
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
apod.rss와 apod.xsl을 읽어와서
apos.rss를 apod.xsl을 이용해서 렌더링 해서 그냥 화면에 뿌려줌. 끝
apod.xsl파일
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/rss/channel">
<xsl:value-of select="pubDate"/> by NASA
<xsl:value-of select="item/description"
disable-output-escaping = "yes" />
</xsl:template>
</xsl:stylesheet>
/rss/item/description의 내용이 escape처리된 html 소스인데, 그냥 처리하면 화면에 html 소스가 출력된다.
value-of의 disable-output-escaping 속성 “yes”로 해주어야 한다.(이거 몰라서 한참을 찾았음)
태그: apod, php, xmlhttprequest, xslt, 프로그래밍
카테고리: Astronomy, Computer