Avatar billede cyberdude Nybegynder
08. oktober 2005 - 12:43 Der er 4 kommentarer og
1 løsning

str replace, explode og array's - vil jeg tro

Hejsa

Jeg sider og bøvler med noget tag haløjsa....
Jeg bruger noget javascript til at indsææt noget tekst/tags i et textarea ved at klikke på et billede/button
det billede ser ud som det her
<input type="image" src="/images/formatikoner/link.jpg" alt="Inds&aelig;tte link" onclick="insertTag(this.form.<?=$fieldname;?>,'[link]http://www,target,linktekst','[/link]');return false" />

når man klikke rpå billedet så bliver følgende indsat i mit textarea
[link]http://www,target,linktekst[/link]

jeg bruger så ljweb's tagster til at fjerne de der [...] tags med igen, men skal nu have fat i de varialber som bliver indsat... men hvordan

i tagster laver jeg følgende
$str = str_replace("[link]", "<a href=\"$var0\" target=\"$var1\">$var2", $str);
$str = str_replace("[/link]", "</a>", $str);
nu er det så at jeg går i stå, jeg skal have fat i de 3 variabler der befinder sig i $str og som står mellem [link] og [/link] tagsene.... men hvordan... ??
Avatar billede al_dair Nybegynder
08. oktober 2005 - 13:20 #1
prøv med:

preg_match_all("/<a[^>]+href=\"([^\"]+)/i",$str,$matches);

og så skulle $matches[0], $matches[1], osv indeholde de ønskede del af url'en
Avatar billede cyberdude Nybegynder
08. oktober 2005 - 13:37 #2
tror du har misforstået - eller jeg har forklaret for dårligt.....

det jeg putter gennem tagster ER :
[link]website-adressen,target,linktekst[/link]

det som jeg ønsker kommer ud af tagster igen er :
<a href="website-adressen" target="target">linktekst</a>

Det jeg selv kan hitte ud af at få tagster til er at lave [link] om til
<a href="
og [/link] om til
</a>
Det er så det der imellem jeg skal have hjælp til at få ud

jeg kunen forestille mig at jeg køre den der preg_match_all funktion på variablen $str INDEN jeg køre den gennem str_replace funktionen, så preg_match_all skal finde ALLE variabler der er adskilt af et , (komma) imellem tagsene
[link] [/link]

[fil] [/fil]

er det dig muligt at lave en preg_match_all funktion som søger efter ovenstående elementer og omdanner de ting den støder på imellem disse tags til variabler ???
150 point hvis det kommer til at funge
Avatar billede al_dair Nybegynder
08. oktober 2005 - 13:56 #3
Jamen, så er det da nemmere..

$str="[link]website-adressen,target,linktekst[/link]";

$regEx='{\[link\](.*),(.*),(.*)\[/link\]}Uis';
preg_match_all($regEx, $str, $matches);
  print "<pre>";
  print_r($matches);
  print "</pre>";

dine variabler er:

$matches[1][0]
$matches[2][0]
$matches[3][0];

håber at det funker :O
Avatar billede cyberdude Nybegynder
22. januar 2006 - 12:45 #4
Kan ikke få det til at funge...

Hvis jeg laver en
echo "$matches[1][0]";
får jeg blot Array[0]

Og laver jeg en
print_r($matches[1][0]);

vise den fint den værdi der er i det array, men når jeg forsøger at sætte det ind i en funktion går det galt...

se evt. spm. http://www.eksperten.dk/spm/681592
Avatar billede cyberdude Nybegynder
03. februar 2006 - 16:48 #5
lukker....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester