functie in eregi_replace
stefan lenders
13/02/2009 13:37:00Ik wil dat binnen eregi_replace een functie wordt gedaan, maar dat lukt mij niet, op een of andere manier leest hij het niet goed uit.
Scripts
Functie
eregi_replace
Kortom als er bijvoorbeeld staat [raps]100[/raps] dan moet hij in de database zoeken naar artikel 100 en dan moet hij het weergeven als naamartikel (#100) en dit is dan een link naar het artikelblad.
Scripts
Functie
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
function artikel_naam($id)
{
$sql = "SELECT * FROM `RDB_artikels` WHERE id='" . $id . "'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if($count == 0){
$naam = "Artikel Onbekend";
}else{
while($rij = mysql_fetch_object($result)){
$naam = $rij['naam'];
}
}
return $naam;
}
?>
function artikel_naam($id)
{
$sql = "SELECT * FROM `RDB_artikels` WHERE id='" . $id . "'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if($count == 0){
$naam = "Artikel Onbekend";
}else{
while($rij = mysql_fetch_object($result)){
$naam = $rij['naam'];
}
}
return $naam;
}
?>
eregi_replace
Code (php)
1
2
3
4
2
3
4
<?php
$ntext = eregi_replace("\\[raps\\]([^\\[]*)\\[/raps\\]", "<a href=\"index.php?screen=artikels&a=\\1\">" .
artikel_naam("\\1") . " (#\\1)</a>", $ntext);
?>
$ntext = eregi_replace("\\[raps\\]([^\\[]*)\\[/raps\\]", "<a href=\"index.php?screen=artikels&a=\\1\">" .
artikel_naam("\\1") . " (#\\1)</a>", $ntext);
?>
Kortom als er bijvoorbeeld staat [raps]100[/raps] dan moet hij in de database zoeken naar artikel 100 en dan moet hij het weergeven als naamartikel (#100) en dit is dan een link naar het artikelblad.
PHP hulp
24/11/2024 08:01:59pepijn de vos
13/02/2009 14:02:00 Werkt niet, dan stop je gewoon \\1 in die functie.
http://php.net/manual/en/function.preg-replace-callback.php
http://php.net/manual/en/function.preg-replace-callback.php
stefan lenders
13/02/2009 14:16:00Dat is chinees voor mij, ik heb php zo ver geleerd door de functies in te lezen maar wat daar staat snap ik dus voor geen meter, zou je een voorbeeld kunnen geven hoe te doen