Autor | Zpráva | ||
---|---|---|---|
Waclaw Profil * |
#1 · Zasláno: 10. 11. 2007, 23:57:11
Dobrý večer,
už delší dobu mě trápí problém s načítáním php kódu. Co jsem hledal, tak je tento problém častý, ale řešení jsem nikdy nenašel. Jde o to, že potřebuji získat kód lokalní stránky, ale už s provedeným php kódem. Takže př.: strana.php Petr má <?$x=3*4; echo $x;?> dětí! A já potřebuji ve stránce xx dostat už tento provedený kód do proměné. Zkoušel jsme file_get_contents, ale ten vrací neprovedený kód a přes http je zakázán. Mohli byste poradit nějaké řešení?..mockrát děkuji |
||
DJ Miky Profil |
#2 · Zasláno: 10. 11. 2007, 23:59:16
Měl by stačit prostý include.
|
||
Waclaw Profil * |
#3 · Zasláno: 11. 11. 2007, 00:07:56
DJ Miky
Mohl bys napsat jak? Nechápu, jak to nacpat do té proměné? |
||
vertigo4 Profil |
#4 · Zasláno: 11. 11. 2007, 00:28:11
<?
include "adresa/něco.php"; ?> |
||
Waclaw Profil * |
#5 · Zasláno: 11. 11. 2007, 00:30:57
vertigo4
? Kde je ten zapis do proměné? Ja nepotřebuji poslat na výstup obsah strana.php, nýbrž tento obsah potřebuji nacpat do proměné $xx a s ní dále pracovat. |
||
Alphard Profil |
#6 · Zasláno: 11. 11. 2007, 00:36:01
proměnné se přenáší, jednoduše
include "nejaky_vypocet.php"; $x *= 2; // zde máme $x a násobíme ji echo $x; // mělo by to vypsat 30 -------------------------- nejaky_vypocet.php: $x = 1 + 2 + 3 +4 +5; |
||
Waclaw Profil * |
#7 · Zasláno: 11. 11. 2007, 00:53:22
Alphard
Dík za snahu. Ale zkusím ještě jednou ten příklad: strana.php Petr má <?$x=3*4; echo $x;?> dětí! strana2.php $promena=funkce(strana.php); //zde nevím, jak načíst ten obsah, aby se provedlo php echo $promena; // vysledek by měl být Petr má 12 dětí! další práce s $promena... |
||
djlj Profil |
#8 · Zasláno: 11. 11. 2007, 00:55:55
file_get_contents?
|
||
Waclaw Profil * |
#9 · Zasláno: 11. 11. 2007, 00:57:40
djlj
Zkoušel jsem file_get_contents, ale ten vrací neprovedený kód a přes http je zakázán. |
||
Waclaw Profil * |
#10 · Zasláno: 11. 11. 2007, 00:59:43
Ještě mě napadlo, že přes file_get_contents dostanu neprovedený kód, který bych prohnal evalem, ale to se také nezdařilo.
|
||
vertigo4 Profil |
#11 · Zasláno: 11. 11. 2007, 01:59:05
moc tě nechápu... já bych dal :
$promena= include "strana.php"; a je to ne? a pak: echo $promena; |
||
nightfish Profil |
#12 · Zasláno: 11. 11. 2007, 09:45:06
moc tě nechápu... já bych dal :
$promena= include "strana.php"; a je to ne? a pak: ne panáčku, takhle to opravdu nefunguje |
||
Waclaw Profil * |
#13 · Zasláno: 11. 11. 2007, 10:22:30
Neříkejte, že nikdo z takových machrů, jako jsou tu, nezná odpověď?
|
||
Mastodont Profil |
#14 · Zasláno: 11. 11. 2007, 11:17:42
nightfish
Co podle tebe nefunguje? Vložení obsahu souboru do proměnné přes include? To samozřejmě funguje. |
||
Waclaw Profil * |
#15 · Zasláno: 11. 11. 2007, 11:28:33
Mastodont
Můžeš ukázat příklad?...jelikož include vrací 0 resp 1, podle toho zda se správně provedl. |
||
Waclaw Profil * |
#16 · Zasláno: 11. 11. 2007, 11:32:35
Mastodont
Možná nějak přes return, ale ja nemůžu sahat do těch includovaných souborů. |
||
Mastodont Profil |
#17 · Zasláno: 11. 11. 2007, 11:37:22
Waclaw
Příklad je přímo v manuálu. A ano, je to přes return. |
||
bukaj Profil |
#18 · Zasláno: 11. 11. 2007, 11:48:41 · Upravil/a: bukaj
Waclaw
K vyřešení tvého problému mě napadla tato fce:
Jediný problém je s exportem proměnných $__var a $__val. EDIT: Tak jsem to pochopil špatně... Potom tedy: function getPhpFile($file) { ob_start(); include $file; $content = ob_get_clean(); ob_end_clean(); return $content; } |
||
Casero Profil |
#19 · Zasláno: 11. 11. 2007, 12:38:27 · Upravil/a: Casero
Mastodont
Příklad je přímo v manuálu. A ano, je to přes return. Waclaw: Ano, tak to znám. Bohužel, jak jsem psal, nemužu sahat do těch souborů, abych jim přidával return. |
||
Waclaw Profil * |
#20 · Zasláno: 11. 11. 2007, 12:56:01
bukaj
Paráda. Musím říct, že jsi opravdový profik, když na tomto fóru nikdo jiný nezvládl vyřešit tento problém. Fakt respekt. |
||
Waclaw Profil * |
#21 · Zasláno: 11. 11. 2007, 13:48:45
Takže téma zamykám s hotovím řešením (trochu jsem ho upravil, aby byl lně funkční i v již spuštěném bufferování):
function getPhpFile($file) |
||
Časová prodleva: 16 let
|
0