27. marts 2009 - 09:36
Der er
12 kommentarer og 1 løsning
RegExp - Fjerne alle forekomster af <? ?> i en string.
Hej experter. Hvordan kan jeg fjerne alle forekomster af <? ?> (samt det imellem) på en string. Jeg har et richtext felt, hvor brugerne har det med at copy/paste dokumenter fra deres word, og word bruger tilsyneladende <? ?> til et eller andet :| Mvh. Mikkel
Annonceindlæg tema
27. marts 2009 - 09:39
#1
preg_replace('/<\?.*?\?>/', '', $subject); - skulle kunne gøre det.
27. marts 2009 - 10:07
#2
Hvis vi snakker strengen som: '<? ?>', så bør du anvende str_replace()
27. marts 2009 - 10:12
#3
Han skriver "samt det imellem".
27. marts 2009 - 10:20
#5
<ole> Det kan gøres på en del måde. Formodentlig også med: $str = substr($str, strpos($str, "?>")+2); /mvh </bole>
27. marts 2009 - 10:24
#6
jensgram >> Nej, det er formodentlig XML-deklarationen, der driller:
http://www.w3.org/TR/REC-xml/#sec-prolog-dtd Visningen i Word er jo i det store hele bare en browser, så det er sikkert noget XHTML-snask ;o)
27. marts 2009 - 10:33
#7
olebole > Det troede jeg også var en art PI (men kan godt fornemme, at det måske ikke er tilfældet).
27. marts 2009 - 14:27
#8
viperine, takker - det ledte mig på rigtige spor.. fandt ud af at det ikke var <? ?> men <? />. Så fik opdateret koden til følgende: preg_replace('/<\?.*?\//', '', $content) men har så også udvidet til denne, da <o:p> og </o:p> også skulle fjernes, nogle der ved hvad disse tags er til? preg_replace('/<\?.*?\/>|<o:p>|<\/o:p>/', '', $content) Smid et svar viperine :) olebole > hvad jeg bare lige kan fortolke din funktion til, så vil den jo kun returnere teksten som kommer efter den første ?>, så en tekst såsom: Hej med <? dig ?>, har du det godt? <? evil_hack(); ?> ville blive til ", har du det godt? <? evil_hack(); ?>"
27. marts 2009 - 14:43
#9
Svar :)
27. marts 2009 - 15:00
#10
oleboles forslag er vist tiltænkt at fjerne XML-deklarationen (som ALTID er det første).
27. marts 2009 - 15:37
#11
jensgram > Men i dette tilfælde stod det midt ind i strengen, og var der flere gange :)
27. marts 2009 - 17:08
#12
Jep, jeg er med. Forsøgte blot at give mit bud på antagelsen bag oleboles løsning :) God weekend.
27. marts 2009 - 23:38
#13
jensgram >> og et helt korrekt bud ;o)
Vi tilbyder markedets bedste kurser inden for webudvikling