Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: [lainaa lahettaja=Tuomas]viesti[/lainaa]

Sivun loppuun

tuomas88 [28.01.2004 18:23:09]

#

Miten tuon saisi purettua muuttujiin? eli:

[lainaa lahettaja=Tuomas]viesti[lainaa]
$lahettaja=tuomas;

ym...

ajv [28.01.2004 18:50:58]

#

Tuosta saattaisi olla jotain hyötyä:
http://php.ohjelmointiputka.net/?parse_str

Antti Laaksonen [28.01.2004 19:31:27]

#

Haetko kenties tällaista koodia?

<?php

//lainaustagin aloitus
$talku = "[lainaa lahettaja=";
//lainaustagin lopetus
$tloppu = "[/lainaa]";

//käsiteltävä teksti
$teksti = "Tässä on ensin jotain muuta tekstiä. [lainaa lahettaja=Antti]Näin tämä toimii![/lainaa]";

//lähettäjänimen aloituskohta
$aloitus = strpos($teksti, $talku);
//lähettäjänimen lopetuskohta
$lopetus = strpos($teksti, "]", $lopetus);
//lähettäjänimi
$lahettaja = substr($teksti, $aloitus + strlen($talku), $lopetus - $aloitus - strlen($talku));

//viestin aloituskohta
$aloitus = $lopetus + 1;
//viestin lopetuskohta
$lopetus = strpos($teksti, $tloppu, $aloitus);
//viesti
$viesti = substr($teksti, $aloitus, $lopetus - $aloitus);

//tulostetaan lainattu teksti ja sen lähettäjä
echo "Lainattu teksti on <i>$viesti</i>, ja sen alkuperäinen lähettäjä on <i>$lahettaja</i>.";

?>

Lisää tietoa:
http://php.ohjelmointiputka.net/?strlen
http://php.ohjelmointiputka.net/?strpos
http://php.ohjelmointiputka.net/?substr

tuomas88 [29.01.2004 18:03:10]

#

juuri tuollaista! kiitos!

tuomas88 [30.01.2004 16:17:14]

#

joo elikkä toi ei toiminu, kun viestejä oli enemmän...
erroria pukkas.

vähän tutkiskeltuani väsäsin tämmösen:

$viesti = preg_replace("'\[lainaa lahettaja=(.+?)\](.*?)\[/lainaa\]'", "
<center>
<table align=center border=0 cellpadding=2 cellspacing=0 width=500 height=30>
<tr>
<td valign=top align=left width=100% bgcolor=whitesmoke style='border: 0px solid gray'>
<strong>Lainaa:</strong> $1
<td>
</tr>
<tr>
<td valign=top align=center width=100% bgcolor=white style='border: 1px solid gray'>
<font color=gray>$2</font>
<td>
</tr>
</table>
</center>", $viesti);

mutta mites ton sais toimiin niin, että kun olis vaikka noin kaks lainausta päällekkäin, se osais laittaa ne oikein??

tätä tarkotan:

[lainaa lahettaja=Tuomas]

[lainaa lahettaja=Tuomas]
onko se ny niin hauskaa?!
[/lainaa]

Todellaki!
[/lainaa]

folio [30.01.2004 16:24:14]

#

Itse olen käyttänyt seuraavanlaista koodia, jonka suoritusnopeudesta voi sitten olla montaa eri mieltä.

$quoted_re = "/(<br \/>)*\[quote=(.*?)\](<br \/>)*(.*?)(<br \/>)*\[\/quote\](<br \/>)*/is";
$quoted_co = "<div class=\"quote_box\">kirjoitti \\2:</div><div class=\"quote_text\">\\4</div>";

while( preg_match($quoted_re, $input) ) $input = preg_replace($quoted_re, $quoted_co, $input);

tuomas88 [30.01.2004 22:41:34]

#

mitenköhän on täällä ohjelmointiputkassa tuo suoritettu?

Antti Laaksonen [30.01.2004 23:48:53]

#

Tällä keskustelualueella tilanne on helpompi, koska lainaustagin yhteydessä ei ole kirjoittajan nimeä. Siksi HTML-muotoon muuttaminen onnistuu suoraan str_replace-funktiolla.

tuomas88 [31.01.2004 11:54:55]

#

joo taidan mäkin suosiolla siirtyä tohon str_replace:seen.

Tarttis vielä jonkullaisen javascriptin, joka tarkistais, löytyykö [lainaa]:lle aina pari [/lainaa].

Iskee nimittäin aika pahasti sivun taulukkorakenteen rikki, jos jompikumpi puuttuu.

tsuriga [31.01.2004 12:03:36]

#

voi siihen käyttää php:täki, lasket vaa muuttujiin molempien tagien määrän ja vertailet.

stere [31.01.2004 12:35:40]

#

:o te nerot.

tuomas88 [31.01.2004 15:22:34]

#

lainaus:

:o te nerot.

äläs nyt XD


Sivun alkuun

Vastaus

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

Tietoa sivustosta