Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kooditagit ja hymiöt

Myanda [27.03.2007 20:57:46]

#

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?

tgunner [27.03.2007 21:02:41]

#

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

Myanda [27.03.2007 21:20:10]

#

Mutku korvaan kooditagit näin:

$das = preg_replace("/\[code\](.*?)\[\/code\]/is", "<div class=\"code\"><code><span class=\"codehiideri\">Koodia:</span>$1</code></div>", $das);

Merri [28.03.2007 16:58:37]

#

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).

Myanda [29.03.2007 20:18:55]

#

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ä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta