나는 페이스 북의 게시물을 텍스트로 반환하는 PHP 함수가 있습니다. 그러나 모든 # -hash 태그를 클릭 할 수 있고 http://www.facebook/hashtags/ {the-hashtag}을 참조하고 싶습니다. 나는 다음과 같은 preg_replace이다와 함께이 일을 시도,하지만 분명히 뭔가 잘못된 일을 해요 :regex에서 역 참조 사용
$postMessage = preg_replace('/#[^(\s|\p{P})]*', '<a href="https://www.facebook.com/hashtag/$1" title="$1"></a>', $postMessage);
이 예상 링크 출력을, 그래서 정규식은 잘 보이지만, 출력은 다음과 같습니다
<a href="https://www.facebook.com/hashtag/" title=""></a>
그래서 저는 뒤쪽 참조에서 뭔가 잘못하고 있다고 확신합니다. 그러나 나는 무엇이 확실하지 않습니다.
(? 사이드 질문의 global
매개 변수 preg_replace이다에서 필요하지 않습니다 내가 JS에서 사용하는 데 사용하고 있습니다.)
$postMessage
의 예 :
Android Wear testen doen we met de Sony #Smartwatch3. Binnenkort volgt een uitgebreide review op de website ;-)
출력은 다음과 같아야합니다
Android Wear testen doen we met de Sony <a href="https://www.facebook.com/hashtag/smartwatch3" title="Smartwatch3">#Smartwatch3</a>. Binnenkort volgt een uitgebreide review op de website ;-)
다른 PHP는 구분 기호,'~ (#의 [^을 \ S] * \ S)를 사용 ~'하고'g' 수정을 추가 할 필요가 없습니다. –
제대로 작동합니다. '$ postMessage'의 내용은 무엇입니까? – Toto
@JESUISCHARLIE 제 편집을 참조하십시오. 어쩌면 뒤에있는 지시어에서 빼야하는'#'과 관련이 있을지도 모른다. –