|
|
|
|
민준이 |
|
|
|
|
|
|
|
|
|
«
2010/03
»
| 일 |
월 |
화 |
수 |
목 |
금 |
토 |
| |
1 |
2 |
3 |
4 |
5 |
6 |
| 7 |
8 |
9 |
10 |
11 |
12 |
13 |
| 14 |
15 |
16 |
17 |
18 |
19 |
20 |
| 21 |
22 |
23 |
24 |
25 |
26 |
27 |
| 28 |
29 |
30 |
31 |
|
|
|
|
| 월별보기 |
|
|
|
|
|
|
| | |
|
'공부/PHP'에 해당되는 글 4건
|
| |
|
|
|
|
| | |
| | |
|
rss 내용을 파싱하는 간단한 함수입니다.
|
| Category : 공부/PHP |
Date : 2008/11/21 10:33 |
|
|
|
rss 내용을 파싱하는 간단한 함수입니다. (rss 파일은 fopen이나 fsocket 등등 알아서 읽어오셔야합니다;;) HTML 파싱용으로도 사용가능합니다 덜덜;;
function _parser($tag, $str){ preg_match_all("/<".$tag.">(.*)<\/".$tag.">/iUs", $str, $match); for($i=0, $total=sizeof($match[1]); $i<$total; $i++){ $match[1][$i]=str_replace("<![CDATA[", "", $match[1][$i]); $match[1][$i]=str_replace("]]>", "", $match[1][$i]); } return $match[1]; }
원리는 간단합니다. <a> <b>하하하</b> <b> <c>aaa하하하</c> <c>222</c> </b> </a>
이런구조를 파싱하시려고 할때 $tmp 변수에 위 내용이 있다고 가정할때
* a 태그를 가져올때 $a = _parser("a", $tmp);
$a[0]의 값 <b>하하하</b> <b> <c>aaa하하하</c> <c>222</c> </b>
* b 태그를 가져올때 $b = _parser("b", $a[0]);
$b[0]의 값 하하하
$b[1]의 값 <c>aaa하하하</c> <c>222</c>
* c 태그를 가져올때 $c = _parser("c", $b[1]); // 두번째 b 태그에만 c태그가 들어있으므로
$c[0]의 값 aaa하하하
$c[1]의 값 222
----------------------------------------------------------------------------------------------
* UTF-8로 인코딩 처리하기 $data 변수에 rss 내용이 있을경우 if(preg_match("/encoding=\"(.*)\"/Us", $data, $match)){ if(strtolower($match[1]) != "utf-8"){ $data=iconv($match[1], "UTF-8", $data); } }
-------------------------------------------------------------------------------------------------
* 위 정보를 토대로 RSS 파싱하기 $data 변수에 rss 정보가 들어있다고 가정합니다. list($channel) = _parser("channel", $data);
// RSS 제공하는 제목입니다. list($channel_title) = _parser("title", $channel);
// RSS url 입니다. list($channel_link) = _parser("link", $channel);
// RSS 설명입니다. list($channel_description) = _parser("description", $channel);
echo '<h2><a href="'.$channel_link.'" target="_blank">'.$channel_title.'</a> : '.$channel_description.'</h2>'.$list.'</ul>';
$channel_item = _parser("item", $channel); for($i=0, $total=sizeof($channel_item);$i<$total; $i++){ $item = $channel_item[$i]; list($title) = _parser("title", $item); // RSS기사 제목 list($link) = _parser("link", $item); // RSS기사 url list($pubDate) = _parser("pubDate", $item); // RSS기사 날짜 $pubDate= date("m/d", strtotime($pubDate));
echo '<li>'.$date.' <a href="'.$link.'">'.$title.'</a></li>'; } |
민준이
2008/11/21 10:33
2008/11/21 10:33
|
|
|
|
|
|
 |
http://webpro2004.com/trackback/109 |
|
|
|
|
| | |
| | |
|
쿼리구문이 시간초과 되는거 방지
|
| Category : 공부/PHP |
Date : 2008/06/25 17:45 |
|
|
|
| @set_time_limit(0); |
민준이
2008/06/25 17:45
2008/06/25 17:45
|
|
|
|
|
|
 |
http://webpro2004.com/trackback/89 |
|
|
|
|
| | |
| | |
|
랜덤값 창출.. 5,000 이하
|
| Category : 공부/PHP |
Date : 2008/06/25 17:45 |
|
|
|
srand((double) microtime()*1000000); $rand = rand(1000,5000); |
민준이
2008/06/25 17:45
2008/06/25 17:45
|
|
|
|
|
|
 |
http://webpro2004.com/trackback/88 |
|
|
|
|
| | |
| | |
|
주소창 암호화
|
| Category : 공부/PHP |
Date : 2008/06/25 16:57 |
|
|
|
base64_encode($code) ->보낼때 base64_decode($code) -> 사용할때 |
민준이
2008/06/25 16:57
2008/06/25 16:57
|
|
|
|
|
|
 |
http://webpro2004.com/trackback/78 |
|
|
|
|
| | |
|
|
|
|
|
최근 올라온 글 |
 |
|
|
|
|
|
|
|
|
|
|
블로그 최근 덧글 |
 |
|
|
|
|
|
|
|
|
|
|
최근 엮인글 |
 |
|
|
|
|
|
|
|
|
|
|
즐겨찾기
|
|
|
|
|
|
|
|
|
|
|
| Today :
|
14 |
|
| Yesterday :
|
39 |
|
| Total :
|
13624 |
|
|
|
|
|
|
|
| Powered by
|
Textcube 1.7.1 : Risoluto |
|
| Skin by
|
mulder21c |
|
|
|
|
|