webForumDet fria alternativet

Inkludera PHP

PHP

17 svar · 388 visningar · startad av Gislaved.net

Medlem sedan juni 20001 521 inlägg
Frågan#1

Jag håller på att bygga om min sida med hjälp av PHP och MySQL, och jag lagrar info om varje sida i en databas. Men på vissa sidor vill jag kunna köra PHP-kod som jag har skrivit in i databasen. Ska jag skapa separata filer med PHP-kommandon i, eller finns det något sätt att köra PHP som ligger i databasen?

En annan fråga... hur "djupt" kan man använda include?

------------------
Gislaved.net - Ett roligare Internet!

Medlem sedan apr. 20003 971 inlägg
#2

Inte djupare än dina filer döljer sig på hårddisken.

MEN det finns en funktion som tolkar en sträng som PHP-kod. Kommer dock inte på namnet.

------------------
/mvh Swey
Programmera PHP

Medlem sedan juni 20001 521 inlägg
#3

När jag försöker spara PHP-koden till en vanlig fil så får jag hela tiden "Parse error" när jag försöker läsa den, trots att jag använder mig av enkla funktioner som echo och include.

Hur är det med minnet, Swey? Ska jag leta mer i manualen? ;)

------------------
Gislaved.net - Ett roligare Internet!

Medlem sedan juni 20001 521 inlägg
#4

Hmm... felet verkar uppstå när jag skriver till filen. Av någon anledning försöker Servern först tolka min kod och sedan skriva i resultatet i filen. Jag vill bara att det ska skrivas i som ren text utan att först köras.

Hur kommer man runt det?

------------------
Gislaved.net - Ett roligare Internet!

Medlem sedan apr. 20003 971 inlägg
#5

Med denna funktion behöver du inte slöa ned hårddisken. :)

Anledningen att den säger "Parse error" är troligen att du har glömt <? eller ?> på något ställe.

------------------
/mvh Swey
Programmera PHP

Medlem sedan juni 20001 521 inlägg
#6

Felet kan inte bero på att jag har glömt något i själva filen, den fungerar ju om jag skriver exakt samma sak och laddar upp den på ett annat ställe.

Jag antar att PHP läser av vad jag har skrivit in och försöker köra det först, resultatet skrivs in i filen. PHP-kommandona + texten sparas i en variabel först.

------------------
Gislaved.net - Ett roligare Internet!

Medlem sedan juni 20001 521 inlägg
#7

... tills jag kommer på vad felet är så kör jag med ett Perl-script istället. Men det verkar ju jobbigt att inte kunna skapa en ny PHP-fil med hjälp av PHP...

------------------
Gislaved.net - Ett roligare Internet!

Medlem sedan apr. 20003 971 inlägg
#8

Kan du visa din kod?

------------------
/mvh Swey
Programmera PHP

Medlem sedan juni 20001 521 inlägg
#9

Visst... först har jag ett vanligt formulär som postar informationen till samma script.

Så här ser koden ut som skriver in själva PHP-koden.
---
$target = "/home/g/gislaved/www/php/$id.php";
$fp = fopen("$target", "w");
fwrite($fp, $text);
fclose( $fp );
---

$text har jag fått från en TEXTAREA.

------------------
Gislaved.net - Ett roligare Internet!

Medlem sedan dec. 19992 555 inlägg
#10

MEN det finns en funktion som tolkar en sträng som PHP-kod.

Är det månne eval du tänker på?

------------------
Robban < robban@lipogram.com >

Medlem sedan juni 20001 521 inlägg
#11

Tack!

Hur ska jag använda funktionen på en text med PHP-kommandon lite här och var?

------------------
Gislaved.net - Ett roligare Internet!

Medlem sedan apr. 20003 971 inlägg
#12

så här kanske?

$str = 'echo "hej";';
eval( $str );

------------------
/mvh Swey
Programmera PHP

Medlem sedan juni 20001 521 inlägg
#13

Nä, det var inte särskilt smidigt... radbrytningarna gick åt skogen... :)

Jag kör med include i alla fall.

------------------
Gislaved.net - Ett roligare Internet!

Medlem sedan apr. 20003 971 inlägg
#14

från en databas? låter fruktansvärt krångligt...

------------------
/mvh Swey
Programmera PHP

Medlem sedan juni 20001 521 inlägg
#15

Nix, när jag använder PHP-kod så skapar programmet en särskild fil som inkluderas. :D

Fast nu kom jag på hur jag ska göra...

Jag avslutar helt enkelt PHP-koden med ?> När jag ska ha vanlig text, och startar med <? när jag vill ha kod igen. Kruxet är att man inte ska ha någon starttagg i början och ingen sluttagg i slutet...

Men nu verkar inte följande kod fungera:

$text = eval( $text );
$text = ereg_replace("\n","<br>",$text);
print("$text");

Texten skrivs ut, men utan radbrytningar... lite jobbigt.

------------------
Gislaved.net - Ett roligare Internet!

[Redigerat av Gislaved.net den 11 jul 2000]

Medlem sedan juni 20001 251 inlägg
#16

Skulle det inte gå med:
$text = ereg_replace("\n","<br>\n",$text);

------------------
SteveNet - I think, therefore I am.

Medlem sedan apr. 20003 971 inlägg
#17

används nl2br
alternativt str_replace

de är mycket snabbare

------------------
/mvh Swey
Programmera PHP

Medlem sedan juni 20001 521 inlägg
#18

Stevenet: nix, det fungerar inte.

Jag skulle behöva en funktion som lade till <BR>-taggar efter varje radbrytning, utom mellan <? och ?>

och inte heller innan den första ?> och efter den sista <?

Krångligt? Kanske...

I och för sig så får jag resultatet utskrivet på flera rader i HTML-koden så både mitt och stevenets exempel borde fungera... men det gör de inte.

Lägger servern till någon annan radbrytning än \n ?

------------------
Gislaved.net - Ett roligare Internet!

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)