티스토리 뷰
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | /** * @brief 본문 내 적절한 배너 삽입 위치 분석 후 [AD] 표식을 심음 * @author darthJun (itzone.tistory.com) * @date 2015-07-16 */ function injectBannerSignToContent( $content ) { // 본문 문단 구분 < br > < br > 로 가정. 미니위니 에디터가 이러함 $paragraphs = preg_split( "/<br\s?\/?><br\s?\/?>/i" , $content ); $paragraphCount = count ( $paragraphs ); // 문단 수 $weight = 0; // 문단의 텍스트 가중치 $weights = array (); // 문단별 텍스트 가중치 // 문단들 텍스트 가중치 측정 for ( $i =0; $i < $paragraphCount ; $i ++) { $p = trim( $paragraphs [ $i ]); if (preg_match( '/(<center|<iframe|<table|<img)/i' , $p )) { $weight = 0; $weights [ $i ] = $weight ; } else { ++ $weight ; // 일단 가중치는 추가 if ( $weight >= 2) { // 가중치가 2 이상이면 // 하위 가중치들 가중치먹임 for ( $j =( $i -1); $j > 0; $j --) { if ( $weights [ $j ] < 1) break ; $weights [ $j ] += 1; } // 자신의 가중치는 일단 추가 전 가중치로 $weights [ $i ] = -- $weight ; } else { $weights [ $i ] = $weight ; } } } //print_r($weights); exit(); // 문단별 가중치 점수 디버깅 $isFirst = false; $max_weight = max( $weights ); $result = "" ; for ( $i =0; $i < $paragraphCount ; $i ++) { $cssClass = "p{$i}" ; // 가장 위 배너 삽입 위치 if (! $isFirst && $weights [ $i ] == 2) { $isFirst = true; $cssClass .= " adver" ; $paragraphs [ $i ] = "<!--[AD]-->" . $paragraphs [ $i ]; } // 가장 적절한 배너 삽입 위치 if ( $max_weight == $weights [ $i ]) { $cssClass .= " adver" ; $paragraphs [ $i ] = "<!--[AD]-->" . $paragraphs [ $i ]; } $result .= '<p class="' . $cssClass . '">' . $paragraphs [ $i ] . '</p>' ; } return $result ; } |
'웹프로그래밍 > PHP' 카테고리의 다른 글
PHP CLI Lint (0) | 2015.08.24 |
---|---|
Codeigniter Only variable references should be returned by reference (0) | 2015.08.05 |
XE 위젯을 모듈에서 표시하는 법 (0) | 2015.06.05 |
CodeIgniter Form action POST the action ... now allowed Error (2) | 2015.03.19 |
PHP Composer package version 표현법 (0) | 2015.02.25 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- Make Use Of
- How to geek
- 인터넷 통계정보 검색시스템
- 트위터 공유 정보모음
- 웹표준KR
- 치우의 컴맹탈출구
- Dev. Cheat Sheets
- w3schools
- Dev. 조각들
- ASP Ajax Library
- CSS Tricks
- WebResourcesDepot
- jQuery Selectors Tester
- DeveloperSnippets
- Smashing Magazine
- Nettuts+
- devListing
- 웹 리소스 사이트(한)
- Mobile tuts+
- Dream In Code
- Developer Tutorials
- CSS3 Previews
- 자북
- 안드로이드 사이드
- Code Visually
- Code School
- SQLer.com
- 무료 파워포인트 템플릿
- iconPot
- Free PowerPoint Templates
- Design Bombs
- Web Designer Wall
- 1st Webdesigner
- Vandelay Design
- 무료 벡터 이미지 사이트들
- Tripwire Magazine
- Web TrendSet
- WebMonkey
- 윤춘근 프리젠테이션 디자이너 블로그
- cz.cc 무료 DNS
- [웹하드] MediaFire
- [웹하드] DivShare
- 한컴 인터넷 오피스
TAG
- 한글
- Android
- 안드로이드
- Chrome
- sencha touch
- iphone
- 워드프레스
- Prototype
- JQuery
- CSS
- git
- Debug
- IE
- Mac
- Linux
- centos
- classic asp
- iis
- ASP
- nodejs
- JSON
- laravel
- Wordpress
- PHP
- nginx
- API
- javascript
- IOS
- Docker
- mssql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함