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
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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