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.
Säännöllisellä lausekkeella:
// Korvataan 2 tai useampi väli yhdellä välillä preg_replace("/ +/", " ", $sivu);
Lue toki mainio opas.
Kiitoksia, miten saa vielä postettua entterin painallukset(lue rivinvaihdot)ja tab nappulan naputukset.
$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.
Metabolixin esimerkki oli havainnollinen, mutta nuo kaikki voi hoitaa myös samassa lauseessa:
$sivu = preg_replace("/(\n|\r|\t| +)/", " ", $sivu);
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).
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," ")
Aihe on jo aika vanha, joten et voi enää vastata siihen.