URL aus fließtext auslesen

hallo leute.. also

irgendwie versteh ich das hier nicht, bin auch eventuell falsch in dem thread hier..

ich habe in einer mySQL tabelle in der zelle http://www.name.com reingeschrieben.

wenn ich jetzt mittels php eine tabelle auszeige hab ich in der ausgabe keine klickbare url drin.

hoffentlich versteht ihr was ich meine.
Mein code und die ausgabe Website sollte die klickbare url ausgeben

PHP:
//zeilen aus db holen und in html einfügen
while ($zeile = mysql_fetch_object ($ergebnis)) {
	echo("<tr>");
	echo("<td align='left' valign='top'>$zeile->Name</td>");
	echo("<td align='left' valign='top'>$zeile->Ort</td>");
	echo("<td align='left' valign='top'>$zeile->Verkaufssortiment</td>");
	echo("<td align='left' valign='top'>$zeile->Website</td>");
	echo("</tr>");
}



gruss.lindu
 
klar dass da keine klickbare url angezeigt wird. du gibst ja auch einfach nur die url aus. klickbar wird sie erst durch das <a>-tag. und das generiert dir ja die hier besprochene funktion "links()". du müsstest deine ausgabe also erweitern:
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; 
}

while ($zeile = mysql_fetch_object ($ergebnis)) {
	echo("<tr>");
	echo("<td align='left' valign='top'>$zeile->Name</td>");
	echo("<td align='left' valign='top'>$zeile->Ort</td>");
	echo("<td align='left' valign='top'>$zeile->Verkaufssortiment</td>");
	echo("<td align='left' valign='top'>".links($zeile->Website)."</td>");
	echo("</tr>");
}
 
he super es funkitonier.. ;) würde eingedlich beide, doch

@ Dennis Wronka.
deine variante funktioniert , doch habe ich dann auch in den feldern, in denen nichts drinsteht 'Website' drin, jedoch keine url hinterlegt. aber danke auf jedenfall.

@ DeeJTwoK
die variante ist genau das was ich gesucht habe, dankeschön...

ich mache meine ersten gehversuche mit PHP und versteh viele dinge noch nicht, hatte den code von Gumbo versucht, doch mit der modifikation von forsterm's script funktionierts nun..

somit danke @all..

gruzz.lindu
 
hallo leute..

ich steh wieder mal an...

wie kann ich nun meine ausgabe der tabellenzeilen unterschiedlich einfärben..

ich habe folgendes gefunden, doch irgendwie funktioniert das nicht wenn ich es einbauen will .

PHP:
<?php
$i=1;
while($i < 20) {
 $color = ($i % 2) ? "FF0000" : "0000FF";
 echo "<tr><td style=\"background-color: #$color\"> Text </td></tr>";
 $i++;
}
?>

diesen code will ich hier einbauen

PHP:
while ($zeile = mysql_fetch_object ($ergebnis)) { 
    echo("<tr>"); 
    echo("<td align='left' valign='top'>$zeile->Name</td>"); 
    echo("<td align='left' valign='top'>$zeile->Ort</td>"); 
    echo("<td align='left' valign='top'>$zeile->Verkaufssortiment</td>"); 
    echo("<td align='left' valign='top'>".links($zeile->Website)."</td>"); 
    echo("</tr>"); 
}

leider habe ich keine ausgabe habe ein paar varianten ausprobiert, doch kommt nichts raus :confused:

was muss ich hier beachten, wie löse ich mein problem

danke im voraus
lindu
 
Ganz einfach wird es wenn Du 2 verschiedene CSS-Klassen dafuer definierst.
Z.B. .col0 und .col1.
Dann kannst Du das ganz einfach so machen:
PHP:
$i=0;
while ($zeile = mysql_fetch_object ($ergebnis)) { 
    echo("<tr>"); 
    echo("<td align='left' valign='top' class='col".($i%2)."'>$zeile->Name</td>"); 
    echo("<td align='left' valign='top' class='col".($i%2)."'>$zeile->Ort</td>"); 
    echo("<td align='left' valign='top' class='col".($i%2)."'>$zeile->Verkaufssortiment</td>"); 
    echo("<td align='left' valign='top' class='col".($i%2)."'>".links($zeile->Website)."</td>"); 
    echo("</tr>");
    $i++;
}
Ansonsten musst Du halt wie im vorherigen Beispiel pruefen wie ob der Divisionsrest 0 oder 1 ist und damit dann die Farbe festlegen. Eben genau wie in dem von Dir gezeigten Beispiel.
Dies
PHP:
$color = ($i % 2) ? "FF0000" : "0000FF";
laesst sich auch etwas "verstaendlicher" formulieren, und zwar so:
PHP:
if ($i%2==1)
{
 $color='FF0000';
}
else
{
 $color='0000FF';
}

Und ich moechte Dich bitten Dich an Gross- und Kleinschreibung zu halten.
 
In dem Fall wäre es einfacher der gesamten Tabellenzeile einer Klasse zuzuordnen und den Rest mit CSS-Selektoren zu erledigen.
 
heee danke leute , hat geklappt, hab die sache erst jetzt wieder weiter ausgebaut, da ich keine zeit hatte, seit meinem letzten post..

find die variante mit der css klasse super, habs einfachheitshalber in die TR eingefügt

gruzz.lindu
 

Neue Beiträge

Zurück