Avatar billede cyberdude Nybegynder
21. januar 2006 - 20:52 Der er 7 kommentarer og
1 løsning

Hvis en streng indeholder [link]www.noget.dk,_top,noget[link]

Hejsa

Forsøger at lave noget test på om en streng indeholder en bestemt værdi

Kode

$str="noget tekst [link]www.minside.dk,_top,link tekst[/link] noget mere tekst";

Forsøger at anvende preg_match() funktionen, men er ikke helt sikker på det er den jeg skal have fat i...

Det jeg vil undersøge er om der i variablen $str findes
[link] x [/link]

ALT tekst der står mellem de 2 tags er p.t. irelevant
Avatar billede nielle Nybegynder
21. januar 2006 - 21:05 #1
if (preg_match("#\[link\].*\[/link\]#i", $str))
    echo "Yes!";
else
    echo "Nada...";
Avatar billede cronaldo Nybegynder
21. januar 2006 - 22:20 #2
if (preg_match("#\[link\].*\[/link\]#i", $str)){
    echo "Yes!";
} else {
    echo "Nada...";
}

- Endnu en gang :)
Men ja ? Jeg vil også sige den regular expression skal skrives på den måde - jeg er totalt ny i regular expressions, men dén vil jeg sige jeg er ret enig i B)
Avatar billede nielle Nybegynder
21. januar 2006 - 22:49 #3
Nej, tuborgparentesre er ikke nødvendige hvis der kun er een linje:

if (preg_match("#\[link\].*\[/link\]#i", $str))
{
    echo "Yes!";
    echo "Men hvis der er mere end 1 linje skal de selvf. være der :^)"
}
else
    echo "Nada...";  // Nej, her er der jo kun en linje - derfor ingen tuborg.
Avatar billede cyberdude Nybegynder
22. januar 2006 - 12:23 #4
hmm
Jeg får ikke helt det ud af min streng som jeg forventer...

$tekst = "Noget FED tekst<br> [link]www.minside.dk/pages/vis/5/1/5,_top,Logind her[/link] <br>noget mere tekst<br> og noget mere tekst";
$tekst = tagster_format($tekst);

function tagster_format($str, $target="_blank", $css_class="", $fixlongword = 0) {
$str = tagster_link($str);
return $str;
}

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

Outputtet bliver som det her :
<a href="print_r(Array[0" target="print_r(Array[0">print_r(Array[0]www.minside.dk/pages/vis/5/1/5,_top,Logind her</a>

nogen der kan se hvad der går galt... ??
Avatar billede cyberdude Nybegynder
22. januar 2006 - 12:26 #5
skrive fejjl... der ER ) efter print_r[1][0] osv...
Avatar billede nielle Nybegynder
22. januar 2006 - 18:55 #6
Jeg er ikke lige klar over hvad {}-parenteserne gør i din regex. Desuden mangler du starten og slutningen - i mit eksempel angivet ved #-tegnet (mange andre steder ser man et /-tegn anvendt i stedet):

$regEx='#\[link\](.*),(.*),(.*)\[/link\]#Uis';
Avatar billede cyberdude Nybegynder
26. januar 2006 - 15:23 #7
nielle -> Smid et svar, har fået dette her til at funge...
Avatar billede nielle Nybegynder
26. januar 2006 - 17:34 #8
Svar :^)
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