webadressen aus txt Datei als Link in tabelle ausgeben

gabrielleHH

Grünschnabel
Hallo,

bin PHP Newbie und benötige etwas Hilfe. Ich habe bisher meine Tabellen in HTML, also statisch erstellt. Was bisher doch sehr mühselig gewesen ist.
Nun habe ich ein kleines Script zusammengeschriebselt, welches mir entsprechende txt Dateien in Tabellenform wiedergibt. Das funktioniert soweit auch alles. Das Textfile beinhaltet einfach: Name, Plz, Ort und Webadresse, getrennt durch | .

Die 4.Spalte, sprich die Webadresse soll in der Tabelle aber als Link angezeigt werden. Diese ist leider leer. Wichtig ist auch, das nicht zu jedem Namen auch eine Webadresse existiert, sondern vielleicht auch nur mal eine Telefonnr.. Die Webadresse in der txt Datei beinhaltet den kompletten Pfad, also angefangen bei http://

Was ist erforderlich oder wo finde ich Beispiele (mein Buch war da leider nicht sehr hilfreich), damit in der 4.Spalte ein Link erscheint?

Der PHP Code sieht wie folgt aus:

<html>
<body>
<table border="1" cellpadding="2" cellspacing="0">
<tr bgcolor="#cccccc">
<td>Name</td>
<td>Plz</td>
<td>Ort</td>
<td>Kontakt</td>
<?php
$datei=file("hamburg.txt"); //Inhalt der Datei auslesen
$dateigroesse=sizeof($datei); //Grösse der Datei ermitteln
for($i=0;$i<$dateigroesse;$i++) { //alle Zeilen der Datei durchgehen...
$hamburg=explode("|",$datei[$i]); //Zeile in einzelne Daten zerlegen
print("<tr><td>$hamburg[0]</td><td align=\"center\">$hamburg[1]</td><td align=\"center\">$hamburg[2]</td></tr>");
}
?>
</table>
</body>
</html>

Alles schlicht und einfach ohne Schnickschnack.

Vielen Dank für die Hilfe,

Gabriele
 
Hallo,

ich versteh zwar dein Problem nicht wenn du das bis jetzt gemacht hast, meinst du etwa so ?

PHP:
print("<tr><td>$hamburg[0]</td><td align=\"center\">$hamburg[1]</td><td align=\"center\">$hamburg[2]</td><td align=\"center\"><a href='http://$hamburg[3]'>$hamburg[4]</a></td></tr>");

die 4. Spalte entspricht dem Link und die 5. Spalte den Linknamen !

mfg
 
Hi Proloser,

danke für deine schnelle Antwort. Mein Problem war das ich bisher ganz im html Stil meine Seiten gestaltet hatte. Und dabei die Inhalte der Tabellen immer manuell eingeben musste. Durch einen Bekannten bin ich dann zu PHP gestossen und der hatte mir den Tip mit den Textfiles und den dyn. Erstellen von Tabellen via PHP gegeben.

Die Erweiterung von Dir mit dem Zusatz http für die 4. Spalte war mir nicht eingefallen, bzw. konnte ich meinem Buch nicht entnehmen.

Ich habe mein Script dementsprechend angepasst und bekomme nun den Link als solchen angezeigt. Soweit funktioniert das Ganze also. Was aber jetzt noch fehlt sind die Telefonnr..

In meinem Textfile ist entweder die Webadresse angegeben oder aber die Telefonnr.. Jetzt habe ich zwar in meiner Tabelle den Link, aber die Telefonnr. wird nicht angezeigt.

Wenn es keine Möglichkeit gibt beides in einer Spalte anzuzeigen, dann müsste ich mein Textfile, um einen Eintrag erweitern, dass wollte ich aber eigentlich nicht und sieht in der Tabelle nachher auch nicht so schön aus.

Gruss,

Gabriele
 
Hallo,

auf die schnelle fällt mir eigentlich nur das ein ...

PHP:
...................................
...................................

