ELikkääs, miten toteuttaa sellainen että funkkari korvaa kaikki hymiöt muualta viestistä kuin koodi-tageista? Eli kaikkialla muualla korvattais hymiöt normaalisti paitsi kooditagien sisällä. Onnistuuko yhdellä tai muutamalla säännöllisellä lausekkeella?
Eiks se olis vaik niin, että sulla olis joku vipumuuttuja ($koodissa) ja sit sä aina säädät sen päälle, kun mennään kooditagiin ja pois, kun poistutaan siitä. Sit jos vastaan tulee hymiö, niin katot vaan, että missä asennossa vipu on. Jos se on päällä, niin ei korvata ja toisinpäin. :-o
Mutku korvaan kooditagit näin:
$das = preg_replace("/\[code\](.*?)\[\/code\]/is", "<div class=\"code\"><code><span class=\"codehiideri\">Koodia:</span>$1</code></div>", $das);
No köyhän miehen pikasysteemi:
$das_code = explode('code]', $das); for($i = 0, $maxi = count($das_code); $i < $maxi; $i += 2) { // korvaa hymiöt tässä pätkässä $das_code[$i]; } $das = implode('code]', $das);
Jos haluat prosessoida hymiöt ennen kooditageja.
Koodi luonnollisesti olettaa, että viesti on validoitu ensin, eli ettei siellä ole sulkevia koodipätkiä ennen alkavia tai väärin sijoiteltuja koodipätkiä, eikä sisäkkäisiä koodipätkiä (mitä ei pitäisi muutenkaan sallia, siinä ei ole järkeä).
Ai joo, jos tahdot olla kiltti HTML:n käytössä, niin <span class="codeheader">Koodia:</span> sijaan voisit heittää sen oikeaksi otsikoksi, eikä tarvitsisi sitten laittaa erillistä classia sille (div.code h4 {} esim. hoitaisi asian).
Vastaan nyt väärässä järjestyksessä: Merri, et oo varmaankaan nähny sitä koodilootaa joten siihen pitää tehä tollanen ihme viritys.
Ja sitten tuohon koodiin. Ei se ihan noin toiminu. Saatoin evottaakkin, mutta kuitenkin, kiitos ajatuksen löytämisestä. Nyt tiiän millä tavalla se kannattaa tehdä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.