|
| Hent resultatet af php-fil ind i variabel Fra : Krabsen |
Dato : 09-09-10 10:02 |
|
Med
$tekstvariabel = file_get_contents('testfil.php');
bliver kildekoden af testfil.php lagt i variablen $tekstvariabel.
Hvis testfil.php indeholder en masse php-kode - hvordan får man så
_resultatet_ af testfil.php ind i $tekstvariabel?
Et svar kan naturligvis være at gøre det i testfil.php, så
print "etellerandet";
erstattes af
$tekstvariabel=$tekstvariabel."etellerandet";
Men det kræver, at man vedligeholder to varianter af testfil.php (fordi
den også skal bruges til sit oprindelige formål), og det vil jeg gerne
undgå.
| |
Henning (09-09-2010)
| Kommentar Fra : Henning |
Dato : 09-09-10 10:31 |
|
On 2010-09-09 11:01, Krabsen wrote:
> Med
>
> $tekstvariabel = file_get_contents('testfil.php');
>
> bliver kildekoden af testfil.php lagt i variablen $tekstvariabel.
>
> Hvis testfil.php indeholder en masse php-kode - hvordan får man så
> _resultatet_ af testfil.php ind i $tekstvariabel?
Det enmmeste er at hente den via webserveren:
$tekstvariabel = file_get_contents(' http://domain.dk/testfil.php');
- og så lige huske at checke for hvem der har adgang til filen
> Et svar kan naturligvis være at gøre det i testfil.php, så
> print "etellerandet";
>
> erstattes af
> $tekstvariabel=$tekstvariabel."etellerandet";
>
> Men det kræver, at man vedligeholder to varianter af testfil.php (fordi
> den også skal bruges til sit oprindelige formål), og det vil jeg gerne
> undgå.
Så er ovenstående vel den bedste løsning.
Vær lige opmærksom på om den php tillader at du åbner url'er med fopen,
eller virker det nemlig ikke.
/Henning
| |
Krabsen (09-09-2010)
| Kommentar Fra : Krabsen |
Dato : 09-09-10 13:26 |
|
Den 09-09-2010 11:31, Henning skrev:
> On 2010-09-09 11:01, Krabsen wrote:
>> Med
>>
>> $tekstvariabel = file_get_contents('testfil.php');
>>
>> bliver kildekoden af testfil.php lagt i variablen $tekstvariabel.
>>
>> Hvis testfil.php indeholder en masse php-kode - hvordan får man så
>> _resultatet_ af testfil.php ind i $tekstvariabel?
>
> Det nemmeste er at hente den via webserveren:
>
> $tekstvariabel = file_get_contents(' http://domain.dk/testfil.php');
Hm.. Ser desværre ikke ud til at virke - indholdet bliver stadig smidt
på skærmen i stedet for at ende i $tekstvariabel
> Vær lige opmærksom på om den php tillader at du åbner url'er med fopen,
> eller virker det nemlig ikke.
Den er checket..
| |
Bertel Lund Hansen (09-09-2010)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 09-09-10 10:51 |
|
Krabsen skrev:
> $tekstvariabel = file_get_contents('testfil.php');
> bliver kildekoden af testfil.php lagt i variablen $tekstvariabel.
> Hvis testfil.php indeholder en masse php-kode - hvordan får man så
> _resultatet_ af testfil.php ind i $tekstvariabel?
Jeg er usikker på hvad du mener. Er det rigtigt at du vil kunne
behandle både kildekoden samt filens resultat efter afvikling i
samme PHP-script?
Det kunne evt, klares ved at du lod testfil.php aflæse hvordan
den blev kaldt:
if ($call='normal') dothisandthat();
else $resultvariable='Blablabla...';
Så skal dit aflæseprogram altså dels hente kildekoden cirka som
Henning beskriver og så bagefter kalde testfil.php med
parameteren 'special' - eller hvordan du nu vil lave det.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Martin Larsen (09-09-2010)
| Kommentar Fra : Martin Larsen |
Dato : 09-09-10 11:03 |
|
Bertel Lund Hansen wrote:
> Jeg er usikker på hvad du mener. Er det rigtigt at du vil kunne
> behandle både kildekoden samt filens resultat efter afvikling i
> samme PHP-script?
Mon ikke han egentligt mener en include?
Hvis den inkluderede fil afslutter med en return, kan han hente værdien
ind med include-sætningen:
testfil.php:
$result = "hej verden";
return $result;
hovedprogram:
$tekstvariabel = include 'testfil.php';
echo $tekstvariabel;
Martin
| |
Krabsen (09-09-2010)
| Kommentar Fra : Krabsen |
Dato : 09-09-10 12:40 |
|
Den 09-09-2010 12:02, Martin Larsen skrev:
> Bertel Lund Hansen wrote:
>
>> Jeg er usikker på hvad du mener. Er det rigtigt at du vil kunne
>> behandle både kildekoden samt filens resultat efter afvikling i
>> samme PHP-script?
Nej, jeg ønsker som skrevet at få filens resultat ind i min variabel -
med file_get_contents får jeg kildekoden..
> Mon ikke han egentligt mener en include?
Jo, til det normale brug anvender jeg include. Og den inkluderede fil
smider så en masse dynamisk genereret html op på skærmen.
Nu vil jeg så gerne - i stedet for at få det smidt på skærm - have det
ind i en variabel, hvor det så kan genbruges (gemmes i tabel, skrives
til fil o.s.v.)
> Hvis den inkluderede fil afslutter med en return, kan han hente værdien
> ind med include-sætningen:
>
> testfil.php:
> $result = "hej verden";
> return $result;
>
> hovedprogram:
> $tekstvariabel = include 'testfil.php';
> echo $tekstvariabel;
problemet er så, at den inkluderede fil _ikke_ afslutter med en return.
| |
Henning (09-09-2010)
| Kommentar Fra : Henning |
Dato : 09-09-10 12:57 |
|
On 2010-09-09 13:40, Krabsen wrote:
> Den 09-09-2010 12:02, Martin Larsen skrev:
>> Bertel Lund Hansen wrote:
>>
>>> Jeg er usikker på hvad du mener. Er det rigtigt at du vil kunne
>>> behandle både kildekoden samt filens resultat efter afvikling i
>>> samme PHP-script?
>
> Nej, jeg ønsker som skrevet at få filens resultat ind i min variabel -
> med file_get_contents får jeg kildekoden..
>
>
>> Mon ikke han egentligt mener en include?
>
>
> Jo, til det normale brug anvender jeg include. Og den inkluderede fil
> smider så en masse dynamisk genereret html op på skærmen.
>
> Nu vil jeg så gerne - i stedet for at få det smidt på skærm - have det
> ind i en variabel, hvor det så kan genbruges (gemmes i tabel, skrives
> til fil o.s.v.)
Så brug den løsning jeg skrev om senere. Det er måske ikke en helt så
elegant løsning, men den vil løse dit problem.
Bruger i øvrigt selv lignende setup i forbindelse med overførsel af data
mellem forskellige servere
/Henning
| |
Krabsen (09-09-2010)
| Kommentar Fra : Krabsen |
Dato : 09-09-10 13:04 |
|
Den 09-09-2010 13:56, Henning skrev:
> On 2010-09-09 13:40, Krabsen wrote:
>> Den 09-09-2010 12:02, Martin Larsen skrev:
>>> Bertel Lund Hansen wrote:
>>>
>>>> Jeg er usikker på hvad du mener. Er det rigtigt at du vil kunne
>>>> behandle både kildekoden samt filens resultat efter afvikling i
>>>> samme PHP-script?
>>
>> Nej, jeg ønsker som skrevet at få filens resultat ind i min variabel -
>> med file_get_contents får jeg kildekoden..
>>
>>
>>> Mon ikke han egentligt mener en include?
>>
>> Jo, til det normale brug anvender jeg include. Og den inkluderede fil
>> smider så en masse dynamisk genereret html op på skærmen.
>>
>> Nu vil jeg så gerne - i stedet for at få det smidt på skærm - have det
>> ind i en variabel, hvor det så kan genbruges (gemmes i tabel, skrives
>> til fil o.s.v.)
>
> Så brug den løsning jeg skrev om senere. Det er måske ikke en helt så
> elegant løsning, men den vil løse dit problem.
Jeps - jeg havde set dit første indlæg, men nu faldt 10-øren.
Tilladelse til 'URL file-access' er naturligvis en udfordring, men det
må afprøves..
Jeg kan heller ikke lige gennemskue, om der bliver bøvl med Cookies, men
det burde kunne gå..
| |
Martin Larsen (09-09-2010)
| Kommentar Fra : Martin Larsen |
Dato : 09-09-10 13:22 |
|
Krabsen wrote:
> problemet er så, at den inkluderede fil _ikke_ afslutter med en return.
Så du echo'er en masse til skærmen og vil i stedet have det ind i en
variabel?
Det gør du sådan her....
testfil.php:
<?php
ob_start(); // Gemmner al skærmoutput i en buffer
<resten af filen>
return ob_get_clean(); // returnerer nu det du har skrevet til skærmen
?>
Og i hovedfilen:
$tekstvariabel = include 'testfil.php';
echo $tekstvariabel;
Du kan også gøre som Henning foreslår, dette er dog en kende mere
effektivt plus at det har nogle andre fordele, såsom at du har adgang
til query-strengen i include-filen osv.
Hilsen
Martin
| |
Martin Larsen (09-09-2010)
| Kommentar Fra : Martin Larsen |
Dato : 09-09-10 13:24 |
|
Martin Larsen wrote:
> Det gør du sådan her....
Jeg går ud fra at du har adgang til filen og således kan indsætte de to
linjer som vist.
| |
Krabsen (09-09-2010)
| Kommentar Fra : Krabsen |
Dato : 09-09-10 14:57 |
|
Den 09-09-2010 14:22, Martin Larsen skrev:
> Krabsen wrote:
>
>> problemet er så, at den inkluderede fil _ikke_ afslutter med en return.
>
> Så du echo'er en masse til skærmen og vil i stedet have det ind i en
> variabel?
>
> Det gør du sådan her....
>
> testfil.php:
> <?php
> ob_start(); // Gemmer al skærmoutput i en buffer
> <resten af filen>
> return ob_get_clean(); // returnerer nu det du har skrevet til skærmen
> ?>
>
> Og i hovedfilen:
>
> $tekstvariabel = include 'testfil.php';
> echo $tekstvariabel;
Det virker.. - jeg har dog forbedret det lidt ved at placere
ob_start();
og
ob_get_clean();
i hovedfilen - for så kan jeg udskifte include-filen dynamisk (hvilket
jeg har brug for - der er op til 20 af slagsen).
manne tak til alle hjælpere..
| |
Martin Larsen (09-09-2010)
| Kommentar Fra : Martin Larsen |
Dato : 09-09-10 15:01 |
|
Krabsen wrote:
> Det virker.. - jeg har dog forbedret det lidt ved at placere
> ob_start();
> ob_get_clean();
> i hovedfilen - for så kan jeg udskifte include-filen dynamisk (hvilket
> jeg har brug for - der er op til 20 af slagsen).
Ja, det er også en bedre løsning i det hele taget så du ikke skal ændre
i filerne. Og du behøver du heller ikke en return-sætning i include-filerne.
Godt at det virkede!
Martin
| |
|
|