$option = substr("$hamburg[3]", 0, 7); 

if($option == "http://"){
   $hamburg[3] = str_replace("http://","",$hamburg[3]);
   $var = "<a href=\"http://$hamburg[3]\">$hamburg[3]</a>";
} else {
   $var = "$hamburg[3]";
}


print("<tr><td>$hamburg[0]</td><td align=\"center\">$hamburg[1]</td><td align=\"center\">$hamburg[2]</td><td align=\"center\">$var</td></tr>");
}

die URL muss dann in der TXT Datei mit "http://" beginnen damit er es als Link erkennt, wenn das nicht der fall ist wird kein Link ausgegeben bzw deine Telefonnummer wird angezeigt.

Damit bei der Ausgabe das "http://" nicht angezeigt wird, wird es (mit str_replace) gefiltert !

mfg
 
Zuletzt bearbeitet:
Hallo,

nochmals Danke für dein Feedback. Deine Idee war gar nicht so schlecht, allerdings bekam ich anschließend in der 4. Spalte die komplette URL angezeigt.

Habe es nach langem hin und her probieren so gelöst:

In dem textfile Name, Plz, Ort, Tel, Url, HP Name.
Damit ich dann in meiner Tabelle Telefon oder URL in einer Spalte angegeben bekomme und statt der kompletten URL nur den Alias-Namen, habe ich das Script wie folgt angepast:

......

if ($hamburg[4] == "") {
$kontakt = $hamburg[3];
}
else {
$kontakt = "<a href=\"" . $hamburg[4] . "\">" . $hamburg[5] . "</a>";
}

print ("<tr><td>$hamburg[0]</td><td align=\"center\">$hamburg[1]</td><td align=\"center\">$hamburg[2]</td><td align=\"center\">$kontakt</td></tr>\n");


......

Es funktioniert. Habe es per include auch schon in eine andere php Datei eingebunden und das funktioniert auch.

Vielen Dank noch mal für Deine Hilfe.

Gruss,

Gabriele
 
Hallo,

ich glaube du hast es vor meiner Änderung rauskopiert, denn ich hab es jetzt so gelöst damit du keine 5. Spalte brauchst !

Naja wenns passt ist gut :-)

mfg
 
Hi Proloser,

noch mal zum Abschluss:

Hatte deine Idee auch zuerst in mein Script übernommen, dabei sind zwar die Inhalte aus meiner txt Datei korrekt ausgegeben worden, allerdings wurde die url auch als solche angezeigt (sprich komplett). Ich wollte aber nur den alias-namen angezeigt bekommen, den man dann anklicken kann. Der link soll sich dann natürlich in einem eigenen Fenster öffnen
Auch dies habe ich lösen können.
Das Script sieht jetzt wie folgt aus:

<?php
$datei=file("sach.txt"); //Inhalt der Datei auslesen
$dateigroesse=sizeof($datei); //Grösse der Datei ermitteln
for($i=0;$i<$dateigroesse;$i++) { //alle Zeilen der Datei durchgehen...
$sach=explode("|",$datei[$i]); //Zeile in einzelne Daten zerlegen

if ($sach[4] == "") { //Abfrage, ob Spalte 3 - Tel. leer
$kontakt = $sach[3];
}
else { //wenn ja, dann Daten aus Spalte 4 eintragen, aber anzeigen Spalte 5
$kontakt = "<a target=\"_blank\" href=\"" . $sach[4] . "\">" . $sach[5] . "</a>";
}

echo("<tr><td>$sach[0]</td><td align=\"left\">$sach[1]</td><td align=\"left\">$sach[2]</td><td align=\"left\">$kontakt</td></tr>\n");
}
?>

Meine nächste Arbeit wird sein, dass was ich jetzt spasseshalber mit txt Dateien gelöst habe doch mit einer sql Datenbank aufzubauen.

Mal sehen ob es klappt.

Vielen Dank noch mal.

:p
 
Zurück