[url=http://*] oder [url=*]

Zack

cookies vader
Hallo,
folgendes Problem. Ich habe eine function geschrieben die mir den url BB-Code in einen HTML-Tag wandelt.
PHP:
        $str = preg_replace('#\[url=(.*)\](.*)\[/url\]#Uis',
                            '<a href="\1">\2</a>',
                            $str);

jetzt folgendes Problem: nicht jeder User schreibt http:// vor die URL. Schriebt man nicht http:// davor wird folglich nicht auf das Web sondern auf den Server zugegriffen. Wie kann ich jetzt überprüfen ob der User http:// davor geschrieben hat oder nicht?
 
So viel ich weiß, wird bei der Eingabe einer URL auf diesen Server zugegriffen und die der Adresse zugewiesene IP ermittelt, mit der der PC über's Internet verbunden wird. Daher glaube ich nicht, dass das überhaupt möglich ist, ohne auf diesen Server zugreifen zu können.
 
Mit der strpos()-Funktion kannst du die Position des Vorkommens einer Zeichenkette in einer anderen Prüfen; der Rückgabewert false bedeutet, dass die gesuchte Zeichenkette in der anderen nicht enthalten ist.
 
Wieso prüfst du nicht einfach ob die Damain ein http:// enthält? zb.

PHP:
if (!preg_match('/^(http|https|news|irc)+:\/\/[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+\.([a-z0-9|\/]|[a-z0-9.a-z0-9|\/]){2,6}$/i',$_POST['homepage'])) {
  die( 'Ihre <u>Homepage-Adresse</u> muss in diesem Format sein: <u>http://www.domain.tld/</u><br />');

Ist zwar kein Sicherer Reguläre Syntax aber es funktioniert und reicht denke ich für deine Bedürfnisse.
 
Zurück