2017-03-09 1 views
2

난 내 사용자를위한 간단한 PHP와 jquery chatroom 있습니다. 현재 www.http:// 문자열을 링크 된 버전으로 대체하여 링크를 클릭 할 수있게했습니다. 이것은 대단한 일이지만, https:// 링크를 잡지 않습니다. http 또는 https로 변경하려면 어떻게해야합니까? 여기에 현재 코드http와 https ..를 교체 하시겠습니까?

$find = 'http://'; 
$check_for_links = strpos($message, $find); 
if($check_for_links === false) { 
    $message = preg_replace('/((www)[^ ]+)/', '<a href="http://$1">$1</a> ', $message); 
} else { 
    $message = preg_replace('/((http:\/\/)[^ ]+)/', '<a href="$1">$1</a> ', $message); 
} 
+0

는's'를 추가하고 선택합니다. 'https? :' – chris85

+0

은 s를 인식하지 못합니다 : https://regex101.com/r/3RYM1H/2 – Kaboom

+0

그렇지 않으면'[^]'이 테스트에서 계속 소모됩니다. https://regex101.com/r/3RYM1H/3 또는'[^] +'를'\ S +'로 변경하십시오. – chris85

답변

2

사용 preg_match 기능을 대신 strpos "캐치"를 모두 httphttps 계획 :

if (!preg_match("/https?:/", $message)) { 
    $message = preg_replace('/((www)[^ ]+)/', '<a href="http://$1">$1</a> ', $message); 
} else { 
    $message = preg_replace('/((https?:\/\/)[^ ]+)/', '<a href="$1">$1</a> ', $message); 
} 
+0

감사합니다. – Kaboom

+0

@Kaboom, 대단합니다. – RomanPerekhrest

관련 문제