Hallo! Ich bins wieder - der immer Hilfe bedürftige. Wegen dem Mist unten hab ich gestern die Jahreswende verpasst und beinahe Sekt über mein Notebook gekippt. )
Egal, also folgendes: Das Script unten gibt bei echo „$bgcolor“; „blau“ aus, also kann er schonmal aus
$filename lesen. Wenn ich jetzt aber eine If Abfrage mache,
kommt „red“, also „nein“ raus obowhl $bgcolor doch blau beinhaltet. Ist das nicht komisch? Ein paranormales Phänomen?
Gruß
Stephan
include „script.php“;
$bgcolor = „“;@GetBBGColor($filename); echo"";
echo „$bgcolor“;
nehmen wir deinen code doch mal auseinander ...
include "script.php";
$bgcolor = ""; //bgcolor wird auf einen leeren string gesetzt
@GetBBGColor($filename); //bgcolor liest du aus, schreibst die
//aber nirgends rein ...
//ist ne eigene funktion die das
//warscheinlich rausecho't ???
echo""; //ein sinnloses echo ...
echo "$bgcolor"; //echo, hier wird nichts ausgegeben (leer)
If ($bgcolor == "blau")
{
echo "blue";
}
else
{
echo "red";
};
//und beim if kommt also IMMER red raus ....
//mach $bgcolor = @GetBBGColor($filename);
schreibt er den GetBBGColor Inhalt raus „Gold“ und packt trotzdem wieder ein „nein“ dahinter Aber wenn da doch Gold drinsteht, muß er doch ein Ja zurückgeben und warum wird das GOld noch mal sichtbar rausge’echo’t? ( Danke für Deine liebe Hilfe aber ich glaube das alles kann gar nicht klappen. SOwas hab ich noch nie erlebt…völlig unlogisch alles *heul*
Gruß
Stephan
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
genau das meinte ich ja gerade … deine funktion GetBBGColor scheint das einfach rauszuecho’n, die sollte aber den wert return’en … deswegen kriegst du diese ungewollte ausgabe.
in $bgcolor steht weiterhin absolut nichts drin …
function GetBBGColor($filename) {
global $contentdir;
$files = array();
$user = file("$contentdir/$filename");
$user[] = $value;
for (reset ($user); list ($key, $value) = each ($user) {
if ($key == „8“) { /* Add */
$piglet = „$value“;
$piglet = str_replace("\n","",$piglet);
$piglet = str_replace(„blau“,„blue“,$piglet);
echo „$piglet“;
}
}
}
Eigentlich sollte er Daten aus einer Datei beziehen, das tut er ja auch da er es raus echo’n kann
genau das meinte ich ja gerade … deine funktion GetBBGColor
scheint das einfach rauszuecho’n, die sollte aber den wert
return’en … deswegen kriegst du diese ungewollte ausgabe.
in $bgcolor steht weiterhin absolut nichts drin …
Ist doch genau dasselbe wie hier oder nicht, Bruno? :-?
Keinerlei Ahnung was das ist
Mit return gibst du jedenfalls was aus der Funktion zurück. Wenn du was auf den Bildschirm schreiben willst dann machste echo, ob innen (in der Funktion) oder aussen (würde es aussen machen) ist relativ egal.
Wenn du beides brauchst, dann mache vor das return eben noch ein echo mit dem gleichen…
GESCHAFFT!
Yeh! Gecko’s hatte Recht! Jetzt kalppts! Dummerweise hatte ich vergessen das ganze eben zu dekommentieren (//) weswegen es nicht klappen konnte. Ihr wisst ja wie das ist, die kleinen Fehler bemerkt man nie ) Vielen Dank jedenfalls für eure Geduld mit mir ich geb demnächst mal ne Runde Bier aus