Funktion per Url aufrufen

Hallo,
ich habe folgende Funktion die ich an die Datei server.php per url anhängen und starten möchte.
Der entsprechende Abschnitt im Skript sieht so aus:

if($_SERVER[‚argv‘][1]=="-load_last_game")
{
echo("Load last game… ");
pre_load_game();
}

ich hab versucht es folgendermaßen zu starten, funktioniert aber nicht:
ttp://www/server.php?var=load_last_game

wie muss ich die url richtig aufrufen damit die funktion load_last_game geladen wird?

wobei die funktion load last game keine variable darstellt.

so geht das nicht, weil $_SERVER[‚argv‘] die Variablen in der Form Variable=Wert speichert. Also verwende liber gleich etwas wie if($_GET[‚var‘]=‚load_last_game‘)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

ein einfach erweiterbarer Weg wäre folgender:

<?php function pre_load_game() {<br /> echo 'preload game...';
 }

 function load\_last\_game() {
 echo 'Load last game...';
 pre\_load\_game(); 
 }

 if (function\_exists($\_GET['var'])) {
 $\_GET['var']();
 }
?\>

Dann kannst Du auch das Skript auch z.B. mit server.php?var=pre_load_game aufrufen. Das ganze kannst Du um weitere Funktionen erweitern, ohne viel am Skript tun zu müssen, außer die Funktion selbst hinein zu setzen.

Schönen Gruß,
Rudy

kriegs nicht hin
hmm danke für die antworten bringen mich aber nicht wirklich viel weiter weil ich viel zu unerfahren in php bin.

Steht das wort ´var´eigentlich als beispiel für die funktion?also muss anstatt „var“ die entsprechende funktion eingetragen werden? (load_last_game)?

Rudy, die Erweiterung die du beschreibst, kann ich die einfach in das vorhandene Skript hineinsetzen, bzw was muss ich ändern?
gruss
und danke
Mike

hmm danke für die antworten bringen mich aber nicht wirklich viel weiter weil ich viel zu unerfahren in php bin.

Steht das wort ´var´eigentlich als beispiel für die funktion?also muss anstatt „var“ die entsprechende funktion eingetragen werden? (load_last_game)?

Rudy, die Erweiterung die du beschreibst, kann ich die einfach in das vorhandene Skript hineinsetzen, bzw was muss ich ändern?
gruss
und danke
Mike

Hi Mike,

Steht das wort ´var´eigentlich als beispiel für die
funktion?also muss anstatt „var“ die entsprechende funktion
eingetragen werden? (load_last_game)?

‚var‘ ist der willkürlich gewählte Name der Variable, load_last_game ist der Inhalt oder Wert der Variable. Die Variable kann auch anders heißen, dann muss der Wert aber auch mit diesem Namen ausgelesen werden. In diesem Fall liest man den Wert aus dem Superglobal-Array $_GET, weil der Wert über die URL übergeben wird. http://www.php.net/manual/de/reserved.variables.php#…

Rudy, die Erweiterung die du beschreibst, kann ich die einfach
in das vorhandene Skript hineinsetzen, bzw was muss ich
ändern?

Versuch mal folgendes an das Ende des Skripts zu setzen, nach den Funktionen:

 if (function\_exists($\_GET['var'])) {
 $\_GET['var']();
 }

und ruf das Skript dann wie gehabt mit server.php?var=load_last_game auf, sollte funktionieren.

function_exists prüft, ob es eine Funktion gibt, deren Name dem Wert in $_GET[‚var‘] entspricht, also in Deinem Fall load_last_game (oder was immer Du nach var= schreibst. http://it2.php.net/manual/de/function.function-exist… Existiert die Funktion, nutzt Du eine spezielle Funktionalität von PHP, die von variablen Variablen - in diesem Fall ist es eine variable Funktion. http://www.php.net/manual/de/language.variables.vari…
$_GET[‚var‘] mit den angehängten Klammern () wirkt dann wie der Funktionsaufruf load_last_game(), weil load_last_game der Wert von $_GET[‚var‘] ist.

Schönen Gruß,
Rudy

ok danke
danke es funtkioniert!!
mike

Also wenn ich das jetz richtig verstanden habe, willst du einfach ne information über die url weitergeben wie zb bei vielen seiten www.hp.de/page.php?site=home
oder ähnliches verwendet wird…
diese informationen liest du mit $_GET aus
wobei du die betreffende information halt hinter das fragezeichen als variable definierst
im beispiel page.php?site=home wäre dann $_GET[‚site‘] = home
deine abfrage könnte dann sein

if ($_GET[‚load‘] == lastgame)
{
//code zum spiel laden
}
else
{
//code fuer neues spiel
}

mfG,
Manuel