Niin miten tämän saa toimimaan?
$teksti = str_replace("\","juu", $teksti);
Näinhän se ei toimi koska tuossa on tuo \"
$teksti = str_replace("\","juu", $teksti);
Näinhän se ei toimi koska tuossa on tuo \"
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 11
Vanhimmat
$teksti = str_replace("\\", "juu", $teksti);
koodi olisi näin:
$teksti = str_replace("\\\","juu", $teksti);
niin miten sen saa toimimaan
siis kaksi \\ viivaa on tarkoitus korvata tekstillä
>>koodi olisi näin:
$teksti = str_replace("\\\","juu", $teksti);
niin miten sen saa toimimaan
siis miksei tämä sitten toimi:
$teksti = str_replace("\\\","juu", $teksti);
Kaksi kenoviivaa merkitään \\\\ eikä \\\, sillä toisen kenoviivan perässä olevaa kenoviivaa ei tulkita erikoismerkiksi. Vastaavasti kolme kenoviivaa kirjoitettaisiin \\\\\\ jne.
Koodisi olisi siis:
$teksti = str_replace("\\\\","juu", $teksti);
Miks aina käytetään " merkkejä? vaikka ' merkit helpottaisivat huomattavasti ja oikein käytettynä koodi selkiytyisi.
Siis
$teksti = str_replace("\\\\","juu", $teksti);
$teksti = str_replace('\\',"juu", $teksti);
Noi koodit tekee täsmälleen saman asian, kumpa on selvempä?
Samoin HTML koodia tulostaessa kannattaa usein käyttää ' merkkejä tai EOF tapaa riippuen kumpa tarkoitukseen sopivampa.
" merkkejä kannattaa käyttää ainoostaan silloin kun tarvitaan kenoviivan erikoisominaisuutta tai halutaan tulostaa muuttujien sisältöä, tosin muuttujien kanssa usein aikasemmin mainitut tavat paremmat.
Myös ' merkkien käyttö tekee koodista nopeemman kuin " merkkien käyttö.
Voishan vielä selostaa ton EOF tavankin
echo
RAAKA STRING -> ""\\\"\"
quotetaan seuraavasti (mukaanluettuna quotet):
$stringini = "\"\"\\\\\\\"\\\"";
Helppoa kuin ABC. \ on escape character eli siis sitä seuraava merkki tulostetaan sellaisenaan jos se on määritelty erikoismerkiksi PHP-syntaksin kannalta; esim n tarkoittaa erikoismerkkinä rivivaihtoa joka saadaan aktivoimalla se escapella -> \n
Miks ihmeessä näin?
$stringini = "\"\"\\\\\\\"\\\"";
Eikä näin?
$stringini = '""\\\"\"';
"\n" tulostaa rivinvaidon
'\n' tulostaa \n
Varmaan edellinen demosi escapen käyttöä noiden tyylien hyvyys riippuu käyttökohteesta tietenkin, jokaisella tavalla on oma hyvyytensä, singlequotella et voi toimia jos sinulla on string jossa on tarvetta sekä escape-chareille että niiden vastineille mutta singlequotella on helpompi tuottaa luettavaa stringiä.
'Tämä on lainaus:\n "lainaus"'
ei toimi halutulla mutta
"Tämä on lainaus:\n \"lainaus\"" toimii.
Voihan se olla hyvinkin mahollista, et demosi vain niitten käyttöä. Tosin monessa oppaassa neuvoataan juuri tekemään noin, ja minkä kerran oppii niin vaikea sitä on enään myöhemmin muuttaa paremmaksi.
Oikeessa olet, että hyvyys riippuu käyttötarkoituksesta, lukaseppas vastaukseni sturvamiehelle, siinä pölötin hieman enempi näistä.
Käyttötarkoituksesta riippuen voi myös olla hyvä kirjoittaa tähän malliin.
'Tämä on lainaus:' ."\n".
' "lainaus"'
Mutta pitempiä tulosteita tehdessä alla oleva tapa on usein käyttökelpoisin, toimii rivinvaihdot ja tab painalluksetkin, hyvä jos haluaa tehdä tulosteestakin luettavaa koodipuolella, helpompaa kuin \n ja \t käyttäminen.