티스토리 뷰
/** * @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
TAG
- API
- Mac
- classic asp
- IE
- laravel
- iphone
- nodejs
- mssql
- ASP
- Linux
- IOS
- Docker
- Debug
- 한글
- JSON
- nginx
- Prototype
- JQuery
- 워드프레스
- centos
- Android
- 안드로이드
- iis
- Wordpress
- git
- sencha touch
- CSS
- javascript
- macos
- PHP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함