Avatar billede krab Praktikant
26. september 2006 - 13:58 Der er 20 kommentarer og
1 løsning

Fjerne tekst mm.

Hej ..

Er der nogle der kan hjælpe mig.. Jeg er ved at kigge lidt på nogle Reg.Exp  Og håber nogle kan hjælpe mig..

Jeg skal med denne kode fjerne ALT omkring stående "Hej med dig" .. Så der i variablen $val kun står "Hej med dig" tilbage..

Nogle der kan hjælpe?? Har selv forsøgt lidt, men helt til grin! :)

Kode:

$val = '<table style="width:300px;"><tr><td><a href="">Hej med dig</a></tr></td></table>';

$val = preg_replace("/^<*.>$/","",$val);

echo $val;
Avatar billede roenving Novice
26. september 2006 - 14:12 #1
-- gør den global og søg efter '>':

$val = preg_replace("/^<[^>]*?>$/g","",$val);
Avatar billede krab Praktikant
26. september 2006 - 14:21 #2
Hvad vil det lige sige at gøre den global?? ..

Jeg får fejlen: Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in

Peter
Avatar billede roenving Novice
26. september 2006 - 14:27 #3
Du skal nok lige vente indtil der er en php'er, der kender regExps, sm kommer forbi, for jeg kender ikke mærkværdigheder omkring phps implementering, men du kan da prøve at fjerne g'et !-)
Avatar billede Slettet bruger
26. september 2006 - 14:30 #4
Hvis der kun skal stå "hej med dig", kan du jo sige $val = "hej med dig".. Vil du prøve at uddybe det lidt?

Hvis du vil fjerne al kode kan du evt. bruge htmlentities() eller strip_tags().
Avatar billede Slettet bruger
26. september 2006 - 14:35 #5
Det ser meget ud som om du leder efter http://dk2.php.net/strip_tags
Avatar billede krab Praktikant
26. september 2006 - 14:41 #6
//wicez
Det er jeg godt klar over :)

Jeg skal bare gerne vide hvordan det gøres, da jeg har mange forskældige udtræt hvori der er <table> "Aldrig ens".... mm.
Avatar billede Slettet bruger
26. september 2006 - 15:04 #7
Jeg forstår ikke hvad du mener, men den sikreste måde er nok strip_tags eller htmlentities. Ellers kommer du ud for problemer hvis tags ikke er afsluttede korrekt osv.
Avatar billede krab Praktikant
26. september 2006 - 15:05 #8
Hummm.. Kan du give mig et ex. på hvordan det kan laves med disse funktioner?
Avatar billede Slettet bruger
26. september 2006 - 15:37 #9
Yes. Jeg er lige på vej ud af døren, men jeg kan da lige skrive igen lidt senere i aften :)
Avatar billede Slettet bruger
26. september 2006 - 20:11 #10
Jeg har lige lavet nogle eksempler:

<?php
$tekst = "Hej <b>med</b> dig, <a min</a> ven"; // Læg mærke til, at det sidste tag ikke er lukket korrekt
echo $tekst ."<br>"; //Hej <b>med</b> dig, <a min</a> ven
echo htmlentities($tekst) . "<br>"; //Hej &lt;b&gt;med&lt;/b&gt; dig, &lt;a min&lt;/a&gt; ven
echo strip_tags($tekst) . "<br>"; //Hej med dig,
?>

Jeg vil helst bruge htmlentities.. Så får du altid udskrevet præcis det, der er skrevet i dit tekstfelt.

Som du ser, vil strip_tags gå galt når der ikke er skrevet korrekte tags. Dette er godt nok logisk, men hvis folk vil skrive matematiske formler f.eks., vil dette også gå galt:

x < 1 


Jeg håber det var dækkende.
Avatar billede krab Praktikant
26. september 2006 - 21:48 #11
Det er helt perfekt... Det løste mit problem..!! Mange tak.!! Må gerne smide et svar ..! .

Har lige et spørgsmål mere, ved ikke om jeg ska stille et nyt SPM eller om du måske kan hjælpe mig..!!

Hvis jeg har fx. en variabel.. "HejMedDig" ..! Hvordan kan jeg på en eller anden måde Splitte på det store bogstav =? hvis du forstår?..
ps. det er ikke en fast variabel .. kunne ligeså godt have heddet .: "DetGårPerfekt"

P
Avatar billede Slettet bruger
26. september 2006 - 22:44 #12
Jeg forstår godt dit spørgsmål, og jeg har, for at det ikke skal være løgn, selv overvejet det forleden dag.

Kan strengen indeholde andet end små og store bogstaver?
Avatar billede krab Praktikant
26. september 2006 - 22:48 #13
Nej det kan den ikke,. Vil altid stå således.. :) Lidt nogle underlige spørgsmål jeg kommer I KNOW ..! .. Tror man kan gøre det med noget RegExp.. Men er som sagt meget NOOB på det område, dsv. for sys fame det er smart .., Hvis ikke man lige kender de langt smartere PHP funktioner ;)
Avatar billede nielle Nybegynder
26. september 2006 - 22:56 #14
Måske sådan her?

$variabel = "HejMedDig";
$variabelArr = preg_split("/(?=[A-ZÆØÅ])/", $variabel);
Avatar billede Slettet bruger
26. september 2006 - 22:58 #15
Ja du kan lave en

$arrayStrings = preg_split("/([A-ZÆØÅ][a-zæøå]*)/", $text);
Avatar billede Slettet bruger
26. september 2006 - 22:59 #16
Jeg smider lige svaret her i mellemtiden :)

Din ?=, nielle. - Hvad gør den? :)
Avatar billede nielle Nybegynder
26. september 2006 - 23:03 #17
?= er "zero-width positive lookahead"

http://www.regular-expressions.info/lookaround.html

Kort fortalt vil (?=[A-ZÆØÅ]) matche alt som efterfølges af A-Z, Æ, Ø, eller Å.
Avatar billede Slettet bruger
26. september 2006 - 23:26 #18
Så vil din vel ikke matche den sidste del af strengen?
Avatar billede nielle Nybegynder
26. september 2006 - 23:29 #19
Korrekt. Eftersom slutningen af strengen ikke efterfølges af noget, efterfølges det selvfølgeligt heller ikke at et stort bogstav. :^)
Avatar billede Slettet bruger
27. september 2006 - 09:46 #20
Okay :) Det ser interessant ud med "zero-width positive lookahead". Jeg er aldrig stødt på det før ;o)
Avatar billede Slettet bruger
10. oktober 2006 - 22:55 #21
Tak for points :)
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
Kurser inden for grundlæggende programmering

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