Wie gibt diese Funktion Werte zurück?
techilog
- php
0 Tom
Kann mir jemand bitte helfen?
Mein (PHP)-Script soll eine (HTML)-Seite zeigen.
Darauf zeigt es ein JPG, dessen Pfad in einer TXT-Datei bereit liegt.
In der TXT steht z.B. kunde=musterkunde&bild=anz02.jpg
D.h. jmd. kann von aussen den Bildpfad in der TXT ändern
und meine Seite aktualisiert sich durch den reload selbst.
Das funktioniert soweit ganz gut, mit folgendem code:
________________________________________________________________
<html>
<head>
<?php
$fp = fopen("speichern.txt","r");//Liest txt ein
if ($fp)//analysiert Inhalt
{
while(!feof($fp))
{
$text = fgets($fp);
$zerlegen = explode("&", $text); //zerlegt Variablenkette nach "&"
$kunde\_var = explode("=", $zerlegen[0]); //zerlegt Variablenkette nach "="
$bild\_var = explode("=", $zerlegen[1]); //zerlegt Variablenkette nach "="
$kunde = $kunde\_var[1]; //Empfangen von Variable z.B. "musterkunde"
$bild = $bild\_var[1]; //Empfangen von Variable z.B. anz02.jpg
$pfad = "Bilder/".$kunde."/".$bild; //erstelle Variable mit Pfad
return $pfad;
}
fclose($fp);
};
?>
<script type="text/javascript">
<!--
document.getElementById("wechselndesbild").src = '<?php echo"$pfad"; ?>';
function bildwechsel()
{
location.reload();
}
function bildwechsel\_starten()
{
bildwechselthread = setInterval("bildwechsel()", 1000);
}
-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-color: #000000;
}
-->
</style>
</head>
<body onload="bildwechsel\_starten()"><!--HIER WIRD DER RELOAD GEZÜNDET-->
<img id="wechselndesbild" src = '<?php echo"$pfad"; ?>' /> <!--das zeigt nur das Endergebnis (Bild)-->
</body>
</html>
__________________________________________________________
Im Firefox sieht das Ergebnis super aus (den reload bemerkt man kaum)
im IE blinkt die Seite. Deshalb dachte ich an ein if, das checkt, ob sich der Pfad verändert hat, bevor ein reload stattfindet.
Kann mir jemand weiterhelfen?
Danke im Voraus.
PS. Das Problem liegt evt. darin, dass sich für mich die Syntax von PHP, HTML und Javascript gnadenlos ineinandermischt und nicht mehr durchblicke (programmiere normalerweise nur in Flash-actionscript).
Hatte ansatzweise probiert im PHP-Teil Pfad_auslesen in eine Funtion zu setzen - dann bekomme ich jedoch den Wert von $pfad nicht mehr zurück ...
Die Veränderung sieht dann so aus:
_____________________________________________________
<?php
function text_auslesen()
{
$fp = fopen("speichern.txt","r");//Liest txt ein
if ($fp)//analysiert Inhalt
{
while(!feof($fp))
{
$text = fgets($fp);
$zerlegen = explode("&", $text); //zerlegt Variablenkette nach "&"
$kunde_var = explode("=", $zerlegen[0]); //zerlegt Variablenkette nach "="
$bild_var = explode("=", $zerlegen[1]); //zerlegt Variablenkette nach "="
$kunde = $kunde_var[1]; //Empfangen von Variable z.B. "musterkunde"
$bild = $bild_var[1]; //Empfangen von Variable z.B. anz02.jpg
$pfad = "Bilder/".$kunde."/".$bild; //erstelle Variable mit Pfad
return $pfad;
}
fclose($fp);
};
}
?>
<script type="text/javascript">
<!--
document.getElementById("wechselndesbild").src = '<?php text_auslesen(); echo"$pfad"; ?>';
_____________________________________________________
Hello,
<?php
function text_auslesen()
{
$fp = fopen("speichern.txt","r");//Liest txt ein
if ($fp)//analysiert Inhalt
{
while(!feof($fp))
{
$text = fgets($fp);
$zerlegen = explode("&", $text); //zerlegt Variablenkette nach "&"
$kunde_var = explode("=", $zerlegen[0]); //zerlegt Variablenkette nach "="
$bild_var = explode("=", $zerlegen[1]); //zerlegt Variablenkette nach "="
$kunde = $kunde_var[1]; //Empfangen von Variable z.B. "musterkunde"
$bild = $bild_var[1]; //Empfangen von Variable z.B. anz02.jpg
$pfad = "Bilder/".$kunde."/".$bild; //erstelle Variable mit Pfad
return $pfad;
}
fclose($fp);
};
}
?>
Nur so nebenbei:
Für das Einlesen der Datei ist hier vermutlich die Funktion file() die bessere Wahl.
http://de.php.net/manual/en/function.file.php
Für die anschließende Zerlegung der eingelesenen Zeilen in die einzelnen Parameter gibt es die Funktion parse_str()
http://de.php.net/manual/en/function.parse-str.php
Der Einsatz dieser vorgefertigten Funktionen würde das Ganze schon mal etwas übersichtlicher machen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg