2015-02-05 7 views
-1

@[123456:name]과 같은 문자열을 구문 분석해야하고 어떤 것을 얻고 싶습니다. <a href="link/12345/">name</a>. 그것을 할 수있는 쉬운 방법이 있습니까? 페이스 북 에서처럼 우리는 누군가를 태그합니다. phb처럼 링크를 만들어야합니다. FB link문자열을 구문 분석하고 PHP의 링크로 변환

+4

당신은 아무것도 시도? – Rizier123

+0

preg_replace를 사용해 보았지만 여러 인스턴스에서 작동하지 않습니다 –

답변

1

preg_replace 함수를 사용해야합니다.

$re = "/@\\[([^:]+):([^\\]]+)]/m"; 
$str = "@[123456:name]"; 
$subst = "<a href=\"link/\1/\">\2</a>"; 

$result = preg_replace($re, $subst, $str); 

DEMO

+0

이 문자열은 어떨까요? $ string = "@ [1234343 : 첫 번째] 테스트는 test @ [1234343 : 초]"; 작동하지 않습니다 –

+0

https://www.regex101.com/r/oI2jF9/9 참조하십시오. 작동합니다. –

0

사용 preg_replace는 :

preg_replace('/@\[([0-9]*):(.*)\]/', '<a href="link/\1/">\2</a>', $string); 
+0

다음과 같은 다중 인스턴스가있는 경우 어떻게 작동할까요? $ string = "@ [1234343 : first] and test is test [1234343 : second] "; –

관련 문제