18. januar 2008 - 18:31Der er
4 kommentarer og 1 løsning
Hjælp til PHP regex
Jeg har efter meget kamp få skrevet et regex der kan tage en streng og finde en kodestump formateret på denne måde: [syntax:faa3276bb4="actionscript"]var foo:String = "test";[/syntax:faa3276bb4]
og så konvertere den til: [code language="actionscript"]var foo:String = "test";[/code]
Min kode ser sådan her ud: <?php $text = '[syntax:faa3276bb4="actionscript"]var foo:String = "test";[/syntax:faa3276bb4]'; preg_match('/^(\[syntax\:[a-z0-9]{10}="([a-z]{3,12})"])(.+)\[\/syntax:[a-z0-9]{10}\]/i', $text, $matches); print '[code type="' . $matches[2] . '"]' . $matches[3] . '[/code]'; ?>
Så langt så godt, men hvis strengen indeholder flere kodestrumper, så virker mit regex ikke længere. Hvordan kan jeg konvertere en streng som: [syntax:faa3276bb4="actionscript"]var foo:String = "test";[/syntax:faa3276bb4] Her er så lidt tekst [syntax:ba9855sd51="php"]$foo = "test";[/syntax:ba9855sd51]
til: [code language="actionscript"]var foo:String = "test";[/code] Her er så lidt tekst [code language="php"]$foo = "test";[/code]
<? $text = 'Så langt så godt, men hvis strengen indeholder flere kodestrumper, så virker mit regex ikke længere. Hvordan kan jeg konvertere en streng som: [syntax:faa3276bb4="actionscript"]var foo:String = "test";[/syntax:faa3276bb4] Her er så lidt tekst [syntax:ba9855sd51="php"]
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.