/ 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
Indsætte links i tekst
Fra : Kell Larsen


Dato : 03-09-04 16:16

Jeg er ved at lave en online-encyklopædi og vil lave det sådan,
at der automatisk bliver linket artiklerne imellem. Det vil altså
sige, at hvis overskriften fra en artikel står i en anden
artikels tekst, så skal der indsættes et link der til den første
artikel. Noget i retning af:

Overskrift til opslag 1
tekst tekst tekst

Overskrift til opslag 2
tekst tekst <a href=Opslag 2>[Overskrift til opslag 1]</a> tekst

Jeg har indtil videre gjort det ved at have et array ($row[0] er
linket og $row[1] er teksten) med alle overskrifter og deres
tilhørende links og så:

For(0 til alle opslag i $row){
$tekst = preg_replace("/($row[1])/i", "<a href=$row[0]>\\1</a>",
$tekst);
}

Det virker fint - bortset fra når overskriften fra et opslag står
midt i et link. Hvis jeg fx har en artikel med overskriften PHP
og et andet sted et link der ser ud som: <a
href='side1.php'>side1</a>, så smadrer ovenstående funktion
linket og indsætter istedet et link til min artikel om PHP: <a
href='side1.<a href='opslag_om_php'>php</a>'>side1</a>.

Nogen der kan hjælpe mig med, hvordan jeg undgår det???

Vh. Kell




--
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

 
 
Tommy Ipsen (03-09-2004)
Kommentar
Fra : Tommy Ipsen


Dato : 03-09-04 17:15

Kell Larsen wrote:
> Jeg er ved at lave en online-encyklopædi og vil lave det sådan,
> at der automatisk bliver linket artiklerne imellem. Det vil altså
> sige, at hvis overskriften fra en artikel står i en anden
> artikels tekst, så skal der indsættes et link der til den første
> artikel. Noget i retning af:

Det lyder som om du er ved at lave noget der findes i forvejen:

http://da.wikipedia.org/wiki/Forside

Mvh Tommy Ipsen

Kell Larsen (03-09-2004)
Kommentar
Fra : Kell Larsen


Dato : 03-09-04 17:36

Først og fremmest: Undskyld for de to opslag - det vil *aldrig*
gentage sig (jeg troede at html-koderne i det her havde
turned-it-down). Det var dumt.

Tommy Ipsen wrote in dk.edb.internet.webdesign.serverside.php:
> Det lyder som om du er ved at lave noget der findes i forvejen:
>
> http://da.wikipedia.org/wiki/Forside
>

Ja... Men jeg laver det på bestilling, og alt indholdet af opslagene
vil være rettet mod hovedtemaet for den hjemmeside hvorpå
encycklopædien skal ligge, så informationen vil være forskellige fra
det fundet i Tommy's link. Der er sandsynligvis tusindvis af
lignende projekter derude, men jeg gad godt vide hvordan de ordner
det med links...

Hilsner fra Kell

--
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

Anders Wegge Jakobse~ (03-09-2004)
Kommentar
Fra : Anders Wegge Jakobse~


Dato : 03-09-04 19:34

"Kell" == Kell Larsen <junk@kells.dk> writes:

...

> det fundet i Tommy's link. Der er sandsynligvis tusindvis af
> lignende projekter derude, men jeg gad godt vide hvordan de ordner
> det med links...

Hent koden her <http://wikipedia.sourceforge.net/>, og se med dine
egne øjne.

--
/Wegge <http://outside.bakkelygaard.dk/~wegge/>
echo mail: !#^."<>"|tr "<> mail:" dk@wegge

Kell Larsen (04-09-2004)
Kommentar
Fra : Kell Larsen


Dato : 04-09-04 07:41

Anders Wegge Jakobsen wrote in
dk.edb.internet.webdesign.serverside.php:
> Hent koden her <http://wikipedia.sourceforge.net/>, og se med dine
> egne øjne.

Tak for hjælpen!!! Jeg klarede det nu allerede her til morgen - så må
vi se om ikke de har en mere elegant måde hos Wiki.

Jeg ordnede det med en preg_split('(/[Aa]>|<[Aa])') og lavede den
antagelse at alle tekster starter med noget andet end et link (fx <p>).
Med ovenstående split vil alle med lige indeks (og 0) i arrayet være
tekst, mens alle med ulige indeks vil være links... Så skal jeg bare
tilføje et "/A> i starten af alle de lige og et "<A" i starten af alle
de ulige.

Jeg kan så nøjes med at lave min replace-function i de lige og den med
indeks 0.

Ikke særlig elegant, men det virker. Tak for hjælpen.

--
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