@ 기호가 앞에 붙은 사용자 이름이 포함 된 텍스트가 있습니다. 예 : 나는 예를 위해, 링크가 사용자 이름의 모든 차례 나오는 대체 할preg_replace를 사용하고 일치 항목을 얻는 방법은 무엇입니까?
One day @john decided to ask @jane out.
, 나는 링크 사용자와 @user을 대체 할 것이라고 말 예 수 있습니다 :
One day link-john decided to ask link-jane out.
이는 다음 명령을 수행 할 수 있습니다
또한preg_replace('`@([a-zA-Z0-9]{2,15})`', 'link-$1', $text);
내가했을 preg_match를 같은 모든 경기의 배열을 취득하고 싶지만, preg_replace이다가 보이지 않기 때문에 내가 드릴 수 없습니다 해당 배열을 제공합니다. 이것을 달성하는 가장 효율적인 방법은 무엇입니까? preg_match를하고 나중에 preg_replace가 자원 낭비가 될 것 같은 느낌이 들지 않습니까?
더 좋은 방법이 있다고 생각하시는 분은 보내 주신 의견을 보내 주시면 감사하겠습니다.
감사합니다.
아니, 더 나은 옵션이 없습니다. 'preg_replace_callback'을 사용하여 콜백에서 일치 항목을 대체하고 어셈블 할 수 있습니다. 그러나 그것은 실제로 "더 나은"자격을 얻지 못합니다. - 자원에 관해서는 항상 * after * 프로파일 링을 최적화하십시오. – mario