Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: file_get_contents = php ei toimi

Sivun loppuun

llr [12.03.2004 23:57:57]

#

      <?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ä

arcatan [13.03.2004 08:22:13]

#

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
?>

leftover [13.03.2004 11:51:52]

#

eval($valmis)?

llr [13.03.2004 17:54:33]

#

Hm, ei toiminut eval. Enkä tykkäisi tosta uudelleen tallennuksesta :& Eli mitään muuta keinoa saada ":)" merkit kuviksi? :/

tsuriga [13.03.2004 18:06:36]

#

Mite ois vaik et ne hymiöt olis eri tiedostos ku php(koodi)?

llr [13.03.2004 19:11:49]

#

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 :&

folio [13.03.2004 19:31:04]

#

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.

llr [13.03.2004 19:41:28]

#

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ää :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta