Seite 1 von 1

WebLink umändern

Verfasst: 20.12.2004 15:37
von FSKiller / Phoenix
Hoi ich brauche mal geschwindt Hilfe

Code: Alles auswählen

if ($website != "")
	{
		if (!preg_match('#^http[s]?:\/\/#i', $website))
		{
			$website = 'http://' . $website;
		}

		if (!preg_match('#^http[s]?\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i', $website))
		{
			$website = '';
		}
	}
das der Code aus phpBB Forum ;) der soll aber so umgeändert werden das man kein www. eintragen brauch und das nicht http://www. $website stehen soll sondern hlsw:// $serverip

kann mir einer vielleicht helfen, die http sachen habe ich geändert nur das funtktioniert nicht so richtig :) thx

Verfasst: 20.12.2004 20:57
von Cojote
Glaube ich habe es nicht richtig verstanden.

Deshalb eine kurze Frage:
wenn man nicht mehr www. eingibt was diehnt denn dann als Anhaltspunkt einen Link zu erkennen?

Verfasst: 20.12.2004 21:36
von Blutgerinsel
Ich habs so verstanden wenn irgendeiner
mal 40.77.30.89 eingibt dann soll aus der IP in ein HLSW Adresse umgewandelt werden....

das würde ich dann ungefähr so machen:
(grob)

Code: Alles auswählen

preg_replace('!([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})!s','hlsw://\1',$website);

Verfasst: 20.12.2004 21:50
von FSKiller / Phoenix
Cojote hat geschrieben:Glaube ich habe es nicht richtig verstanden.

Deshalb eine kurze Frage:
wenn man nicht mehr www. eingibt was diehnt denn dann als Anhaltspunkt einen Link zu erkennen?
dann lies nochmal ;) es geht um kein Weblink sondern hlsw link ....

HLSW ist ein Programm wo man Server-IPs eingibt die dann fr bestimmte Spiele-Server sind

@Blutgerinsel werde ich mal testen danke

Verfasst: 21.12.2004 00:30
von FSKiller / Phoenix
geht leider noch immer nicht, habe ich vielleicht vergessen Gameserver werden immer mit Port noch angegeben sprich 127.0.0.1:27015 ;) vielleicht geht es deswegen noch nicht. Steige ehrlich gesagt nicht durch den Code der da steht, vielleicht kann mir einer ne Seite sagen dann tu ich mich da mal rein friemeln :D, aber ich denke mir es so das

[0-9]{1,3}\. <--- erste Zahlenblock mit 0 bis 9 Zahlen also 1,2,3,.,.,.,. ist klar und jeweils 1 bis 3 stellen angegeben sein könnten, ist das soweit richtig? nur das mit dem Ende peil ich nicht.

thx aber schonmal für die Idee :)

Verfasst: 21.12.2004 01:58
von Blutgerinsel
FSKiller hat geschrieben:geht leider noch immer nicht, habe ich vielleicht vergessen Gameserver werden immer mit Port noch angegeben sprich 127.0.0.1:27015 ;) vielleicht geht es deswegen noch nicht. Steige ehrlich gesagt nicht durch den Code der da steht, vielleicht kann mir einer ne Seite sagen dann tu ich mich da mal rein friemeln :D, aber ich denke mir es so das

[0-9]{1,3}\. <--- erste Zahlenblock mit 0 bis 9 Zahlen also 1,2,3,.,.,.,. ist klar und jeweils 1 bis 3 stellen angegeben sein könnten, ist das soweit richtig? nur das mit dem Ende peil ich nicht.

thx aber schonmal für die Idee :)
hmm das hab ich vergessen normal ist der Port 5 stellig also:

Code: Alles auswählen

preg_replace('!([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:[0-9]{5})!s','hlsw://\1',$website);
Dir ist klar das dies grob ist, d.h. es werden nur die Stellenanzahl, Trennung und Muster geprüft.
Angaben wie

192.168.5.0 eine Class C Netzadresse oder
192.168.5.255 Class C Broadcast Adresse mit der Standard SN-Maske sind erlaubt obwohl so nie ein Host heissen kann.

Also eine reine Musterprüfung.....

Seiten hmm da gibt ein schönes PHP Manual da steht das englisch drinnen.....
[ ] ist eine Zeichenklasse und in diesem Fall auf Zahlen von 0-9 begrenzt....Da der . für ein beliebiges Zeichen steht muss dieser escaped werden mit einem Backslash.. { } bedeutet {min,max} oder {muss}

() Erstellt einen Unterausdruck welcher dann über eine Backreferenze die durchnummeriert wird und im gleichen Ausdruck wieder verwendet werden kann.....