정규식 질문드립니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
정규식 질문드립니다.

QA

정규식 질문드립니다.

본문

아래 소스를 실행하면 'naver.com daum.net nate.com' 를 제외하고는 모두 'http://도메인' 으로 변경됩니다.

'naver.com daum.net nate.com' 등 'www.' 가 없는 경우에도 'http://도메인' 으로 변경되도록 하기 위해서는 어떻게 하면 좋을지 자문 부탁드립니다.

 

 

$str = "www.naver.com naver.com daum.net www.daum.net nate.com www.nate.com http://www.naver.com http://naver.com http://daum.net http://www.daum.net http://nate.com http://www.nate.com";
 
$str = preg_replace("/(^|[\"'\s(])(www\.[^\"'\s()]+)/i", "http://\\2</A>", $str);
 
echo $str;  
 

이 질문에 댓글 쓰기 :

답변 1

다음처럼 해 보세요.

$str = preg_replace("/(^|[\"'\s(])([^\"'\s(https?:\/\/)]+)/i", "http://\\2</A>", $str); 

'www', 'http' 여부와 상관없이 모두 링크로 수정됩니다만, 문제는 일반 텍스트까지 전부 변환됩니다..

→ ex)  test http://Comment http://테스트 http://댓글 http://www.daum.net http://daum.net http://www.daum.net http://daum.net http://www.naver.com http://naver.com http://www.naver.com http://naver.com

지금 확인해보니 상기 내용과 같은 문제가 있네요 ..ㅠㅠ

주어진 예제만 가지고 눈으로 풀고 있습니다.
단서를 주기 위함이죠.
여러 가능한 경우를 생각하고 풀고 있지는 않다는 겁니다.
다음 처럼 해 보세요.

$str = preg_replace("/(^|[\"'\s(])([^\"'\s(https?:\/\/)]+)\.\w+/i", " http://\\2</A>", $str);

답변을 작성하시기 전에 로그인 해주세요.
전체 124,409 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT