/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
eregi_replace
Fra : Torben


Dato : 11-09-06 21:30

Hej

Her er en nød:

Jeg vil gerne skifte f.eks. {a:345} ud med <a href="../index.php?page=345">
i en tekst fra min mysql! Hvordan gør jeg det - eregi_replace?

Altså noget med:

$text = eregi_replace('{a:345}','<a href="../index.php?page=345">',$text);

Torben



 
 
Torben (11-09-2006)
Kommentar
Fra : Torben


Dato : 11-09-06 22:25

> $text = eregi_replace('{a:345}','<a href="../index.php?page=345">',$text);

Og for at gøre det endnu mere svært: jeg vil nuppe tallet altså 345 og
trække en kort tekst fra DBen, som jeg herefter indsætter som
title="teksten" i linket!?

Torben



Benny Nissen (11-09-2006)
Kommentar
Fra : Benny Nissen


Dato : 11-09-06 22:40

Torben wrote:
>> $text = eregi_replace('{a:345}','<a href="../index.php?page=345">',$text);
>
> Og for at gøre det endnu mere svært: jeg vil nuppe tallet altså 345 og
> trække en kort tekst fra DBen, som jeg herefter indsætter som
> title="teksten" i linket!?

Kan du ikke bare bruge str_replace ?
http://dk.php.net/str_replace

--
Benny

Bertel Lund Hansen (11-09-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 11-09-06 23:24

Torben skrev:

> Jeg vil gerne skifte f.eks. {a:345} ud med <a href="../index.php?page=345">
> i en tekst fra min mysql! Hvordan gør jeg det -

Utestet:

$resultstring="{a:345}";
$linkstring="<".substr($resultstring,1,strlen($resultstring)-2);
str_replace(":"," href='../index.php?page=",$linkstring);
// Udtræk titeltekst som $titeltekst.
$linkstring.="' title='$titeltekst'>";

Udskriv $linkstring og tjek at der står det der skal.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Torben (12-09-2006)
Kommentar
Fra : Torben


Dato : 12-09-06 09:01

Hej Bertel

> $resultstring="{a:345}";
> $linkstring="<".substr($resultstring,1,strlen($resultstring)-2);
> str_replace(":"," href='../index.php?page=",$linkstring);
> // Udtræk titeltekst som $titeltekst.
> $linkstring.="' title='$titeltekst'>";

Tæt på, men alligevel ikke helt

Jeg har forsøgt med:
$afsnit['text'] = str_replace('{/a}','</a>',$afsnit['text']);
$afsnit['text'] = eregi_replace('{a:','<a
href="http://www.hjemmeside.dk/dev/p/?s=art&art=',$afsnit['text']);
$afsnit['text'] = eregi_replace(':}','">',$afsnit['text']);

Det erstatter {/a} med </a>

og f.eks. {a:5464} med <a
href="http://www.hjemmeside.dk/dev/p/?s=art&art=5464">

$afsnit['text'] er en tekststreng fra basen og 5464 kunne være alle tal 2,
495943 eller 17

Jeg vil gerne kunne echo $afsnit['text'] og alle links og title på plads!
altså:

Fra:
Dette er tekst om fisk i {:a5464:}Gudenåen{/a}.
Til:
Dette er tekst om fisk i <a
href="http://www.hjemmeside.dk/dev/p/?s=art&art=5464" title="Gudenåen er
Danmarks længste å [hentet i databasen]">Gudenåen</a>.



Bertel Lund Hansen (12-09-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 12-09-06 09:58

Torben skrev:

> Fra:
> Dette er tekst om fisk i {:a5464:}Gudenåen{/a}.

Inden jeg slår mig løs, skal jeg lige vide om den linje er
rigtig, for formatet er anderledes end i dit første spørgsmål.
Jeg troede at det skulle være {a:5464}.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Torben (12-09-2006)
Kommentar
Fra : Torben


Dato : 12-09-06 10:20

>> Dette er tekst om fisk i {:a5464:}Gudenåen{/a}.
>
> Inden jeg slår mig løs, skal jeg lige vide om den linje er
> rigtig, for formatet er anderledes end i dit første spørgsmål.
> Jeg troede at det skulle være {a:5464}.

ja rettelsen er med vilje - jeg er bange for at det første kan give for
mange fejl - altså

{:a[tal]:}

Det kunne godt være at der ville være noget mere smart - nogen ideer?



Bertel Lund Hansen (12-09-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 12-09-06 10:57

Torben skrev:

> Fra:
> Dette er tekst om fisk i {:a5464:}Gudenåen{/a}.

> Til:
> Dette er tekst om fisk i <a
> href="http://www.hjemmeside.dk/dev/p/?s=art&art=5464" title="Gudenåen er
> Danmarks længste å [hentet i databasen]">Gudenåen</a>.

Hvis du er i tvivl om formatet, laver jeg det lidt generelt:

$linkstart='{:a';
$linkslut=':}';
$ankerslut='{/a}';
$linkcontent="<a href='http://www.hjemmeside.dk/dev/p/?s=art&art="; // " yderst, ' inderst.
$titletext=// Må du selv hitte ud af.
$linkrest="' title='$titletext'>";

str_replace($linkstart,$linkcontent,$afsnit['text']);
str_replace($linkslut,$linkrest,$afsnit['text']);
str_replace($ankerslut,"</a>",$afsnit['text']);

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Torben (12-09-2006)
Kommentar
Fra : Torben


Dato : 12-09-06 11:42

> Hvis du er i tvivl om formatet, laver jeg det lidt generelt:
>
> $linkstart='{:a';
> $linkslut=':}';
> $ankerslut='{/a}';
> $linkcontent="<a href='http://www.hjemmeside.dk/dev/p/?s=art&art="; // "
> yderst, ' inderst.
> $titletext=// Må du selv hitte ud af.
> $linkrest="' title='$titletext'>";
>
> str_replace($linkstart,$linkcontent,$afsnit['text']);
> str_replace($linkslut,$linkrest,$afsnit['text']);
> str_replace($ankerslut,"</a>",$afsnit['text']);

Jeg kan se det er lidt smartere end det jeg selv nu har brygget sammen. Din
kode er muligvis hurtigere - eller hvad?

$afsnit['text'] = str_replace('{/a}','</a>',$afsnit['text']);
$strArr = split('[{}]',$afsnit['text']);
for($i=0;$i<count($strArr);$i++){
if(eregi('^:a[0-9]{1,}:$',$strArr[$i])){
$link_ID = substr($strArr[$i],2,strlen($strArr[$i])-3);
$query = "SELECT * FROM ".$artikler_TB." WHERE artikel_ID =
".$link_ID;
$result_sub = mysql_query($query) or die("Error: " . mysql_error());
$link = mysql_fetch_array($result_sub);
$strArr[$i] = "<a href=\"?s=art&art=".$link_ID."\"
title=\"".$link['resume']."\">";
}
}
$afsnit['text'] = implode($strArr);?>



Bertel Lund Hansen (12-09-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 12-09-06 12:27

Torben skrev:

> Jeg kan se det er lidt smartere end det jeg selv nu har brygget sammen. Din
> kode er muligvis hurtigere - eller hvad?

Jeg ved det ikke, men principielt regner jeg med at indbyggede
rutiner er hurtigere end de løkker man selv laver. Derudover
lægger jeg vægt på overskuelig kode. Det lærte jeg engang i min
spæde programmeringsungdom da jeg kikkede på et program jeg havde
lavet et par måneder tidligere. Sikken et rod at hitte rede i!

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

domaz (12-09-2006)
Kommentar
Fra : domaz


Dato : 12-09-06 11:39

ikke testet, for sidder lige på arbejdet...

problemet er så bare at hente noget fra databasen ud midt i det hele...

<?php
$str = "noget tekst {a:345} bla bla bla";

$str = ereg_replace("\{a:([^]]+)\}", "<a
href='../index.php?page=\\1'>link</a>", $str);

echo $str;
?>

har evt. et script der hjemme der kan hente info fra db ud midt i ereg_replace
scriptet...

Torben wrote in dk.edb.internet.webdesign.serverside.php:
> Hej
>
> Her er en nød:
>
> Jeg vil gerne skifte f.eks. {a:345} ud med <a href="../index.php?page=345">
> i en tekst fra min mysql! Hvordan gør jeg det - eregi_replace?
>
> Altså noget med:
>
> $text = eregi_replace('{a:345}','<a href="../index.php?page=345">',$text);
>
> Torben
>
>


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste