Wie bekomme ich diese Linkliste in eine Tabelle?

rolli123

Mitglied
Hallo,

wie bekomme ich die Links aus dieser Linkliste in eine Tabelle? Ich weiss echt nicht wo ich die einbauen soll, nehmt mir bitte mal mein Brett vorm Kopf weg.

Danke im voraus
gruss
rolf


<?php
function links($text) {
$p[] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '<a href="\1" target="_blank">\\1</a>';
$p[] = '"( |^)(http://www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '\\1<a href="http://\2" target="_blank">\\2</a>';
$p[] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
$r[] = '<a href="mailto:\1">\\1</a>';
$text = preg_replace($p, $r, $text);
return $text;
}


$text = "www.hagib.de <b>Anlaufstelle f&uuml;r &Auml;gyptenfreunde aus ganz Norddeutschland</b><br /><br /> ";
$text.= "www.selket.de/index.htm <b>interessant und vielseitig</b>";
echo links($text);
?>
 
rolli123 hat gesagt.:
wie bekomme ich die Links aus dieser Linkliste in eine Tabelle? Ich weiss echt nicht wo ich die einbauen soll, nehmt mir bitte mal mein Brett vorm Kopf weg.

PHP:
<?php
function links($text) {
$p[] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '<a href="\1" target="_blank">\\1</a>';
$p[] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '\\1<a href="http://\2" target="_blank">\\2</a>';
$p[] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
$r[] = '<a href="mailto:\1">\\1</a>';
$text = preg_replace($p, $r, $text);
return $text;
}
 
 
$text = "www.hagib.de <b>Anlaufstelle f&uuml;r &Auml;gyptenfreunde aus ganz Norddeutschland</b><br /><br /> ";
$text.= www.selket.de/index.htm <b>interessant und vielseitig</b>;
?>
<table border="0" width="100%">
  <tr>
	  <td>
	   <? echo links($text); ?>
	  </td>
  </tr>
</table>
 
Zuletzt bearbeitet:
Ja, Danke das klappt so, aber jeden Link in eine extra Tabellenzeile das geht wohl nicht?
Dann könnte ich ein bisschen mit Hintergrundfarben rumspielen.

Dann habe ich gestern einen dritten Link hinzugefügt, der funktioniert aber nicht, was hab ich da denn schon wieder falsch gemacht? Er taucht wohl auf, ist aber nur einfach text und kein Link.

Mannomann ich muss wohl noch viel lernen :(

gruss
und Danke im voraus
rolf
 
Hallo,

wo bekommst du denn die Links her (Datenbank, Textdatei, usw.)?

EDIT:

wenn die Links aus einer Datenbank kommen, dann kannst du sie so ausgeben.

PHP:
<?PHP
$dbhost = "localhost";
// MySQL - Host, meist ist es localhost
$dbpass = "xxx";
// MySQL - Passwort
$dbuser = "xxx";
// MySQL - Benutzer
$dbdata = "xxx";
// MySQL - Datenbankname
$dbtabelle = "xxx";
// MySQL - Datenbanktabelle
 
	@mysql_connect($dbhost, $dbuser, $dbpass); 
		// Auswahl der Datenbank 
	@$x=mysql_select_db($dbdata); 
		if (empty($x)) { 
		 echo "Fehler beim Verbinden mit dem Datenbankserver<br>"; 
		 exit; 
		} 
$sql = "SELECT * FROM $dbtabelle";
$query = mysql_query($sql);
 
$col[0] = "#ffffff"; 
$col[1] = "#eeeeee"; 
$i = 0; 
?>
<table border="0" width="100%">
<?
while($ds = mysql_fetch_object($query)){
$colIDX = $i % 2; // returns 0 or 1 
			$col[$colIDX]; 
	$i++; 
?>
<tr>
<td bgcolor= "<?=$col[$colIDX]?>">
	<? echo $ds->feld; ?>
		 </td>
	</tr>
<? } 
echo "</table>";
?>

EDIT:

wenn ich es so mache geht es bei mir.

PHP:
<?php
function links($text) {
$p[] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '<a href="\1" target="_blank">\\1</a>';
$p[] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '\\1<a href="http://\2" target="_blank">\\2</a>';
$p[] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
$r[] = '<a href="mailto:\1">\\1</a>';
$text = preg_replace($p, $r, $text);
return $text;
}
 
 
$text = "www.hagib.de <b>Anlaufstelle f&uuml;r &Auml;gyptenfreunde aus ganz Norddeutschland</b><br /><br /> ";
$text.= "www.selket.de/index.htm <b>interessant und vielseitig</b><br /><br /> ";
$text.= "www.schattenbaum.net <b>interessant</b><br /><br /> ";
?>
<table border="0" width="100%">
<tr>
	 <td>
	 <? echo links($text); ?>
	 </td>
</tr>
</table>

Ps: Es ist wichtig, dass die beiden <br /> und das Leerzeichen am Ende vorhanden sind.
 
Zuletzt bearbeitet:
Hallo,

<wo bekommst du denn die Links her (Datenbank, Textdatei, usw.)?>

also die Links sind nur die, die in dem script eingetragen sind. Aber ich werde wohl eine Tabelle dafür anlegen.

Werd heute abend mal in meinem schlauen Buch nachschauen ob da ein Beispiel drin ist, wie die aussehen muss. (Das soll jetzt (k)ein kleiner schubser sein) :)

