Antakaa esimerkki tai jotain että miten saa tietää stringistä sisältääkö se määrätyn stringin? Siis miten koodataan että
if "abcdefg" sisältää "a" then jotain tapahtuu
Hoh-hoijakkaa. Luepa putkan opas ja PHP-manuska.
<?php if(substr_count("abcdef", "a") > 0){ 'ACTION! } ?>
EDIT: Aukinainen tagi
Ei ole putkan omaa hakemistoakaan vähään aikaan mainostettu:
https://www.ohjelmointiputka.net/hak/?kieli=PHP&alue=Merkkijonot
Löytyy varmasti useitakin vaihtoehtoja.
ok kiitti katellaan näillä..
Turhaa Juice kirjoittaa noin pitkää koodia kun helpommallakin pääsee:
Wizard kirjoitti:
Jos nyt oikeen tarkkoja ollaan, niin tuo ei toimi 100-prosenttisesti, sillä strstr() sattaa palauttaa nollan. Varma tapa on verrata palauttaako funktio totuusarvon:
Noh, jos halutaan pilkkua nussia, niin:
...joka sitten jo mietiskelee myös nollan olemassaoloa kuten pitääkin.
Mutta toimii yhtä lailla. Merkki sinne tai tänne.
Wizard kirjoitti:
Noh, jos halutaan pilkkua nussia, niin:
...joka sitten jo mietiskelee myös nollan olemassaoloa kuten pitääkin.
Niinno jos sitä atomia lähdetään halkomaan, niin aluksihan moitit Juicea pitkästä koodista, mutta jos nyt lasketaan tuolla if-lauseen sisällä olevat merkit, niin minun ja juicen koodissa niitä on 21 ja sinulla 24, että mitä nyt turhaan noin pitkästi, kun helpommallakin pääsee :)
T.M. kirjoitti:
strpos() on nopeampi ^_^
Ho? Ei mitään print:iä tueta. ^^
Ja mikä toi !== on? Eiks pitäis olla !=
Meitsi kirjoitti:
Ja mikä toi !== on? Eiks pitäis olla !=
Tuo '!==' ottaa huomioon myös muuttujatyypin, joka tässä tapauksessa on erittäin oleellista, koska strpos() voi palauttaa myös nollan ja nolla !== false
siis esim.
litra kirjoitti:
<?php
if(strpos("abcdef0", "a")){
echo "löytyi";
}
?>
Olisit edes kokeillut, ennen kuin optimoit :D Tuohan nyt ei ainakaan toimi :P
Tulkille false ja nolla ovat siis sama asia, joten siksi !==. Litra ei se optimointi ole kirjaimien vähentelyä.
hmm..mielestäni on vain loogisempaa esittää ehto "jos löytyy" kuin "jos löytyy on eri kuin false tai nolla"..eikö se ole optimaalisempaa?
litra kirjoitti:
hmm..mielestäni on vain loogisempaa esittää ehto "jos löytyy" kuin "jos löytyy on eri kuin false tai nolla"..eikö se ole optimaalisempaa?
Voipi olla, mutta tässä tapauksessa
strpos("abcdef0", "a")
palauttaa nollan, mikä tarkoittaa, että kirjain 'a' löytyy merkkijonon alusta. Jos kirjainta ei löydy, funktio plauttaa false.
Eli scriptin pitäisi tulostaa "Löytyi", mutta eipähän se tulostakkaan, koska if ajattelee nollan epätodeksi:
if(0){
echo "Löytyi"
}
Aihe on jo aika vanha, joten et voi enää vastata siihen.