String: Am Anfang ein"http://" hinzufügen, wenn nicht vorhanden

slaughter89

Mitglied
Hi,
ich hab mich mal hingesetzt und was geschrieben.
Ich wollte nun wissen, ob es so richtig ist.

Folgende Funktion soll vor einem String $user_site ein "http://" davor schreiben, falls dies noch nicht dort steht. Falls der String $user_site leer ist, soll nichts damit passieren.

PHP:
	$http   = 'http://';
	$pos = strpos($user_site, $http);
	if ($pos === false && !empty($user_site)) {
	    $user_site = $http.$user_site;
	}
 
Sollte funktionieren...

Ich weiß jetzt nicht was performanter ist, das hier oder mit [phpf]substr[/phpf] prüfen, ob die ersten 7 Zeichen eben http:// entsprechen.
Ich denke aber, dass sich beides nicht viel nehmen wird...
 
Also meine "optimale" Lösung wäre das hier:

PHP:
<?php
$url = 'www.test.de';
$user_site = ( substr($url, 0, 7) != 'http://' ? 'http://'.$url : $url );  
?>
 
Zuletzt bearbeitet:
Was ist mit, sagen wir mal, „httpd.apache.org“? Wenn dann sollte auch der gesamte URL-Schema-Teil („http“) samt schemaspezifischen Teil („//“) geprüft werden:
PHP:
$user_site = ( substr($url, 0, 7) != 'http://' ? 'http://'.$url : $url );
Bei anderen URL-Schemata (etwa „https“, „ftp“, „mailto“) schlägt das jedoch fehl. Deshalb wäre eine nähere Untersuchung notwendig.
 
Stimmt, daran hab ich gar nicht gedacht... Ist geändert.

Da er die Variable bei sich user_site nennt, denke ich, geht es um einen Eintrag in einem Gästebuch o. ä. wo der Benutzer eine Website angeben kann, deshalb hab ich andere Formate bewusst außer Acht gelassen.
 
Zurück