Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Muuttujan lopusta pois / (PHP)

karvinen [22.11.2007 22:31:47]

#

Muuttujassa $osoite on osoite esim:

https://www.ohjelmointiputka.net
https://www.ohjelmointiputka.net/
https://www.ohjelmointiputka.net/ohjelmat.php

Pitäisi saada niin että tarkistaa, onko viimeinen merkki / ja jos on, niin sitten poistaa tuon / merkin.

Eli pitäisi ilmeisesti laskea jotenkin, montako merkkiä on muuttujassa ja sen jälkeen tarkistaa onko $osoite[9] merkki ja poistaa jos on.

Ideoita?

Heh
Keksikin hyvän konstin, pilkun n***** koodarit silmät kiinni tulee kauheeta purkkaa...

$osoiteet = $osoiteet . '///';
$osoiteet = preg_replace("/\/\/\//", "", $osoiteet);
$osoiteet = preg_replace("/\/\/\/\//", "", $osoiteet);

Lisäsin tuonne loppuun kolme /// merkkä ja seuraavaksi tarkistin, jos on kolme tai neljä / merkkiä peräkkäin, niin poistaa ne.

Yksinkertainen ja toimiva tapa, mutta ei varmaan paras...

Kun ei osaa, niin pitää säveltää.

Antti Laaksonen [22.11.2007 22:43:21]

#

Yksi helppo tapa on käyttää substr-funktiota:

if (substr($osoite, -1) == "/") $osoite = substr($osoite, 0, -1);

TsaTsaTsaa [22.11.2007 22:45:09]

#

if ($osoite[strlen($osoite)-1] == "/")
{
   $osoite = substr($osoite, 0, strlen($osoite)-1);
}

EDIT: JA hidas ku mikä

ajv [22.11.2007 23:32:19]

#

Kännyllä selailen ja en jaksa tarkistaa, mutta eikös trim():lle saanut annettua myös toisena parametrina trimmattavat merkit?

TsaTsaTsaa [23.11.2007 11:31:40]

#

ajv kirjoitti:

Kännyllä selailen ja en jaksa tarkistaa, mutta eikös trim():lle saanut annettua myös toisena parametrina trimmattavat merkit?

Näyttää saavan. Ja tähän ongelmaan kannattanee käyttää rtrim($osoite, "/" ):miä jos vaikka osoite sattuu olemaan "/home/miess/index.html/" niin ei lähde alkumerkki.

Vastaus

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

Tietoa sivustosta