Aber jetzt noch mal eine ganz dumme Frage, also ich fülle meine Tabelle im moment Online. Aber es geht ja auch mit einem php-script, mit INSERT-INTO / VALUE, hab auch so eines erstellt. Muss ich jetzt noch ein "FORM" schreiben, das ich damit verknüpfe und darin die Daten eintragen die ich in die Tabelle haben will und dann abschicken?

gruss
aus bremen
rolf
 
rolli123 hat gesagt.:
Aber jetzt noch mal eine ganz dumme Frage, also ich fülle meine Tabelle im moment Online. Aber es geht ja auch mit einem php-script, mit INSERT-INTO / VALUE, hab auch so eines erstellt. Muss ich jetzt noch ein "FORM" schreiben, das ich damit verknüpfe und darin die Daten eintragen die ich in die Tabelle haben will und dann abschicken?

Hallo,

müssen musst du nicht, aber
  1. kann man halt über ein Formular schöner die Daten eintragen und
  2. könntest du auch deinen Besuchern erlauben, dass sie einen Link eintragen.
EDIT:

Hallo,

hab hier jetzt schnell ein Script gebaut, mit dem du die Links in ein Array eingibst und Sie dann in einer Tabelle ausgegeben werden und zwar mit abwechselndem Hintergrund.

PHP:
<?php
function links($text) {
$p[] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '<a href="\1" target="_blank">\\1</a>';
$p[] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '\\1<a href="http://\2" target="_blank">\\2</a>';
$p[] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
$r[] = '<a href="mailto:\1">\\1</a>';
$text = preg_replace($p, $r, $text);
return $text;
}
 
$text = array(
"www.hagib.de <b>Anlaufstelle f&uuml;r &Auml;gyptenfreunde aus ganz Norddeutschland</b><br /><br /> ",
"www.selket.de/index.htm <b>interessant und vielseitig</b><br /><br /> ",
"www.schattenbaum.net <b>interessant</b><br /><br /> "
);
$anzahl = count($text);
$col[0] = "#ffffff"; 
$col[1] = "#eeeeee"; 
$e = -1; 
?>
<table border="0" width="100%">
<? 
for ($i = 0; $i < $anzahl; $i++) {
$e++;
	$colIDX = $e % 2; // returns 0 or 1 
			$col[$colIDX]; 
?>
<tr>
	 <td bgcolor="<?=$col[$colIDX]?>">
<?=links($text[$e])?>
	 </td>
</tr>
<? } ?>
</table>
 
Zuletzt bearbeitet:
Hallo,

wunderbar und Klasse, klappt hervorragend und sieht sehr gut aus. Jedenfalls das Script mit dem Array und der Tabelle mit dem abwechselndem Hintergrund.

Ich habe jetzt mal eine Tabelle erstellt, habe diese "links" genannt.

Tabellenstruktur für Tabelle `links`
#

CREATE TABLE `links` (
`id` int(10) unsigned NOT NULL auto_increment,
`url` varchar(150) NOT NULL default '',
`beschreibung` text NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;

Also bei Deinem Script bekomme ich keine Ausgabe.

Wenn ich diese Abfrage einbaue:

$abfrage = "SELECT * FROM links";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "$row->url, $row->beschreibung <br>";
}

Bekomme ich eine Ausgabe, allerdings sind die Links dann nicht aktiv, sondern nur einfacher Text.

Ist es schwer Deine Ausgabe anzupassen ? Beziehungsweise, meine Tabelle zu ändern, wäre ja kein Problem, müsste nur wissen wie;)

gruss
aus bremen
rolf
 
Zuletzt bearbeitet:
Hallo,

