[정규식] 해시태그(#) 뽑아내기
페이지 정보
작성자 MintState 댓글 0건 조회 12,622회 작성일 15-11-12 12:09본문
[정규식] 해시태그(#) 뽑아내기
해시태그를 뽑아 오는 정규식입니다.
결과
* 추가
https://saikyo4713.blog.me/221023839399
해시태그를 뽑아 오는 정규식입니다.
<?php $data = "가나다 #다라마 ABC #QWE 오오오오오오오오 #MINTSTATE #ㅊㅊㅊㅊ BBS"; preg_match_all("/\\#([0-9a-zA-Z가-힣]*)/", $data, $hashtags); print_r($hashtags); ?>
결과
* 추가
https://saikyo4713.blog.me/221023839399
<?php //본문에서 해시태그 변환 function string_to_hashtag_content($os_type, $string) { try { if(in_array($os_type, ['A', 'I', 'W']) && $string) { $result = array(); $re_all = "/(^|\s)*#(.+?)(?=[\s,#)]|$)/"; $re = "/[ #\&\+\-%@=\/\\\:;,\.'\"\^`~\_|\!\?\*$#<>()\[\]\{\}]/i"; preg_match_all($re_all, $string, $matches); foreach($matches[0] as $s) { $str = strip_tags(trim($s)); $str = substr($str, 1, strlen($str)-1); //특수문자 대체 if(!preg_match($re, $str)) { $str = string_to_replace($str); if(strlen($str) > 1) { switch($os_type) { case "A" : $result["#" . $str] = "<a href='javascript:alert(\"" . $str . "\")'>#" . $str . "</a>"; break; case "I" : $result["#" . $str] = "<a href='javascript:alert(\"" . $str . "\")'>#" . $str . "</a>"; break; default : break; } } } } return strtr($string, $result) . ''; } else throw new Exception (''); } catch (Exception $e) { return $e->getMessage(); } } //본문에서 해시태그 추출 (배열) function string_to_hashtag_db($string) { try { if($string) { $result = array(); $re_all = "/(^|\s)*#(.+?)(?=[\s,#)]|$)/"; $re = "/[ #\&\+\-%@=\/\\\:;,\.'\"\^`~\_|\!\?\*$#<>()\[\]\{\}]/i"; preg_match_all($re_all, $string, $matches); foreach($matches[0] as $s) { $str = strip_tags(trim($s)); $str = substr($str, 1, strlen($str)-1); if(!preg_match($re, $str)) { $str = string_to_replace($str); if(strlen($str) > 1) $result[] = $str; } } return array_unique($result); } else throw new Exception (''); } catch (Exception $e) { return array(); } } //본문내용 해시태그 변환 (본문 저장용으로 사용가능) function string_to_hashtag($mode, $string) { $change = array(); preg_match_all("/(^|\s)*#(.+?)(?=[\s,#)]|$)/", $string, $matches); foreach ( $matches[0] as $s ) { $str = strip_tags(trim($s)); $str = substr($str, 1, strlen($str)-1); //특수문자 대체 if(!preg_match("/[ #\&\+\-%@=\/\\\:;,\.'\"\^`~\_|\!\?\*$#<>()\[\]\{\}]/i", $str)) { $str = string_to_replace($str); if(strlen($str) > 1) $change["#" . $str] = "<TAG>#".$str."</TAG>"; } } return strtr($string, $change).''; } //본문내용 해시태그 표기 (본문 저장용으로 사용가능) function hashtag_to_string($mode, $string) { $change = array(); preg_match_all("/<TAG>(.*?)<\/TAG>/", $string, $matches); foreach ( $matches[0] as $s ) { $str = strip_tags($s); switch($mode) { case "A" : $change[$str] = "<a href='javascript:alert(\"" . $str . "\")'>" . $str . "</a>"; break; case "I" : $change[$str] = "<a href='javascript:alert(\"" . $str . "\")'>" . $str . "</a>"; break; case "W" : $change[$str] = "<a href='javascript:alert(\"" . $str . "\")'>" . $str . "</a>"; break; } } return strtr($string, $change).''; } function string_to_replace($str) { return $str; } ?>
|
댓글목록
등록된 댓글이 없습니다.