티스토리 뷰
/** * @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] = "". $paragraphs[$i]; } // 가장 적절한 배너 삽입 위치 if ($max_weight == $weights[$i]) { $cssClass .= " adver"; $paragraphs[$i] = "". $paragraphs[$i]; } $result .= ''. $paragraphs[$i] .'
'; } 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
- classic asp
- 안드로이드
- iis
- nginx
- JSON
- Linux
- CSS
- JQuery
- javascript
- centos
- Mac
- nodejs
- Wordpress
- git
- Chrome
- Android
- sencha touch
- Debug
- iphone
- IE
- API
- laravel
- IOS
- mssql
- PHP
- 워드프레스
- Prototype
- 한글
- Docker
- ASP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함