Stel, ik heb de volgende gegevens in het veld 'link' staan:
#http://www.imdb.com/title/tt0173943/#
(ik heb het geƫxporteerd vanuit access' mdb-bestand naar .csv-bestand en die importeer ik dan via MySQL-Front in de MySQL-db)
Hoe krijg ik het zo dat de 2 haakjes (#) eruit gehaald worden en het een klikbare link wordt?
dus zoiets:
http://www.imdb.com/title/tt0173943/

dit is een gedeelte uit het script:

<?php
...
}elseif ($i == 30) { // link
if ($row[$i] == "NULL") {
echo "";
}else{
$link = "$row[$i]";
$link = str_replace("#", "", $link);
echo $link;
}
}
...
?>

mochten er meer gegevens nodig zijn, dan hoor ik het wel.

Alvast bedankt voor de moeite!
<?php
$link = preg_replace('|#(.+?)#|i','<a target="_blank" href"\\1">\\1</a>',$row[$i]);
?>
Als ik het volgende kleine scriptje run:

<?php

$link = "#http://www.imdb.com/title/tt0173943/#";;
$link = preg_replace('|#(.+?)#|i','<a target="_blank" href"\\1">\\1</a>',$row[$i]);

echo $link;

?>
verschijnt er nix in mn venster.
Moet je $row[$i] ook wel in $link veranderen natuurlijk in je testscriptje.
you're right dutchcamel!

maar als ik het scriptje dan zo heb:
<?php

$link = "#http://www.imdb.com/title/tt0173943/#";;
$link = preg_replace('|#(.+?)#|i','<a target="_blank" href"\\1">\\1</a>',$link);

echo $link;

?>
dan zijn de haakjes wel verdwenen maar is het nog geen klikbare link... :-s
ik ben nog niet zo thuis in PCRE
<?php

$link = "#http://www.imdb.com/title/tt0173943/#";;
$link = preg_replace('|#(.+?)#|i','<a target="_blank" href="\\1">\\1</a>',$link);

echo $link;

?>
hehe, tikfoutje :P
ik was de = na href vergeten
hehe, zelf ook over t hoofd gezien :P
wie kan hier de fout ontdekken?
als ik het in een klein scriptje run (zoals hierboven) doet ie precies wat ik wil, maar als ik um dan importeer in het uiteindelijke script heeft t geen effect

<?php
...
// create table body
while ($row = mysql_fetch_row($result))
{
echo "<tr align=left valign=top>\n";
for ($i=1; $i<$num_fields; $i++)
{
echo "<td bgcolor=#FFFFFF>";
if (!isset($row[$i])) // test for null value
{echo "NULL";}
else
...
}elseif ($i == 30) { // link
if ($row[$i] == "" or $row[$i] == "NULL") {
echo "";
}else{
$link = $row[$i];
$link = preg_replace('|#(.+?)#|i','<a target="_blank" href="\\1">\\1</a>',$link);
echo $link;
}
...
}else{
echo $row[$i];
}
echo "</td>\n";
}
echo "</tr>\n";
}
// end table body
echo "</table>";

?>
Je zegt:

<?
if () {
// blaat
}
else {
...
}
elseif() {
// blaat
}
?>

Weet niet of er wat in je else staat, maar de else hoort dan wel onderaan. Eerst als, dan anders als, dan anders. Nu heb je als, anders, anders als dat werkt niet :)
Ik heb wat gedeeltes weggelaten (vandaar de ...)!

zie hier maar eens:
<?php
// create table header
echo "<table border=1 bgcolor=#ECE9D8 color=#000000 cellpadding=2>";
#echo "<td colspan=$num_fields align=center valign=middle bgcolor=#ECE9D8><font color=#0000FF><h2>FilmArchief</h2></font></td>";
echo "<tr>";
for ($i=1; $i<$num_fields; $i++)
{
echo "<th>";
echo mysql_field_name($result, $i);
echo "</th>";
}
echo "</tr>";
// end table header

