<?php $valmis = file_get_contents($teksti); $valmis = str_replace(":)", "<img src=\"kuvat/smile.gif\">",$valmis); print "$valmis"; ?>
Elikkäs kuinka tästä vielä php toimiin? :) $valmis sisältää siis php:tä
Pelkästään tulostamalla PHP:ta tämä ei missään tapauksessa toimi. Yksi tapa voisi olla, että tallennat tuon väliaikaistiedostoon ja poistat sen. Tähän voi käyttää tmpfile-funktiota, jos joku keksii miten saa selville sen tiedostonnimen.
<?php // Never Tested :) $valmis = file_get_contents($teksti); $valmis = str_replace(":)", "<img src=\"kuvat/smile.gif\">",$valmis); // en tiedä miten saisi selville tmpfile():n nimen, joten // teemme itse väliaikaistiedoston // arvotaan satunnainen tiedoston nimi. $fname = md5(time() . rand(0, 1000)) . "tmp"; $temp = fopen($fname, "w"); // avataan tiedosto fwrite($temp, $valmis); // kirjoitetaan fclose($temp); // suljetaan tiedosto include($fname); // sisällytetään se unlink($fname); // poistetaan tiedosto ?>
eval($valmis)?
Hm, ei toiminut eval. Enkä tykkäisi tosta uudelleen tallennuksesta :& Eli mitään muuta keinoa saada ":)" merkit kuviksi? :/
Mite ois vaik et ne hymiöt olis eri tiedostos ku php(koodi)?
Mutta hymiö:itä sekä php:tä voi olla myös .txt tiedostossa, joka liitetään sivuun :/ Joten Str_Replacella ":)" merkit kuviksi, mutta sitten vielä Stringistä pitäisi php saada toimimaan :&
Ei millään pahalla mutta skriptisi ei ole erityisen hyvin suunniteltu mikäli ajaudut tuollaiseen tilanteesenn. No jokatapauksessa ainut keino tuon toteuttamiseen joka minulle tulee mieleen on output buffering -funktioiden käyttö.
Esimerkki callback-funktiosta (testaamatonta koodia)
<?php function callback($buffer) { $buffer = str_replace(':)', '<img src="kuvat/smile.gif">', $buffer); return $buffer; } ob_start('callback'); include('file.php'); ob_end_flush(); ?>
Ja jos tuo ei toimi niin avaa manuaali kohdasta ob_get_contents.
Ok, testaan. Tosta Evalvista vielä. Kokeilin kyllä sitä, mutta tulos "parse error, unexpected '<' " Ja stringi sisältää myös tableja.
EDIT:
Jeps kiitoksia paljon, pelittää :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.