Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Muuttujasta pois turhat välilyonnit

karvinen [10.04.2005 20:09:00]

#

Muuttujassa on tekstiä... Pitäisi saada turhat välilyönnit otettua pois.

Eli jos on kaksi tai enemmän välilyöntejä, muutetaan yhdeksi.

Yritin $sivu = str_replace(" ", " ", $sivu);

Mutta ei toiminut haluammallani tavalla.

Metabolix [10.04.2005 20:17:39]

#

Säännöllisellä lausekkeella:

// Korvataan 2 tai useampi väli yhdellä välillä
preg_replace("/  +/", " ", $sivu);

Lue toki mainio opas.

karvinen [10.04.2005 20:29:42]

#

Kiitoksia, miten saa vielä postettua entterin painallukset(lue rivinvaihdot)ja tab nappulan naputukset.

Metabolix [10.04.2005 20:37:53]

#

$sivu = preg_replace("/\t/", " ", $sivu); // Tab
$sivu = preg_replace("/\r/", " ", $sivu); // Yhdenlainen rivinvaihto
$sivu = preg_replace("/\n/", " ", $sivu); // Toisenlainen rivinvaihto
$sivu = preg_replace("/  +/", " ", $sivu); // Välit

Päätät vain, mitä laitat tilalle. Tuossa on siis kaikissa korvaavana väli.

ajv [10.04.2005 21:06:40]

#

Metabolixin esimerkki oli havainnollinen, mutta nuo kaikki voi hoitaa myös samassa lauseessa:

$sivu = preg_replace("/(\n|\r|\t|  +)/", " ", $sivu);

Metabolix [10.04.2005 21:39:45]

#

ajv:n esimerkissä taas tulee vastaan se, että esimerkiksi rivi "\t\r\n" (oikeassa muodossa) sisältää käsittelyn jälkeen kolme peräkkäistä väliä. Siksi ainakin välilyönnit pitää karsia erikseen (tai ehkä niille voi väsätä jonkin kiinnostavan ehdon).

ajv [10.04.2005 22:04:00]

#

Ahaa, niinpä tuleekin. Enpä ajatellut noin tarkasti. Ehkäpä yksinkertaisinta on tosiaan parsia välilöynnit erikseen. Toinen vaihtoehto olisi käyttää

while(preg_match(pattern)) preg_replace(pattern," ")

Vastaus

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

Tietoa sivustosta