Tältä se näyttää:
<?php //avataan tiedosto kirjoitustilassa $tt = fopen("testi2.txt", "w"); //kirjoitetaan tiedostoon kolme riviä; \n tarkoittaa rivinvaihtoa fwrite($tt, "Rivi 1 Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/int2000/8694/html/muotoilu.php on line 496 n"); fwrite($tt, "Rivi 2 Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/int2000/8694/html/muotoilu.php on line 496 n"); fwrite($tt, "Rivi 3"); //suljetaan tiedosto fclose($tt); ?>
Mutta sen pitäisi näyttää hieman erilaiselta, Kaikki Warning-alkuiset pitäisi olla tipotiessään. Kai? Mistäs johtuu, että tämä näyttää tältä?
P.S: Ei ole sitten ainut koodiesimerkki...
Johtunee bugisesta highlight_string()-funktiosta.
http://bugs.php.net/bug.php?id=25725
Tuolla neuvottiin käyttämään @highlight_string(), mutta jos nyt oikein käsitin, niin silloin nuo takakenot häviävät koodista.
Hmm käsitinkö oikein, tuo koodi:
- -
Löytyy ohjelmointiputkasta?
Täytynee jossain vaiheessa tehdä oma PHP-koodiväritys, koska tuo PHP:n highlight_string-funktio ei tunnu toimivan kunnollisesti. Jos itse tehty funktio ei toimi, sen voi ainakin korjata...
Käytä vaikka GeSHiä; se toimii hyvin, eikä sitten tarvitse tehdä omaa systeemiä.
Tekstin muotoilu näyttää bugittavan muutenkin:
https://www.ohjelmointiputka.net/keskustelu/9685-php-n-generoiman-linkin-avaaminen
lainaus:
Hmm käsitinkö oikein, tuo koodi:
- -
Löytyy ohjelmointiputkasta?
Joo se löytyy täältä ohjelmointiputkasta
Antti Laaksonen kirjoitti:
Täytynee jossain vaiheessa tehdä oma PHP-koodiväritys, koska tuo PHP:n highlight_string-funktio ei tunnu toimivan kunnollisesti. Jos itse tehty funktio ei toimi, sen voi ainakin korjata...
Vilkaisin funkkarin sivua php-manuaalista, eikä kommenteissa kukaan valitellut vastaavista ongelmista. Jospa se moka sittenkin on sinun koodissasi? Ehkäpä mysql:ään tallentuu jotain mitä ei pitäisi tallentua? Virheilmosta ainakin selviää mitä pitäisi etsiä: Ylimääräistä backslashia.
Edit: Jos sattumoisin löydät vian omasta koodistasi, ja se vika on hiton hyvin piilossa, kannattanee käydä heittämässä kommenttia tuonne manuaalin sivulle, niin osaavat muutkin sitten korjailla jos eteen sattuu.
Veikkaisin, että bugi-ilmoituksia ei hirveämmin julkaista tuolla funktion kommenteissa. Sen sijaan jos hakee bugs.php.comista, niin tuo ongelma tuntuu olevan hyvinkin yleinen, mutta kehittäjät eivät tunnusta sitä bugiksi. Eivätkä kyllä ainakaan ihan suoraan kerro myöskään missä on ongelma.
Olisin jo aikapäiviä sitten ruvennut etsimään koodistani virhettä kissojen ja koirien kanssa, jos ongelmia esiintyisi aina tietyissä koodinvärityksissä joka sivunlatauksella eikä vain satunnaisesti silloin tällöin. Koodeissani on toki usein jos jonkinmoisia virheitä, mutta ne harvemmin korjautuvat ja palautuvat itsestään. Tässä voisi olla kysymys virheellisestä muistiosoituksesta, mutta PHP:n omin keinoin moinen ei ole mahdollista.
PHP-sivuston bugiosiossa samanlaisia ongelmia tuntuu olevan kyllä yhdellä ja toisella. Koodinvärityksen merkillisyyksiä on kummasteltu saksalaisia keskustelualueita myöten.
http://bugs.php.net/bug.php?id=27901
http://bugs.php.net/bug.php?id=29693
http://bugs.php.net/bug.php?id=30971
Hupsan, unohtui koko bugs.php.net. Okei, myönnetään että vika on php:ssä. Oman funkkarin kirjoittaminen on perusteltua.
Aihe on jo aika vanha, joten et voi enää vastata siihen.