Komme nicht weiter...

ChuckyaliasJ154
Hallo zusammen...

ich habe ein kleines Problem.
Ich habe jetzt geschlagene 4 Stunden an dem fuddeligen Script rumgeschrieben und kich komme einfach nicht weiter. Meine Bücher die ich hier habe, können mir auch nicht weiter helfen. Kann mir jemand helfen?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
<?PHP 
srand ((double) microtime() * 1000000);
 $XXY = file("http://www.ICH.com/XXY-Test/text.txt");
 $XXY2 = file("http://www.ICH.com/XXY-Test/joker.txt");
 $i = count($xxy)-1;
 $i2 = count($xxy)-2;
 $i3 = count($xxy)-3;
 $i4 = count($xxy)-4;
 $i5 = count($xxy)-5;
 $xout =  $xxy[rand(0,$i)];
 $xout2 =  $xxy[rand(0,$i2)];
 $xout3 =  $xxy[rand(0,$i3)]; 
 $xout4 =  $xxy[rand(0,$i4)];
 $xout5 =  $xxy[rand(0,$i5)];
 $fp = fopen("../XXY-Test/Keywords.txt","r"); 
if ($fp) 
{ 
while(!feof($fp)) 
{ 
$text = fgets($fp);
header; 
echo "'<meta name="keywords" content="$text">'\n;"
echo "'<meta name="description" content="$out">'\n;"
echo "'<meta name="robots" content="index, follow">'\n;"
echo "'<meta name="language" content="deutsch">'\n;"
echo "'<meta name="author" content="ICH">'\n;"
echo "'<meta name="publisher" content="ICH">'\n;"
echo "'<meta name="company" content="ICH">'\n;"
echo "'<meta name="page-topic" content="Computer; Hardware">'\n;"
echo "'<meta name="reply-to" content="MAIL@web.de">'\n;"
echo "'<meta name="distribution" content="global">'\n;"
echo "'<meta name="revisit-after" content="14 days">'\n;"
echo "'<head>'\n;"
} 
fclose($fp); 
}
echo "<title>$xout</title>\n";
echo "</head>\n";
echo "<body>\n";
echo "<p>$xout - $xout2 - $xout3 - $xout4 - $xout5";
echo "<a href=\"LINK\">BESCHREIBUNG</a>.</p>\n";
$fp = fopen("../XXY/Keywords.txt","r"); 
if ($fp) 
{ 
while(!feof($fp)) 
{ 
$text = fgets($fp); 
echo"$text"; 
} 
fclose($fp); 
}
echo "</body>\n";
echo "</html>\n";
?>



Ach ja, ICH, MAIL@WEB.DE und XXY sind platzhalter... Der rest steht so im Script... Und ich komme einfach nicht weiter.
Der Sinn des Scripts ist glaube ich kalr, es sollen diverse wichtige Informationen aus einer Datei eingefügt werden. Teilweise zufällig und teilweise einfach nur komplett. Dabei handelt es sich um 3 verschiedene Dateien.

Wer helfen kann, her mit der Hilfe... Ich kann sie gebrauchen ;-)


Danke schon mal...

Gruß Jörg
daHooligan
wie siehts mit ner fehlermeldung aus??
ChuckyaliasJ154
Sorry, hatte die Fehlermeldung vergessen...

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/www/htdocs/DOMAIN/XXY/index.php on line 27

Denke mal, das aber mehrere fehler drin sind.
Hatte das ganze schon anders aufgebaut, da wurden nur die /n in unendlichen mengen angezeigt, bis sich der IE aufgehängt hat.

Gruß Jörg
daHooligan
du hast das echo falsch aufgebaut glaub ich...

versuchs mal mit z.B.:
echo "<meta name=\"keywords\" content=\"".$text."\">\n";

k.A: ob das mit dem "\n" funktioniert..
Tweety!
jo, dass mit dem "\n" funktioniert so

um das ganze übersichtlicher dazustellen kannst auch "<br>\n" statt dessen nehmen


aber würd das so nicht besser funktionieren?

echo '<meta name="keywords" content="$text">'."<br>\n";

ich hoff ich lieg da nicht falsch, ist find ich übersichtlicher
daHooligan
ich glaub nicht, das gibt tendenziell eher Probleme... Ist aber auch persönlicher "Stil" wie man das macht..
neonator
ne, das mit dem <br> ist eine schlechte idee, da das ja kein visueller inhalt ist, sondern nur meta-angaben für suchmaschinen usw.. wäre nicht korrekt und würde unnötige leerzeilen am anfang der seite darstellen..

das problem bei deinem script ist, dass die string-bereiche vorzeitig beendet werden.

echo "bla "foo" bla ";

das funktioniert nicht, da der string-bereich nur soweit ist:
echo "bla"
dann sollte eigentlich irgend ein operator kommen oder ein strichpunkt, jedenfalls erwartet php das. du willst aber den bereich bis am schluss haben, darum gibt es eine fehlermeldung.

