PHP Echo formatieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
antwort
ausgeben
code
definieren
einzige linie
ende
enden
entscheidung
ersten anfangen
file
http
inhalt
item
merken
problem
quelle
schrift
string
tarif
verbessert code
-
Hi !
Was ist an dieser Echo Zeile falsch?
echo '<font color="red">$pubdate <a href=\"".$regs[3][0]."\" target=\"_blank\">".$title."</font>'</a>\n";
Könnt ihr mir dann die Schrift kleiner machen und die Schrift Arial machen und hier dann posten,
Das wäre super nett ! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
echo "<font color=\"red\">$pubdate     <a href=".$regs[3][0]." target="_blank">".$title."</font></a>";
Ich wusste nicht ob in a href dieses regs rein soll.
EDIT:
Die Backslashes werden immer rausgenommen.
Tu vor jeden " ein Backslash also [Backshlash]"
Außer nach echo " und am ende des echos "
Beitrag geändert: 8.11.2008 18:30:59 von seth93 -
Danke !
Schau dir mal mein Script an, was da falsch ist
<?php $inhalt="http://www.telespiegel.de/rss-xml/telespiegel-tarife.xml"; $website="http://www.telespiegel.de"; if (@fopen("$inhalt", "r") != "") { echo "+++ $website +++"; $quelle = @file($inhalt); $data = implode ("", $quelle); preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); if (count($items[1])==0) { preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); } for ($i=0; $i<count($items[1]); $i++) { preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); preg_match_all("|<pubDate>(.*)</pubDate>|Uism",$items[1][$i], $regs2, PREG_PATTERN_ORDER); $title = $regs[1][0]; $pubdate = $regs2[1][0]; echo "<font color="red">$pubdate     <a href=".$regs[3][0]." target="_blank">".$title."</font></a>"; } } ?>
-
Erstmal, wieso machst du alles in eine einzige linie? Das ist doch viel zu unübersichtlich :S
Jetzt zu deinem problem:
Wenn du in PHP einen string benützen oder definieren willst, dann benützt du anrührungszeichen. Entweder "string hier" oder die 'string hier', welche du letztendlich benützt hängt von dir ab.
so jetzt z.B.
echo "hallo";
ist das gleiche wie
echo 'hallo';
Es ist also deine entscheidung welche von beiden du benützen willst. Im grunde ist es egal. Das eine ist jetzt auch nicht besser als das andere.
Aber du weist, dass man in HTML tags auch diese anführungszeichen benützt (man sollte zumindest ), also in HTML ist es auch egal ob die die ' ' oder " " anführungszeichen benützt.
Wenn du jetzt in PHP einen einfachen HTML code ausgeben willst wie z.B. das hier:
<div name="meinDiv">.........</div>
Musst du in diesem fall diese ' ' anführungszeichen benützten da in dem string denn du ausgeben willst diese " " verwendet sind. Also:
echo '<div name="meinDiv">.........</div>';
Wenn du es jetzt mit den gleichen machen würdest, also so:
echo "<div name="meinDiv">.........</div>";
Dann würde der string beim ersten " anfangen, und beim nächsten " bei ´meinDiv´ enden. Und der nächste string würde bei ´meinDiv´ anfangen und bis zum ende von ´</div>´ gehen.
Verstehst du? Also es sind 2 strings und zwischen diese strings steht aufeinmal ´meinDiv´. PHP versteht das nicht.
Du musst dir einfach merken das ein string, der bei ' anfängt auch NUR beim jeweils nächsten ' endet. Das gleiche gillt bei ", wenn er bei " anfängt, dann endet er auch beim nächsten ".
Du kannst natürlich auch backslashes benützen, mach ich aber persöhnlich nie.
Der einzige unterschied den ich zwischen den " " und ' ' anführungszeichen bei php kenn ist, dass man bei den " " variablen miteinfügen kann, also:
$hallo = "hi"; echo "$hallo du";
Das würde jetzt ´hi du´ ausgeben. Würdest du das ganze mit den ' ' anführungszeichen gemacht, also so:
$hallo = "hi"; echo '$hallo du';
Hätte es ´$hallo du´ ausgegeben.
Ich hoffe du hast verstanden was ich meine x)
Hier ist noch dein script verbessert:
<?php $inhalt="http://www.telespiegel.de/rss-xml/telespiegel-tarife.xml"; $website="http://www.telespiegel.de"; if (@fopen("$inhalt", "r") != ""){ echo "+++ $website +++<br>"; $quelle = @file($inhalt); $data = implode ("", $quelle); preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); if (count($items[1])==0){ preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); } for ($i=0; $i<count($items[1]); $i++){ preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); preg_match_all("|<pubDate>(.*)</pubDate>|Uism",$items[1][$i], $regs2, PREG_PATTERN_ORDER); $title = $regs[1][0]; $pubdate = $regs2[1][0]; echo '<font color="red">'.$pubdate.'     <a href="'.$regs[3][0].'" target="_blank">'.$title.'</font></a><br>'; } } ?>
Beitrag geändert: 9.11.2008 12:44:12 von crackcheck
Beitrag geändert: 9.11.2008 12:51:35 von crackcheck -
Erstmal, wieso machst du alles in eine einzige linie? Das ist doch viel zu unübersichtlich :S
Jetzt zu deinem problem:
Wenn du in PHP einen string benützen willst oder definieren dann benützt du anrührungszeichen also "string hier" oder die 'string hier', das ist deine entscheidung.
so jetzt z.B.
echo "hallo";
ist das gleiche wie
echo 'hallo';
Es ist also deine entscheidung welches von beiden du benützen willst. Im grunde ist es egal, das eine ist jetzt auch nicht besser als das andere, doch ist es nützlich.
Aber du weist, dass man in HTML tags auch diese anführungszeichen benützt (man sollte zumindest ), also bei diesen tags ist es auch egal ob die die ' doer " anführungszeichen benützt.
Wenn du jetzt in PHP einen einfachen HTML code ausgeben willst wie z.B. das hier:
<div name="meinDiv">.........</div>
Wie du siehst hab ich in dem name diese (" ") anführungszeichen benützt, also muss man sie mit PHP so ausgeben:
echo '<div name="meinDiv">.........</div>';
Wenn du es jetzt mit den gleichen machen würdest, also so:
echo "<div name="meinDiv">.........</div>";
Dann würde der string beim ersten " anfangen, und beim nächsten " bei ´meinDiv´ wieder enden und nach ´meinDiv´ bist zum ende von ´</div>´ gehen.
Verstehst du? Also es sind 2 strings und zwischen diese strings steht aufeinmal ´meinDiv´.
Du musst dir einfach merken das ein string, der bei ' anfängt auch NUR bei ' endet. Das gleiche bei ", wenn er bei " anfängt, dann endet er auch bei ".
Du kannst natürlich auch backslashes benützen, mach ich aber persöhnlich nie.
Hier ist noch dein script verbessert:
<?php $inhalt="http://www.telespiegel.de/rss-xml/telespiegel-tarife.xml"; $website="http://www.telespiegel.de"; if (@fopen("$inhalt", "r") != ""){ echo "+++ $website +++"; $quelle = @file($inhalt); $data = implode ("", $quelle); preg_match_all("|<item>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); if (count($items[1])==0){ preg_match_all("|<item .*>(.*)</item>|Uism",$data, $items, PREG_PATTERN_ORDER); } for ($i=0; $i<count($items[1]); $i++){ preg_match_all("|<title>(.*)</title>(.*)<link>(.*)</link>|Uism",$items[1][$i], $regs, PREG_PATTERN_ORDER); preg_match_all("|<pubDate>(.*)</pubDate>|Uism",$items[1][$i], $regs2, PREG_PATTERN_ORDER); $title = $regs[1][0]; $pubdate = $regs2[1][0]; echo '<font color="red">$pubdate     <a href="'.$regs[3][0].'" target="_blank">'.$title.'</font></a>'; } } ?>
Vielen Dank, deine Antwort hat mir sehr geholfen -
Kein ding ;)
Hab meine antwort nochmal ein bisschen überarbeitet. Meine grammatik ist manchmal echt zum kotzen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage