Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Osa tekstistä pois muuttujasta

karvinen [21.08.2008 22:29:07]

#

Muuttujassa $sivu on tietoa:

tekstiä tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä tekstiä
<sivunalku>
tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä
<sivunloppu>
tekstiä tekstiä tekstiä
tekstiä tekstiä tekstiä

Tuolta välistä pitäisi saada pala textiä pois.
Yritin:
$sivu = str_replace("<sivunalku>(.*?)<sivunloppu>", "", $sivu);

+100 muuta, mutta ei sitten millään...
Tuossa <sivunalku> ja <sivunloppu> tagien välissä oleva teksti vaihtelee, niin ei ymmärrä, mikähän jokerimerkki tuohon pitäisi saada, että korvais kaikki tuolta väliltä...

Lebe80 [21.08.2008 23:06:25]

#

Yksi tapa olisi etsiä missä kohtaa tuo <sivunalku> on, tallentaa muuttujaan $alkuosa teksti alusta tuohon kohtaan. Tämän jälkeen etsit <sivunlopun> ja tallennat $loppuosa-muuttujaan tekstin siitä kohdasta loppuun.

Nyt kun yhdistät $alkuosan ja $loppuosan niin olet poistanut välistä tekstin.

Tee tämmöiselle operaatiolle vaikka oma funktio, jos käytät tätä useammassa paikassa.

Tumettaja [21.08.2008 23:19:13]

#

preg_replace - funktiolla hoituu homma kätevästi yhdellä lauseella:

<?php

$sivu = "<sivunalku>tekstiä...</sivunloppu>";

echo preg_replace("/<sivunalku>(.*?)<\\/sivunloppu>/si", "", $sivu);

?>

Vastaus

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

Tietoa sivustosta