[PHP] Query result - > Hyperlink (preg_replace)

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zit met een probleem, ik ben bezig een simpel nieuwspaginaatje te maken, door uit een MySQL dbase de data te halen en via PHP op het scherm te laten zetten.

De data erin en eruit halen lukt prima, maar nu wil ik ook dat als er een url in de tekst staat dat deze automatisch wordt omgezet wordt naar een hyperlink (clickable)

ik heb volgens mij de goede strings nu, want als ik dit script open in de browser:
PHP:
1
2
3
4
5
6
7
8
9
10
<?PHP

$data = "Klik hier: http://www.test.nl - info@test.nl";

$data = preg_replace ("/(?:^|\b)((((http|https|ftp):\/\/)|(www\.))([\w\.]+)([,:%#&\/?=\w+\.-]+))(?:\b|$)/is", "<a href=\"$1\" target=\"_blank\">$1</a>", $data);
$data = preg_replace ("/([\w\.]+)(@)([\S\.]+)\b/i", "<a href=\"mailto:$0\">$0</a>", $data);

printf ("$data");

?>


kan ik de tekst dus aanklikken en opent er een nieuw venstertje met de url.... ook werkt het mail spulletje goed

MAAR en nu komt ie (zal vast wel iets stoms zijn....zoals gewoonlijk)

Hoe moet ik het aanpakken als ik in plaats van $data = "Klik hier: http://www.test.nl - info@test.nl"; een query result wil laten zien en dat hij dan dus de tekst uit die result nachecked op urls en zoja deze clickable maakt? Ik kom er echt niet uit, heb ben al dagen op zoek naar een oplossing, ben al op devshed, php freakz enzo geweest.. maar ik wordt er niet echt veel wijzer uit

Kan iemand mij please helpen hiermee?

Met vriendelijke groet,

Martijn

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

de juiste kolom uit de result set toekennen aan $data lijkt me

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dit is de query dit ik wil gebruiken (simpel testje gewoon dus)

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php

$db = mysql_connect("localhost", "admin");

mysql_select_db("nrgcmnieuws",$db);

$result = mysql_query("SELECT * FROM nieuws",$db);

printf("%s<br>\n", mysql_result($result,1,"nieuws"));

?>


hoe verwerk ik hier dan die preg_replace strings in? dat snap ik dus niet helemaal

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

PHP:
1
$data = mysql_result($result,1,"nieuws");

al geprobeerd ? Had je met een beetje creatief denkwerk toch ook wel achter kunnen komen ;)

ik zou als ik jou was ook wat error afhandeling in 't script zetten, wat nu als de db connectie of het selecteren v/d db of de query mislukt ? Dan worden je users met 'lelijke' foutmeldingen geconfronteerd .....

i.p.v. mysql_result zou je ook eens naar mysql_fetch_row/array/object kunnen kijken want
When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below).

[ Voor 48% gewijzigd door TheRookie op 25-03-2003 15:06 . Reden: + mysql_fetch ]


Acties:
  • 0 Henk 'm!

Verwijderd

kun je niet een link eruithalen op de manier zoals je nu doet en die in een variabele zetten, dan de string op die variabele exploden en dan weer de volgende link eruit halen?

Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024

Roa

Waarom ingewikkeld doen als et simpel kan? Zoals TheRookie al zei:

PHP:
1
2
3
4
5
6
7
$query = "SELECT * FROM news WHERE id='$id'";
$result = mysql_query($query);
$data = mysql_fetch_object($result);

$data = preg_replace ("bla", "bla", $data); 

printf ("$data");


(uit de losse pols)

[ Voor 12% gewijzigd door Roa op 25-03-2003 16:23 ]

Research is what I'm doing when I don't know what I'm doing.

Pagina: 1