kilogram Skrevet 12. november 2002 Del Skrevet 12. november 2002 Har eit lite problem, då eg har nokre .php-sider som eg vil ha inkludert, men ikkje på den vanlege måten. Det er PHP-kode i desse filene, og eg vil at denne koden skal verte kjørt, og så får eg utdataane frå dette. Dette skal i sin tur lagrast i ein variabel som tekst. Eg har tidlegare hatt problem med å få liknande ting til ved hjelp av output buffering, men eg har aldri fått OB til å virke skikkelig. Nokon som har nokre idear til korleis eg kan få gjort dette? Lenke til kommentar
christt Skrevet 14. november 2002 Del Skrevet 14. november 2002 Er dette den eneste måten du kan gjøre det på? Det skal nok være mulig å løse problemet på en grisete måte... :smile: Du har ikke mulighet for å forandre de php-filene? Lenke til kommentar
christt Skrevet 14. november 2002 Del Skrevet 14. november 2002 Jeg har tenkt litt mer på en løsning og jeg foreslår følgende: Du er nødt til å få filen parset, derfor må du kalle den slik: http://webhost/script.php Du kan med andre ord gjøre det slik: <?PHP $fd=fopen("http://webhost/script.php","r"); while ($line=fgets($fd,1000)) { $tekstendin.=$linje; } fclose ($fd); ?> Du kan også kjøre en test på hvem som kaller scriptet, og begrense det til at kun serveren får kalle det direkte. Lenke til kommentar
kilogram Skrevet 14. november 2002 Forfatter Del Skrevet 14. november 2002 christt, veldig godt forsøk, men det har ein "feil". Variablane i (t.d.) index.php må vere tilgjengelege i (t.d.) script.php. Det vil ikkje gå når ein køyrer ein fread, såvidt eg veit... Eg trur eigentlig eg er nødt til å finne ein mykje lurare løysing på problemet... :razz: Skal prøve å forklare det når eg har fått det til... :wink: Lenke til kommentar
christt Skrevet 15. november 2002 Del Skrevet 15. november 2002 Ser ut som om du trenger å modifisere litt kode her... :wink: Lenke til kommentar
alexholm Skrevet 16. november 2002 Del Skrevet 16. november 2002 Quote: Den 2002-11-12 10:44, skrev kilogram:Har eit lite problem, då eg har nokre .php-sider som eg vil ha inkludert, men ikkje på den vanlege måten. Det er PHP-kode i desse filene, og eg vil at denne koden skal verte kjørt, og så får eg utdataane frå dette. Dette skal i sin tur lagrast i ein variabel som tekst.Eg har tidlegare hatt problem med å få liknande ting til ved hjelp av output buffering, men eg har aldri fått OB til å virke skikkelig. Nokon som har nokre idear til korleis eg kan få gjort dette? Jeg har for ikke lenge siden (før harddisken min fikk noen stygge bad sectors tull ball og mista alt, men det er en annen historie) laget det du snakker om. Men brukte output buffering. Jeg leste inn en php fil med file() og kjørte noe implode av dette for å sveise sammen linjene. Kjørte en eval på php koden inni output bufferingen, lagret resultatet i en variabel og avbrøt buffringa så ikke noe kom på skjerm. Husker ikke helt koden men skal prøve å summere opp noe her: Jeg fant det jeg var ute etter på: http://www.php.net/manual/en/function.eval.php Eksempel fra en på den siden: --- benjcarson at digitaljunkies dot ca 17-Jun-2002 07:25 Really, the only thing you have to do if you want to parse a mixed html/php block string is: Code: ob_start();eval("?>" . $somestringwithcode . "<?php ");$output = ob_get_contents();ob_end_clean(); And that's all! No need to search for "<?php" or "?>" (except to check if the string is even worth eval'ing, for efficiency's sake), nor do you have to use addslashes. This method works for parsed files, database fields, user input, whatever, and it's only *4* lines long... No need to be excessively complex here... --- Jeg loaded f.eks inn fila slik Code: $somestringwithcode = implode('', file("file.php")); Men jeg opplevde det å bytte ut eval koden med denne Code: eval("?>" . $somestringwithcode); fungerte bedre for meg, men husker ikke, du får prøve både og :smile: Mvh Alexander L Holm [ Denne Melding var redigert av: alexholm på 2002-11-16 02:23 ] Lenke til kommentar
kilogram Skrevet 17. november 2002 Forfatter Del Skrevet 17. november 2002 Takk skal du ha Alex, no skal eg sjå på prosjektet igjen når eg får tid. Akkurat no er eg litt for oppteken med andre ting... :smile: Lenke til kommentar
alexholm Skrevet 23. mars 2003 Del Skrevet 23. mars 2003 Har laget en funksjon til noe jeg trengte og fant ut at det var kjekkest slik. Grunnen er at når man eval'er blanding av html og php kode, så blir også variabler, klasser, osv opprettet og bli en del av ditt eget program. Men hvis man eval'er dette inne en funksjon, så vil dette bare bli opprettet inni den og ditt eget program vil ikke bli "forurenset" :smile: function EvalFile($m_evalfile_path) { $m_evalfile_content = file_get_contents($m_evalfile_path); ob_start(); eval(' ?'.'>'.$m_evalfile_content.'<'.'?php '); $m_evalfile_result = ob_get_contents(); ob_end_clean(); return $m_evalfile_result; } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå