[정규식] 해시태그(#) 뽑아내기
페이지 정보
작성자 MintState 댓글 0건 조회 13,116회 작성일 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;
}
?>|
|
댓글목록
등록된 댓글이 없습니다.





[정규식] 해시태그(#) 뽑아내기