⚠ 이 글은 2년 이상 지난 이야기에요. 읽으실때 참고!
개발
Backend
PHP 문자열 중 url만 걸러내서 태그를 씌워 반환
524 views as of March 5, 2019.
게시글 내용이나 댓글 내용등에 url이 있다면 해당 문자열을 추출해 특정 태그를 씌워 반환하는 코드입니다.
url 주소는 정말 url 답게 별도의 링크 태그로 변환해줍니다. 특이점이라면 사용자는 태그 고려 전혀 안하고 url만 평범하게 입력하면 뒷단에서 처리해준다는 점이죠.
<?php
/**
* 인수값으로 넘어온 텍스트 문장중에 url주소형태가 있다면 해당 텍스트에 링크를 씌워 반환합니다.
* @param $text
* @return mixed
*/
function url_text($text) {
// The Regular Expression filter
$reg_exUrl = "/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/";
// Check if there is a url in the text
if(preg_match_all($reg_exUrl, $text, $url)) {
// make the urls hyper links
foreach ($url[0] as $link) {
$text = str_replace($link, ".$link."" class="inner-link" target="_blank">".$link."" class="inner-link" target="_blank">.$link."", $text);
}
}
return $text;
}
Copy
좀 더 응용한다면 url 주소가 추출된 정보로 페이지 조회를 실시해 타이틀정보나 섬네일 등을 빼와서 태그에 같이 제공하는 방법도 있을거에요.
꼭 태그를 씌울때 위에 처럼 안씌우고 span 태그로 별도의 스크립트 처리대상이 되게 할 수도 있구요.
응용하기 나름인 베이스 코드라고 보시면 되겠습니다.
정규표현식 자체는 구글링을 통해 구했고 테스트하다가 의도치 않은 검출에 대해서 일부 자체적으로 수정했습니다.
#개발 #PHP #url #파싱 #정규식 #regex
0
개의 댓글
Collection. Backend
01.
PHP 개행문자(엔터)나 특정 태그를 제거하는 방법
2018
02.
PHP 배열, 다중배열속의 값 검사
2019
03.
PHP 시간 차 계산
2019
04.
PHP 공인 IP 주소 얻어오기
2019
05.
PHP 문자열 중 url만 걸러내서 태그를 씌워 반환
2019
06.
PHP 파일 열고 처음부터 다시 쓰기
2019
07.
PHP 세션 유지시간 변경
2019
08.
PHP 이미지 용량 리사이징
2019
09.
MySQL CONCAT 기능에 대해서
2019
10.
MySQL GROUP_CONCAT 기능으로 쿼리 결과를 하나로 합치기
2019
11.
PHP 사이트맵 제작 (1)
2024
12.
PHP 사이트맵 제작 (2)
2024