RIVINVAIHTO Ongelma

= )Ö

Missä lienee ongelma, kun en saa rivinvaihtoa "\n" suoritettua PHP:ssä (enkä edes "\r\n", "\r" tai "\t"). Tämän takia olen joutunut turvautumaan HTML:n tageihin, mutta olisi myös hauska, jos saisin ne myös PHP:ssä toimimaan.

Käsittääkseni virhe ei voi olla PHP:n versiossa, joka on nelosen uusin. Voisikohan virhe liittyä jotenin kirjastoihin?

Kiitos

12

1313

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Undefined

      Vaikea sanoa mitään ilman esimerkkikoodia.

      Tiedäthän sen, että tavalliset rivinvaihdot (\n) eivät ole HTML:ssä merkitseviä kuin PRE-elementin sisällä? Muulloin tulee käyttää BR-elementtiä rivinvaihtoon. Harvemmin WWW-sivuille on kyllä tarvetta rivinvaihtoja tunkeakaan.

      PHP:n versiota 4 ei kannata käyttää, jos siihen ei ole jotain erityisen pakottavaa syytä.

    • -----

      *Missä lienee ongelma, kun en saa rivinvaihtoa "\n" suoritettua PHP:ssä (enkä edes "\r\n", "\r" tai "\t"). Tämän takia olen joutunut turvautumaan HTML:n tageihin, mutta olisi myös hauska, jos saisin ne myös PHP:ssä toimimaan.*

      Kyl nuo toimii. Katsoppas sivun lähdekoosit siel komeilee rivinvaihto. Selainhan ei välitä tuommosista rivinvaihdoista mitään, ellei ole pre tagin sisäl.

      Esim lähdekoodissa
      1
      2
      3

      Selaimessa näät tuon
      123

      Jos lähdekoodissa näin
      1
      2
      3

      Selaimessa näät
      1
      2
      3

      Tutustuppas http://fi.php.net/manual/fi/function.nl2br.php se muuntaa nuo rivinvaihdot (x)HTML muotoon.

      Nuilla rivinvaihdoilla pystyt tekemään HTML koodista selkeää ja luettavaa mikäli haluaa. Käyttäen sisennyksiä lisäks.

      • = )Ö

        Toimii! :) - mutta kumpaako on suositeltavaa käyttää vai tuota nl2br-funktiota?

        *****
        Ja vielä yksi pieni juttu mistähän johtuu, että error tulee edelleen function eteen huolimatta @-merkistä?

        Example - Division by Zero:



        Thanks!


      • -----
        = )Ö kirjoitti:

        Toimii! :) - mutta kumpaako on suositeltavaa käyttää vai tuota nl2br-funktiota?

        *****
        Ja vielä yksi pieni juttu mistähän johtuu, että error tulee edelleen function eteen huolimatta @-merkistä?

        Example - Division by Zero:



        Thanks!

        *mutta kumpaako on suositeltavaa käyttää vai tuota nl2br-funktiota?*

        Riippuu ihan käyttötarkoituksesta. Tuo pre esittää tekstin semmoisenaan joten käytetään yleensä koodiesimerkeissä jne.... Ei sivun varsinaisessa tekstissä.


        *Ja vielä yksi pieni juttu mistähän johtuu, että error tulee edelleen function eteen huolimatta @-merkistä?*

        Nollalla kun ei voi jakaa. Itselläni tuo @ piilottaa errorin tuossakin tapauksessa. Tosin testialustana PHP 5. Tuossa errorien piilottamisessa on omat vaaransa, joten ennemmin kannattaa vaik logittaa virheet kuin piilottaa ne kokonaan. Ei tartte kuin pikkuinen typö ja olet ongelman edessä.


      • -----
        ----- kirjoitti:

        *mutta kumpaako on suositeltavaa käyttää vai tuota nl2br-funktiota?*

        Riippuu ihan käyttötarkoituksesta. Tuo pre esittää tekstin semmoisenaan joten käytetään yleensä koodiesimerkeissä jne.... Ei sivun varsinaisessa tekstissä.


        *Ja vielä yksi pieni juttu mistähän johtuu, että error tulee edelleen function eteen huolimatta @-merkistä?*

        Nollalla kun ei voi jakaa. Itselläni tuo @ piilottaa errorin tuossakin tapauksessa. Tosin testialustana PHP 5. Tuossa errorien piilottamisessa on omat vaaransa, joten ennemmin kannattaa vaik logittaa virheet kuin piilottaa ne kokonaan. Ei tartte kuin pikkuinen typö ja olet ongelman edessä.

        Erroreist kannattaa vilkast http://fi.php.net/errorfunc siel on ihan ok erroreiden käsittelijä josta pienel muokkauksel saa ihan toimivan.


      • = )Ö
        ----- kirjoitti:

        Erroreist kannattaa vilkast http://fi.php.net/errorfunc siel on ihan ok erroreiden käsittelijä josta pienel muokkauksel saa ihan toimivan.

        Lukasin tota manuaali ja vaikuttaa todella mielenkiintoiselta. :) Itse on tarkoituksena koodailla nettisivu, joten tuo matsku näyttäisi tulevan todella tarpeeseen. Minkä kannattaisi sitten valita noista virhetasoista E_NOTICE, E_STRICT vai jokin muu?

        En tiedä ymmärsinkö oikein, mutta noi muutokset taidedaan tehdä PHP.ini tiedostoon muukaan lukien tuo erroreiden käsittelijää koskeva koodi?! Minkälaisia muutoksia muuten itse teit tuohon koodiin?

        Kiitos!


      • -----
        = )Ö kirjoitti:

        Lukasin tota manuaali ja vaikuttaa todella mielenkiintoiselta. :) Itse on tarkoituksena koodailla nettisivu, joten tuo matsku näyttäisi tulevan todella tarpeeseen. Minkä kannattaisi sitten valita noista virhetasoista E_NOTICE, E_STRICT vai jokin muu?

        En tiedä ymmärsinkö oikein, mutta noi muutokset taidedaan tehdä PHP.ini tiedostoon muukaan lukien tuo erroreiden käsittelijää koskeva koodi?! Minkälaisia muutoksia muuten itse teit tuohon koodiin?

        Kiitos!

        *Minkä kannattaisi sitten valita noista virhetasoista E_NOTICE, E_STRICT vai jokin muu?*

        Tämäkin on sellainen asia et käyttötarkoitus ja tottumus määrää. Scriptejä tehdessä kaikki errorit näkyviin E_ALL tai sitten kaikki errorit mutta noticet pois E_ALL & ~E_NOTICE, tällöin ei huomatuta alustamattomista muuttujista jne..., mutta tässä taas on omat vaaransa. Tuo E_STRICT on vasta PHP 5 juttuja.

        Samat asetukset voi olla silloinkin kun sivusto/scripti on julkaistu, kunhan virheet ei näy käyttäjälle liikaa tietoa. Tai sit voi laittaa scriptin alkuun ini_set('display_errors', 0); joka estää errorien näkymisen kävijälle tai .htaccess tiedostoon php_value display_errors off. Tosin onneksi nykyään oletuksenä display_errors = off mutta silti kumma hinku palvelimien pitäjillä muuttaa tuo on asentoon, vaik turvallisempa olisi, että käyttäjä sen itse muuttaisi niin halutessaan.




        *En tiedä ymmärsinkö oikein, mutta noi muutokset taidedaan tehdä PHP.ini tiedostoon muukaan lukien tuo erroreiden käsittelijää koskeva koodi?*


        Noita sivun alussa mainittuja pystyy muuttamaan ihan scriptistä käsin ja .htaccess tiedostosta, viestin alussa mainitul taval.

        php.ini ja httpd.conf tiedostoja ei pysty itse muokkaamaan mikäli et ole palvelimen ylläpitäjä. Tosin joissain on käyttäjäkohtasia php.ini tiedostoja jolloin pystyy muokkaamaan.

        Vilkases http://fi.php.net/manual/fi/ini.php niin näät mitä kaikkea PHP:n asetuksia pystyy säätämään vaik et ylläpitäjä olisikaan.

        Tuo erroreiden käsittelijä laitetaan joka sivun alkuun vaikkapa includella. Se on ihan normaali scriptin pätkä set_error_handler("userErrorHandler"); sanoo PHP:lle, että tuota userErrorHandler functiota käytetään oman error käsittelijän sijast.


        Tuos sivun alus oli kyl vähäsen turhahkoa asiaa joita ei tartte välttämättä säätää ellei halua saattaa sekoittaakkin. Joten vilkaseppas http://fi.php.net/manual/fi/function.set-error-handler.php siel on hieman toisenlainen ehkä selvempi esimerkki, mut ei niin käytännöllinen tuollaisenaan.



        *Minkälaisia muutoksia muuten itse teit tuohon koodiin?*

        Lähinnä ettei logita noticeja, ilmoittaa vakavista virheistä SMS viestillä emailin lisäksi, yrittää uudestaan muutaman kertaan tietokantaan ennenkuin ilmoittaa tietokantaongelmista sekä yrittää korjata automaattisesti tauluja jos vikaantuu, debuggaus ominaisuuden, sekä kertoo käyttäjälle pientä informaatiota virheestä. Noiden lisäks pientä pikkusäätöä. Aika pieniä muutoksia loppujenlopus.


      • = )Ö
        ----- kirjoitti:

        *Minkä kannattaisi sitten valita noista virhetasoista E_NOTICE, E_STRICT vai jokin muu?*

        Tämäkin on sellainen asia et käyttötarkoitus ja tottumus määrää. Scriptejä tehdessä kaikki errorit näkyviin E_ALL tai sitten kaikki errorit mutta noticet pois E_ALL & ~E_NOTICE, tällöin ei huomatuta alustamattomista muuttujista jne..., mutta tässä taas on omat vaaransa. Tuo E_STRICT on vasta PHP 5 juttuja.

        Samat asetukset voi olla silloinkin kun sivusto/scripti on julkaistu, kunhan virheet ei näy käyttäjälle liikaa tietoa. Tai sit voi laittaa scriptin alkuun ini_set('display_errors', 0); joka estää errorien näkymisen kävijälle tai .htaccess tiedostoon php_value display_errors off. Tosin onneksi nykyään oletuksenä display_errors = off mutta silti kumma hinku palvelimien pitäjillä muuttaa tuo on asentoon, vaik turvallisempa olisi, että käyttäjä sen itse muuttaisi niin halutessaan.




        *En tiedä ymmärsinkö oikein, mutta noi muutokset taidedaan tehdä PHP.ini tiedostoon muukaan lukien tuo erroreiden käsittelijää koskeva koodi?*


        Noita sivun alussa mainittuja pystyy muuttamaan ihan scriptistä käsin ja .htaccess tiedostosta, viestin alussa mainitul taval.

        php.ini ja httpd.conf tiedostoja ei pysty itse muokkaamaan mikäli et ole palvelimen ylläpitäjä. Tosin joissain on käyttäjäkohtasia php.ini tiedostoja jolloin pystyy muokkaamaan.

        Vilkases http://fi.php.net/manual/fi/ini.php niin näät mitä kaikkea PHP:n asetuksia pystyy säätämään vaik et ylläpitäjä olisikaan.

        Tuo erroreiden käsittelijä laitetaan joka sivun alkuun vaikkapa includella. Se on ihan normaali scriptin pätkä set_error_handler("userErrorHandler"); sanoo PHP:lle, että tuota userErrorHandler functiota käytetään oman error käsittelijän sijast.


        Tuos sivun alus oli kyl vähäsen turhahkoa asiaa joita ei tartte välttämättä säätää ellei halua saattaa sekoittaakkin. Joten vilkaseppas http://fi.php.net/manual/fi/function.set-error-handler.php siel on hieman toisenlainen ehkä selvempi esimerkki, mut ei niin käytännöllinen tuollaisenaan.



        *Minkälaisia muutoksia muuten itse teit tuohon koodiin?*

        Lähinnä ettei logita noticeja, ilmoittaa vakavista virheistä SMS viestillä emailin lisäksi, yrittää uudestaan muutaman kertaan tietokantaan ennenkuin ilmoittaa tietokantaongelmista sekä yrittää korjata automaattisesti tauluja jos vikaantuu, debuggaus ominaisuuden, sekä kertoo käyttäjälle pientä informaatiota virheestä. Noiden lisäks pientä pikkusäätöä. Aika pieniä muutoksia loppujenlopus.

        Eikö toi Debuggaus ominaisuus ja Error Handling ole sitten automaattisesti päällä PHP 5:ssa? Pärjääkö ilman noita ominaisuuksia? (Käyttö: websivun teko)


        "Tai sit voi laittaa scriptin alkuun ini_set('display_errors', 0); joka estää errorien näkymisen kävijälle tai .htaccess tiedostoon php_value display_errors off."

        Pääseekö tohon .htaccess tiedostoon edes textieditorilla käsiksi vai muutetaanko sitä vain noilla stripteillä? Onko noissa PHP.ini'ssä ja .htaccess'ssa periaatteessa samat tiedot eli ne toimii rinnan, kun voi saman asian hoitaa molempien tiedostojen kautta?!


      • -----
        = )Ö kirjoitti:

        Eikö toi Debuggaus ominaisuus ja Error Handling ole sitten automaattisesti päällä PHP 5:ssa? Pärjääkö ilman noita ominaisuuksia? (Käyttö: websivun teko)


        "Tai sit voi laittaa scriptin alkuun ini_set('display_errors', 0); joka estää errorien näkymisen kävijälle tai .htaccess tiedostoon php_value display_errors off."

        Pääseekö tohon .htaccess tiedostoon edes textieditorilla käsiksi vai muutetaanko sitä vain noilla stripteillä? Onko noissa PHP.ini'ssä ja .htaccess'ssa periaatteessa samat tiedot eli ne toimii rinnan, kun voi saman asian hoitaa molempien tiedostojen kautta?!

        *Eikö toi Debuggaus ominaisuus ja Error Handling ole sitten automaattisesti päällä PHP 5:ssa?*

        On (tai ei riippuu miten tän haluaa käsittää), mutta haluan käyttää omaa tekelettä tällöin pystyy itse päättää tarkalleen mitä haluaa.

        Debuggauksella tarkoitin, että kun kirjaantuu admin tunnuksilla sivuille niin halutessa saa virheet ja muuta tärkeellistä tietoa kuten tietokanta kyselyt näkyville. PHP:n omassa toteutuksessahan moinen ei onnistu.

        Tietenkin ini_set avulla vois määritellä adminille virheet näkyviin jne... Mutta mielestäni on helpompaa kun kaik on samassa paikkaa tällöin tarvittavat muutokset on helppo tehdä. Sekä ennenkaikkea tuota omaa tekemää erroreiden hallintaa voi käyttää suoraan sellaisenaan muissakin sivu projekteissa.


        Tottahan toki ilman noita hienouksia pärjää, kaikki riippuu mitä sinä vaadit. Aluksi voit käyttää vaikkapa sitä esimerkkiä melkein sellaisenaan mikä tallentaa ja mailaa virheet jos tarvetta niin lisäilet siihen pikkihiljaa ominaisuuksia mitä tarttet. Turhaa laittaa mitään ominaisuuksia mille ei itsellä ole mitään tarvetta.



        *Pääseekö tohon .htaccess tiedostoon edes textieditorilla käsiksi vai muutetaanko sitä vain noilla stripteillä?*

        Pääsee toki. Tuo nimi tuottaa joillekkin editoreille vaikeuksia tallentaessa. Esim muistiossa tiedoston nimeksi tallennusvaiheessa pitää laittaa ".htaccess" muutoin muistio saattaa tallentaa .htaccess.txt joka ei tietenkään toimi.

        Teet tuon tiedoston vaik muistiol ja laitat siihen halutut tiedot ja sitten vain siirrät sen normaalisti palvelimelle. Määrätyt asetukset koskevat sitten myös alikansioitakin.


        *Onko noissa PHP.ini'ssä ja .htaccess'ssa periaatteessa samat tiedot eli ne toimii rinnan, kun voi saman asian hoitaa molempien tiedostojen kautta?!*

        Periaatteessa kyl, php.ini'ssä määrätään oletusarvot tarvittaessa niitä voi muuttaa .htaccess'ssa. Tosin ei ihan kaikkia asetuksia, kuten palvelimen turvallisuuteen ja tehokkuuteen vaikuttavia. Ei mitään pelkoa et vahingossa niitä muuttaisit, koska se ei onnistu.


      • = )Ö
        ----- kirjoitti:

        *Eikö toi Debuggaus ominaisuus ja Error Handling ole sitten automaattisesti päällä PHP 5:ssa?*

        On (tai ei riippuu miten tän haluaa käsittää), mutta haluan käyttää omaa tekelettä tällöin pystyy itse päättää tarkalleen mitä haluaa.

        Debuggauksella tarkoitin, että kun kirjaantuu admin tunnuksilla sivuille niin halutessa saa virheet ja muuta tärkeellistä tietoa kuten tietokanta kyselyt näkyville. PHP:n omassa toteutuksessahan moinen ei onnistu.

        Tietenkin ini_set avulla vois määritellä adminille virheet näkyviin jne... Mutta mielestäni on helpompaa kun kaik on samassa paikkaa tällöin tarvittavat muutokset on helppo tehdä. Sekä ennenkaikkea tuota omaa tekemää erroreiden hallintaa voi käyttää suoraan sellaisenaan muissakin sivu projekteissa.


        Tottahan toki ilman noita hienouksia pärjää, kaikki riippuu mitä sinä vaadit. Aluksi voit käyttää vaikkapa sitä esimerkkiä melkein sellaisenaan mikä tallentaa ja mailaa virheet jos tarvetta niin lisäilet siihen pikkihiljaa ominaisuuksia mitä tarttet. Turhaa laittaa mitään ominaisuuksia mille ei itsellä ole mitään tarvetta.



        *Pääseekö tohon .htaccess tiedostoon edes textieditorilla käsiksi vai muutetaanko sitä vain noilla stripteillä?*

        Pääsee toki. Tuo nimi tuottaa joillekkin editoreille vaikeuksia tallentaessa. Esim muistiossa tiedoston nimeksi tallennusvaiheessa pitää laittaa ".htaccess" muutoin muistio saattaa tallentaa .htaccess.txt joka ei tietenkään toimi.

        Teet tuon tiedoston vaik muistiol ja laitat siihen halutut tiedot ja sitten vain siirrät sen normaalisti palvelimelle. Määrätyt asetukset koskevat sitten myös alikansioitakin.


        *Onko noissa PHP.ini'ssä ja .htaccess'ssa periaatteessa samat tiedot eli ne toimii rinnan, kun voi saman asian hoitaa molempien tiedostojen kautta?!*

        Periaatteessa kyl, php.ini'ssä määrätään oletusarvot tarvittaessa niitä voi muuttaa .htaccess'ssa. Tosin ei ihan kaikkia asetuksia, kuten palvelimen turvallisuuteen ja tehokkuuteen vaikuttavia. Ei mitään pelkoa et vahingossa niitä muuttaisit, koska se ei onnistu.

        "Tietenkin ini_set avulla vois määritellä adminille virheet näkyviin jne... Mutta mielestäni on helpompaa kun kaik on samassa paikkaa--"

        Täysin samaa mieltä! :) Kiitos kaikesta avusta!

        Ps: Onko muuten mahdollista nähdä se sun stripti? :P Olis kiva lukasta. Anyway, keep on rocking & have a nice Summer!


    • vaikean kautta

      Kun voi helpommallakin päästä elikkäs, itse juuri koitin ja rivinvaihdon voi tehdä muuntujaksi: $rivinvaihto = ""; echo "rivin $rivinvaihto vaihto"; Näkyisi HTML koodissa: " rivin vaihto " Lithi@ www.lithinkorneri.net

      • tuohon

        eikä siitä näemmä edes tarvitse tehdä muuntujaa, riittää ihan "" tekstin sisällä


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Jäätävä epävarmuus

      Mistä tää hirveä epävarmuus molemminpuolin johtuu? Pohjimmiltaan uskon, että molemmat tietää, että tunteita on. Vai onko
      Ikävä
      85
      1827
    2. Ainakin hän on elossa

      ehdin jo huolestua.
      Ikävä
      43
      1439
    3. Vanhemmalle naiselle

      Ihastuin sinuun kauan sitten. Luonteeseen, ulkonäköön ja iloisuuteen. Olen haaveillut sinusta sen jälkeen monet kerrat.
      Ikävä
      87
      1202
    4. Mitä hellittelynimiä

      Sinulla on kaivatustasi?
      Ikävä
      67
      1007
    5. Mitä meille oikein

      Tapahtuu vai tapahtuuko mitään?
      Ikävä
      59
      971
    6. Persut romahti Haapaveellä, kiitos Ilkka!

      Persut saivat historiallisen tappion haapaveellä! Kiitos Ilkka!
      Haapavesi
      44
      967
    7. Pitsaa selliiä

      Onko uudet pitsat hyviä, kannatteooko käyvä vai suosiollako pittää hilipasta sotkamoon
      Kuhmo
      20
      920
    8. Tiedätkö et olet

      Ärsyttävän hyvännäköinen.
      Ikävä
      35
      887
    9. Hyvää yötä, olen rakastunut suhun

      Sanon tämän kyllä vielä sulle henkilökohtaisestikin. 😘
      Ikävä
      47
      876
    10. Olet vain kiltimpi

      Ja rauhallisempi ja rakastavampi. Se vetoaa
      Ikävä
      37
      809
    Aihe