// create table body
while ($row = mysql_fetch_row($result))
{
echo "<tr align=left valign=top>\n";
for ($i=1; $i<$num_fields; $i++)
{
echo "<td bgcolor=#FFFFFF>";
if (!isset($row[$i])) // test for null value
{echo "NULL";}
else
if ($i == 1) { // titel
echo "<b><font align=center valign=middle>" . $row[$i] . "</font></b>";
}elseif ($i == 5) { // waardering
if ($row[$i] == "*****") {
echo "<img src=\"Kijkwijzer/stars-5.gif\">";
}elseif ($row[$i] == "****") {
echo "<img src=\"Kijkwijzer/stars-4.gif\">";
}elseif ($row[$i] == "***") {
echo "<img src=\"Kijkwijzer/stars-3.gif\">";
}elseif ($row[$i] == "**") {
echo "<img src=\"Kijkwijzer/stars-2.gif\">";
}elseif ($row[$i] == "*") {
echo "<img src=\"Kijkwijzer/stars-1.gif\">";
}else{
echo $row[$i];
}
}elseif ($i == 6) { // leeftijd
if ($row[$i] == "AL") {
echo "<img src=\"Kijkwijzer/AL.gif\" width=20 height=20>";
}elseif ($row[$i] == "6 (MG)") {
echo "<img src=\"Kijkwijzer/6%20(MG).gif\" width=20 height=20>";
}elseif ($row[$i] == "12") {
echo "<img src=\"Kijkwijzer/12.gif\" width=20 height=20>";
}elseif ($row[$i] == "16") {
echo "<img src=\"Kijkwijzer/16.gif\" width=20 height=20>";
}else{
echo $row[$i];
}
}elseif ($i == 7) { // min(uten)
if ($row[$i] == "0") {
echo "";
}else{
echo $row[$i];
}
}elseif ($i == 12) { // zwart_wit
if ($row[$i] == "1" or $row[$i] == "yes") {
echo "<img src=\"Kijkwijzer/zwartwit.gif\" width=25 height=15>";
#echo "Ja";
}else{
echo "";
}
}elseif ($i == 13) { // stereo
if ($row[$i] == "1" or $row[$i] == "yes") {
echo "<img src=\"Kijkwijzer/stereo.gif\" width=20 height=15>";
#echo "Ja";
}else{
echo "";
}
}elseif ($i == 14) { // dolby
if ($row[$i] == "1" or $row[$i] == "yes") {
echo "<img src=\"Kijkwijzer/dolby.gif\" width=18 height=18>";
#echo "Ja";
}else{
echo "";
}
}elseif ($i == 15) { // breedbeeld
if ($row[$i] == "1" or $row[$i] == "yes") {
echo "<img src=\"Kijkwijzer/breedbeeld.gif\" width=25 height=15>";
#echo "Ja";
}else{
echo "";
}
}elseif ($i == 16) { // TVF(ilm)
if ($row[$i] == "1" or $row[$i] == "yes") {
echo "<img src=\"Kijkwijzer/TVFilm.gif\" width=25 height=25>";
#echo "Ja";
}else{
echo "";
}
}elseif ($i == 17) { // uitgezonden

// Zet ze in een array
$items = explode("-", $row[$i]);
// Nu de dag erbij halen :D
$datum = date("l, j F Y", mktime(0, 0, 0, $items[1], $items[2], $items[0] ));
// Dit geeft dan bv: Saturday, 22 May 2004
echo $datum;
if (empty($datum)) { echo $row[$i]; }

}elseif ($i == 18) { // tijd
$time = explode(":",$row[$i]);
$tijd = $time['0'] . ":" . $time['1'];
echo $tijd;
}elseif ($i == 20) { // NL_TV
if ($row[$i] == "0000-00-00") {
echo "";
}else{
// Zet ze in een array
$items = explode("-", $row[$i]);
// Nu de dag erbij halen :D
$datum = date("l, j F Y", mktime(0, 0, 0, $items[1], $items[2], $items[0]));
// Dit geeft dan bv: Saturday, 22 May 2004
echo $datum;
if (empty($datum)) { echo $row[$i]; }
}
}elseif ($i >= 21 and $i <= 23) { // filmkompas ... gegevens_nodig
if ($row[$i] == "1" or $row[$i] == "yes") {
echo "Ja";
}else{
echo "";
}
}elseif ($i >= 25 and $i <= 29) { // samenvatting ... minpluspunten
if ($row[$i] == "NULL") {
echo "";
}else{
echo $row[$i];
}
}elseif ($i == 30) { // link
if ($row[$i] == "" or $row[$i] == "NULL") {
echo "";
}else{
$link = $row[$i];
$link = preg_replace('|#(.+?)#|i','<a target="_blank" href="\\1">\\1</a>',$link);
echo $link;
}
}elseif ($i == 31) { // IMDb-cijfer
if ($row[$i] == "NULL") {
echo "";
}else{
echo $row[$i];
}
}elseif ($i == 32) { // FilmArchief-cijfer
if ($row[$i] == "NULL") {
echo "";
}else{
echo $row[$i];
}
}else{
echo $row[$i];
}
echo "</td>\n";
}
echo "</tr>\n";
}
// end table body
echo "</table>";

// verbinding afsluiten
mysql_close($db);

} else {


/*
*************************
* zoek-criteria opgeven *
* (via formulier) *
*************************
*/
?>
(hier het HTML-formulier)

het gaat eigenlijk alleen om dit gedeelte:

<?php
...

}elseif ($i == 30) { // link
if ($row[$i] == "" or $row[$i] == "NULL") {
echo "";
}else{
$link = $row[$i];
$link = preg_replace('|#(.+?)#|i','<a target="_blank" href="\\1">\\1</a>',$link);
echo $link;
}
...
?>

Reageren