2017-03-09 5 views
2

Ich habe einen einfachen PHP und Jquery Chatroom für meine Benutzer. Ich ersetze derzeit die www. und http:// Zeichenfolgen mit einer verknüpften URL-Version von ihnen, um Links anklickbar zu machen. Das funktioniert super, aber nicht https:// Links. Was ändere ich, um http oder https zu machen? Hier ist der aktuelle CodeErsetzen Sie http und 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

Fügen Sie die 'S' und machen es optional. 'https?:' – chris85

+0

erkennt die s nicht: https://regex101.com/r/3RYM1H/2 – Kaboom

+0

Sie brauchen ein Leerzeichen, sonst wird ''^^ 'in Ihrem Test verbraucht. https://regex101.com/r/3RYM1H/3 oder ändern Sie die '[^] +' in '\ S +'. – chris85

Antwort

2

Verwenden preg_match Funktion anstelle von strpos zu "fangen" sowohl http und https Schema:

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

danke es hat funktioniert – Kaboom

+0

@Kaboom, gern geschehen – RomanPerekhrest