$_SESSION['kommentar'] ="<boks>$forfatter skrev d. $dato $tid: $tekst</boks> ";
det virker for så vidt fint, men problemet opstår, når $teskt som hentes fra databasen ikke indeholder <boks></boks>, så er $tekst tom når den puttes i $_SESSION['kommentar']. jeg har prøvet med if (preg_match("/([^<\/boks>]+)<\/boks> (.+)/", $tekst, $regs)) { $tekst = $regs[2]; } men lige lidt hjælper det. er der en som har et bud på hvad jeg kan gøre.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
glemte at skrive at i f.eks "<boks>noget tekst</boks> noget andet tekst" ønsker jeg at hente "noget andet tekst" ud og hvis der ikke er <boks></boks> i $tekst, skal alt det tekst som hentes fra databasen bruges i $_SESSION['kommentar']
ja jeg ønsker at fjerne <boks>tekst</boks> hvis det er der og jeg er ikke så meget inde i regulære udtryk, men preg_match("/([^<\/boks>]+)<\/boks> (.+)/", $tekst, $regs) virker fint hvis <boks>tekst</boks> er til stede, men ikke hvis det ikke er der. Hvad er det som i [^<\/boks>], bestemmer at det er et vilkårligt tegn, som ikke er et '<', '/', 'b', 'o', 'k', 's' eller et '>'". jeg har forstået det sådan at det er et punktum der bruges til at matche et hvilket som helst tegn, som jeg læser den jeg har lavet læser den fra starten af strengen (^) frem til og med </boks>. Det skal måske også siges at <boks>tekst</boks> altid vil stå som det første i strengen.
mange tak jacobdo, det virker. Til nielle, tak for den præcise forklaring på det, jeg havde misforstået brugen af [] Jeg vil godt give jer begge point, så bare smid et svar. tak til jer begge.
Jeg har opdaget, at hvis der er linieskift i det, som er mellem <boks> og </boks> så bliver det ikke fjernet. eks. <boks>her er noget tekst som ikke skal være her</boks> i dette tilfælde kommer det hele med. Det virker kun hvis det hele er skrevet ud i en køre uden linieskift. Er der en måde til at undgå dette?
det gjorde tricket. Det "s" du har indsat i slutningen, gør det at der matches space/mellemrum, incl. bl.a. tabs (\t) og newlines (\n) eller er det kun "\s" som gør dette?
s'et står for "single-line" og gør at eventuelle linjeskifttegn (\r og \n) i $tekst behandles som et hvert andet tegn. Uden s'et ville regexp-motoren forsøge at behandle det hele som et antal linjer og matche på hver af dem separat. Dette giver selvfølgeligt problemer hvis det der skal matches på ligger i hver sin linje af $tekst.
I \s står s'et for noget lidt andet - nemlig for space, eller rettere sagt white-space, hvilket er tegnene ' ', \t, \r og \n.
De to s'er har altså ikke direkte noget at gøre med hinanden.
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.