bei mir hats so funktioniert.

PHP:
<?PHP
 $dbhost = "localhost";
 // MySQL - Host, meist ist es localhost
 $dbpass = "xxx";
 // MySQL - Passwort
 $dbuser = "xxx";
 // MySQL - Benutzer
 $dbdata = "xxx";
 // MySQL - Datenbankname
 $dbtabelle = "links";
 // MySQL - Datenbanktabelle
 
	@mysql_connect($dbhost, $dbuser, $dbpass); 
		// Auswahl der Datenbank 
	@$x=mysql_select_db($dbdata); 
		if (empty($x)) { 
		   echo "Fehler beim Verbinden mit dem Datenbankserver<br>"; 
		   exit; 
		} 
 function links($text) {
 $p[] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
 $r[] = '<a href="\1" target="_blank">\\1</a>';
 $p[] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
 $r[] = '\\1<a href="http://\2" target="_blank">\\2</a>';
 $p[] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
 $r[] = '<a href="mailto:\1">\\1</a>';
 $text = preg_replace($p, $r, $text);
 return $text;
 }
  $col[0] = "#ffffff"; 
  $col[1] = "#eeeeee"; 
  $i = 0; 
 $abfrage = "SELECT * FROM $dbtabelle";
 $ergebnis = mysql_query($abfrage);
?>
<table border="0" width="100%">
<?
 while($row = mysql_fetch_object($ergebnis))
 {
	$colIDX = $i % 2; // returns 0 or 1 
			$col[$colIDX]; 
	$i++; 
?>
 <tr>
	  <td bgcolor="<?=$col[$colIDX]?>">
	 <?
  echo links($row->url);
  echo ", $row->beschreibung <br>";
  ?>
	   </td>
 </tr>
 <? } ?>
</table>
 
Danke,

das klappt hervorragend, ich bastel jetzt gerade an einem Form, wo ich die Tabelle füllen kann.

Jetzt aber noch eine grundsätzliche Frage. In Deinem Script ist ja kein mysql_close enthalten. Ich konnte darüber jetzt nichts im Buch und hier im Forum finden, ist das bei Deinem Script nicht nötig, muss das überhaupt sein

gruss
aus bremen
rolf

ps. nochmals Danke für Deine Mühe, bin jetzt gerade dabei dein Script zu "entschlüsseln", damit ich es auch verstehe.
 
rolli123 hat gesagt.:
Jetzt aber noch eine grundsätzliche Frage. In Deinem Script ist ja kein mysql_close enthalten. Ich konnte darüber jetzt nichts im Buch und hier im Forum finden, ist das bei Deinem Script nicht nötig, muss das überhaupt sein

Hallo,

man kann in mein Script natürlich auch ein mysql_close einbauen

PHP:
<?PHP
 $dbhost = "localhost";
 // MySQL - Host, meist ist es localhost
 $dbpass = "xxx";
 // MySQL - Passwort
 $dbuser = "xxx";
 // MySQL - Benutzer
 $dbdata = "xxx";
 // MySQL - Datenbankname
 $dbtabelle = "links";
 // MySQL - Datenbanktabelle
 
   $verbindung = @mysql_connect($dbhost, $dbuser, $dbpass);
		// Auswahl der Datenbank 
	@$x=mysql_select_db($dbdata); 
		if (empty($x)) { 
		   echo "Fehler beim Verbinden mit dem Datenbankserver<br>"; 
		   exit; 
		} 
 function links($text) {
 $p[] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
 $r[] = '<a href="\1" target="_blank">\\1</a>';
 $p[] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
 $r[] = '\\1<a href="http://\2" target="_blank">\\2</a>';
 $p[] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
 $r[] = '<a href="mailto:\1">\\1</a>';
 $text = preg_replace($p, $r, $text);
 return $text;
 }
  $col[0] = "#ffffff"; 
  $col[1] = "#eeeeee"; 
  $i = 0; 
 $abfrage = "SELECT * FROM $dbtabelle";
 $ergebnis = mysql_query($abfrage);
?>
<table border="0" width="100%">
<?
 while($row = mysql_fetch_object($ergebnis))
 {
	$colIDX = $i % 2; // returns 0 or 1 
			$col[$colIDX]; 
	$i++; 
?>
 <tr>
	  <td bgcolor="<?=$col[$colIDX]?>">
	 <?
  echo links($row->url);
  echo ", $row->beschreibung <br>";
  ?>
	   </td>
 </tr>
 <? }
 mysql_close($verbindung);
 ?>
</table>
 
Zurück