Avatar billede cyberdude Nybegynder
22. januar 2006 - 14:22 Der er 6 kommentarer og
1 løsning

array og print_r

Hejsa

Jeg har fået bikset følgende kode sammen :

$tekst = "[link]www.minside.dk/pages/vis/5/1/5,top;Logind her[/link]";

$nyhed = tagster_link($tekst);

echo "<p>$nyhed</p>";

function tagster_link($str) {
   
        $regEx='{\[link\](.*),(.*);(.*)\[/link\]}Uis';
        preg_match_all($regEx, $str, $matches);
        $str = str_replace("[link]", "<a href=\"", $str);
        print_r($matches[1][0]);
        $str = str_replace(",", "\" target=\"_", $str);
        print_r($matches[2][0]);
        $str = str_replace(";", "\">", $str);
        print_r($matches[3][0]);
        $str = str_replace("[/link]", "</a>", $str);
        return $str;
        }       


Problemet er at outputtet ser sådant her ud

www.minside.dk/pages/vis/5/1/5topLogind her<p><a href="www.minside.dk/pages/vis/5/1/5" target="_top">Logind her</a></p>

dvs. at der bliver "printet" hver gang jeg laver den der print_r(... for at få vist indholdet i arrayet...

har forsøgt at lave en echo "$matches[1][0]"; istedet men det virker slet ikke...

Så mit spørgsmål må vel entlig være hvordan får jeg sammensat en <a href... med værdier i et array UDEN at de bliver printet 2 gange
ELLER
hvordan undgår jeg at print_r(... udskrives til skærmen
ELLER
hvordan opsamler jeg de værdier som bliver udskrevet med print_r(... i andre variabler uden at de først bliver skrevet til skærmen.... ????
Avatar billede jakobdo Ekspert
22. januar 2006 - 14:28 #1
Du kan bruge $str = print_r($matches[1][0], true);
Så printer print_r ikke til skærmen, men til din variabel.
Avatar billede cyberdude Nybegynder
22. januar 2006 - 14:36 #2
det ser ud til at funge...
smid et svar så får du point :-)
Avatar billede jakobdo Ekspert
22. januar 2006 - 14:37 #3
Svar!
Avatar billede jakobdo Ekspert
22. januar 2006 - 14:59 #4
Takker for point!
Avatar billede jakobdo Ekspert
22. januar 2006 - 15:00 #5
Kunne du ikke blot nøjes med:
$str = $matches[2][0]; ??
Avatar billede cyberdude Nybegynder
22. januar 2006 - 15:54 #6
nej så udskriver den array0 elelr noget i den stil...
Avatar billede jakobdo Ekspert
22. januar 2006 - 15:59 #7
Hvad så med:
$str = $matches[2][0][0];
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