2012-02-15 7 views
0

내가는 "태그"시스템을 사용하려면이 코드를 사용하고 있습니다 : @username을 그리고 그것은 찾아 작품preg_replace이다 제거 공간이 너무

preg_replace("/@(\w+)/", '<a href="http://www.buddyweb.me/profile/?username=$1">@$1</a>', ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"http://assets.buddyweb.me/scripts/run_link.php?url=\\0\" target=\"_blank\" class = \"user_created_link\" title = \"External Link\">\\0</a>", $original)); 

프로필까지 연결 하겠지만 다음 두 가지가있는 경우 서로 예에 :

@someone @else

는 프로필에까지 연결됩니다,하지만 그들 사이의 공간, 예를 들면 제거합니다

나는 쉽게 뭔가하지만 난 내가 정말, 내가 위의 코드에서 /의 제거 시도했습니다 제거하기 위해 무엇을할지 모르겠다 PHP에 좀 새로운 해요 알고 있지만 그 전체를 폐허

수정

전체 코드를 게시했습니다.

+0

내가 아마도 뭔가있다, 문제가 정규식에 생각하지 않습니다 –

+0

... 나를 위해 공간을 제거하지 않음 출력 부. – iDifferent

+0

전체 코드를 게시했습니다. – Frank

답변

0

난 당신이 앵커 태그 뒤에 공백을 추가 할 수 있습니다 생각 : 당신이 g 수정자를 지정하지 않은 원인 일반의 마지막에 모든 @usernames을 연결 않습니다

preg_replace("/@(\w+)/", '<a href="http://www.buddyweb.me/profile/?username=$1">@$1</a> ',$string) 
+0

전체 코드를 게시했습니다. – Frank

0

그것은 이상한 표현. g 수정자가 모든 발생을 대체합니다. 당신이 2 공백으로 끝나야 Lbu의 대답은 실제로 1 여분의 공간을 추가해야합니다.

preg_replace("/@(\w+)/g", '<a href="http://www.buddyweb.me/profile/?username=$1">@$1</a>',$string) 

연습 할 수있는 좋은 웹 사이트는 http://gskinner.com/RegExr/ 행운입니다! :)

+0

전체 코드를 게시했습니다. – Frank

+0

@Rez, PCRE는'g' 수정자를 이해하지 못합니다. 'error_reporting' 값을 올릴 필요가 있습니다. 이 코드를 사용할 때 PHP가 경고를 표시해야합니다. – Charles

관련 문제