1
$pattern = '/search\s(#)+(.+)/';
$string = "search #test";
$string = preg_replace($pattern, 'search <a href="https://example.com/search?q=\2" target="_blank">https://example.com#\2</a>', $string);
echo $string;
2
$pattern = '/search\s(http(s)*(.*))(#)+(.+)/';
$string = "search https://example.com/search#test";
$string = preg_replace($pattern, 'search <a href="https://example.com/search#\5" target="_blank">#\5</a>', $string);
echo $string;
단순히 첫 번째 적용 동일하게 유지되어야하며, 다음 텍스트에 두 번째는 당신이 처리 할.
$pattern = '/search\s(#)+(.+)/';
$string = "whateveryouwant";
$string = preg_replace($pattern, 'search <a href="https://example.com/search?q=\2" target="_blank">https://example.com#\2</a>', $string);
$pattern = '/search\s(http(s)*(.*))(#)+(.+)/';
$string = preg_replace($pattern, 'search <a href="https://example.com/search#\5" target="_blank">#\5</a>', $string);
편집
2의 경우, 일반적인 URL을 첫 번째 경우를 들어
$pattern = '/search\s(http(s)*(.*))(#)+(.+)/';
$string = preg_replace($pattern, 'search <a href="\1#\5" target="_blank">#\5</a>', $string);
, 아니 URL을 인식 할 수 없습니다.
시도한 바가 있습니까? –
문자열에 해시 태그가 포함 된 특정 조건에서 HTML 앵커 태그를 문자열에 추가하고 싶습니다. –
동일한 저자의 [문자열을 URL로 링크하는 방법은?] (http://stackoverflow.com/questions/26774799/how-to-linkify-urls-in-a-string-with-php) – smathy