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!
SweyMedlem sedan apr. 20002 000 inlägg 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
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!
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!
SweyMedlem sedan apr. 20002 000 inlägg 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
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!
... 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!
SweyMedlem sedan apr. 20002 000 inlägg Kan du visa din kod?
------------------
/mvh Swey
Programmera PHP
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!
RobbanMedlem sedan dec. 19992 272 inlägg
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 >
Tack!
Hur ska jag använda funktionen på en text med PHP-kommandon lite här och var?
------------------
Gislaved.net - Ett roligare Internet!
SweyMedlem sedan apr. 20002 000 inlägg så här kanske?
$str = 'echo "hej";';
eval( $str );
------------------
/mvh Swey
Programmera PHP
Nä, det var inte särskilt smidigt... radbrytningarna gick åt skogen... :)
Jag kör med include i alla fall.
------------------
Gislaved.net - Ett roligare Internet!
SweyMedlem sedan apr. 20002 000 inlägg från en databas? låter fruktansvärt krångligt...
------------------
/mvh Swey
Programmera PHP
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]
stevenetMedlem sedan juni 2000985 inlägg Skulle det inte gå med:
$text = ereg_replace("\n","<br>\n",$text);
------------------
SteveNet - I think, therefore I am.
SweyMedlem sedan apr. 20002 000 inlägg används nl2br
alternativt str_replace
de är mycket snabbare
------------------
/mvh Swey
Programmera PHP
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!