dann hast du noch irgend ein problemchen mit den einfachen anführungszeichen (').

wenn du mit " anfängst, müssen alle " die den bereich nicht beenden sollen, maskiert werden => /"
wenn du mit ' anfängst musst du alle ' maskieren => \'

ausnahme: wenn du z.b. ein funktion, eine variabel o.ä. einbauen willst, dann musst du aber (verknüpfungs-)operatoren verwenden:
"adskfjlkjasdf".deine_funktion('abc')."adsfasdf";
'asdfasdfd'.$deine_variabel.'asdfasdf';

jedoch werden doppelte anführungszeichen ( " ) geparst, dass heisst du kannst variabeln einfach in den text schreiben, und es wird ersetzt, bei einfachen ( ' ) geht das nicht.
"asdfasdf $deine_variabel asdfdsaf";
(auch carriage-returns (\r\n | \n) werden nur in doppelten geparst.

ich würde das eher so machen:
(cr steht für carriage return = neue zeile)
php:
1:
2:
3:
4:
5:
<?
$cr  "\r\n";
echo '<meta name="keywords" content="'.$text.'">'.$cr;
echo '<meta name="description" content="'.$out.'">'.$cr;
?>

usw...

der abschliessende strichpunkt fehlt übrigens in fast jeder zeile...


gruss
Chris Hunter
ja genau die ; sind auch das problem..

und nimm mal das header; raus das ist auch etwas sinnlos finde ich...
ChuckyaliasJ154
Hallo zusammen...

erst einmal vielen dank für die vielen Tips und Hilfen.
Ich bin ehrlich gesagt dabei das ganze erst zu lernen. Einiges kann ich aber vieles auch nicht.
Ich werde das ganze mal testen, über weitere Hilfe wäre ich sehr dankbar.

Gruß Jörg
ChuckyaliasJ154
Also, ich habe das ganze jetzt so gemacht wie von neonator beschrieben. Es geht! Es wird kein Fehler mehr ausgegeben.
Jedoch werden einige Funktionen nicht ausgeführt und nicht richtig angezeigt.

Ich habe jetzt noch ein problem mit folgendem Code...
code:
1:
2:
3:
4:
echo '<title>' $xout; echo'</title>'.$cr;
echo '</head>'.$cr;
echo '<body>'.$cr;
echo '<p>';$xout - $xout2 - $xout3 - $xout4 - $xout5 echo'</p>'.$cr;


Als Fehler gibt er mir folgendes aus:
Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in /home/www/htdocs/XXY/XXY/index-neu.php on line 43

( Line 43 ist im code ausschnitt die erste zeile !!! )

Also es soll das Erbeniss aus $xout angezeigt werden. In line 43
Bei den folgenden zeilen in denen auch das $xoutX kommt soll das gleiche geschehen.

Gruß Jörg
Chris Hunter
ändern in:

code:
1:
2:
echo '<title>'.$xout.'</title>'.$cr;
ChuckyaliasJ154
Und schon die nächste Zeile...

code:
1:
echo '<p>'.$xout.-.$xout2.-.$xout3.-.$xout4.-.$xout5.' echo '</p>'.$cr;

Ich denke mal, das da der Fehler die - sind... Aber ich habe keine Idee wie man die sonst einbringen könnte...

Nur irgend wie verstehe ich nicht, das da jetzt folgender Fehler ausgegeben wird:

Parse error: parse error, unexpected '.' in /home/www/htdocs/XXY/XXY/index-neu.php on line 46

code:
1:
echo '<p>'.$xout.'-'.$xout2.'-'.$xout3.'-'.$xout4.'-'.$xout5. echo'</p>'.$cr;[/


Wenn ich es so mache, dann gibt er mir folgenden Fehler:
Parse error: parse error, unexpected T_ECHO in /home/www/htdocs/XXY/XXY/index-neu.php on line 46

Irgend wie verstehe ich den unterschied nicht, warum es bei einem Befehl geht aber nicht bei 5 mit einem Trennzeichen...

Gruß Jörg
daHooligan
Zitat:
Original von ChuckyaliasJ154
Parse error: parse error, unexpected T_ECHO in /home/www/htdocs/XXY/XXY/index-neu.php on line 46


das liegt an zeile 45, da ist irgendeinbefehl nicht zu Ende
ChuckyaliasJ154
Ich habe den fehler grade gefunden...

code:
1:
2:
3:
echo '<body>'.$cr;
echo '<p>'.$xout.'-'.$xout2.'-'.$xout3.'-'.$xout4.'-'.$xout5.'</p>'.$cr;


Man sollte vielleicht am ende das ; setzen :-) ausserdem hatte ich ein echo in der zeile und das war auch falsch.


Danke für die tolle Hilfe !!!

Gruß Jörg...


// Hier bleibe ich *G* Tolles Board !
daHooligan
lool
Chris Hunter
vieleicht auch mal ne IDE mit syntax highlighting besorgen, oder?
mir scheint das dir der überblick fehlt...
daHooligan
also ich komm auchnur mit Texteditor klar... aber mein code ist auch ein bissel übersichtlicher, zur not mach ich auch mal 5 oder 6 echos hintereinander...


btw: mein 845. Post, damit sollte ich Stoffel überholt haben, warum auch immer der nicht mehr postet
Chris Hunter
ich hab auch mal ne zeitlang nicht gepostet hier... irgendwie hab ichs verpeuilt und habnicht gerafft das hier überhaupt noch geschreiben wird. die mails gehen erst wieder seit thief den server gewechselt hat... warum auch immer....


aber mal zurück zum thema:
besonders für anfänger is ne syntax highlighting IDE wohl besser als n plain texteditor. weil da bekomm ich ja schon die kriese....

highlight ist einfach viel pesser

php:
1:
<?php echo 'oder '.$etwa.'nicht'?>

code:
1:
echo 'oder '.$etwa.'nicht';
ChuckyaliasJ154
Ja Chris...

hab ich ja... nur die ist nicht so das ware... Manchmal tickt die etwas rum...
Aber ist ja so auch OK...

Danke nochmal für eure Hilfe ;-)

Gruß Jörg