Du har ju två alternativ.
1. Spara i databas
2. Spara i textfil
Vilket du väljer är ju helt upp till dig själv. Även om jag personligen skulle ha använt databas.
När du skriver till en fil så använder man fopen och fwrite.
12 svar · 536 visningar · startad av pakmannen
Hej!
Håller på med en lite större sida, där jag behöver ha ett gäng "globala" variabler typ "$rowColor1=#FFFFFF;", "$rowColor2=#000000;" mm som skall kunna ändras via ett administrativt system och sedan då kommer att användas via alla mina sidor. Skall jag då lagra detta i en tabell i min databas (kommer ju bli jobbigt om jag hela tiden vill lägga till nya variabler) eller kan jag på något sätt inkludera en fil som heter något i stil med globals.php och sedan ändra direkt i denna filen via admin systemet? Hur gör man i så fall detta?
Hoppas ni förstår vad jag menar. :)
Du har ju två alternativ.
1. Spara i databas
2. Spara i textfil
Vilket du väljer är ju helt upp till dig själv. Även om jag personligen skulle ha använt databas.
När du skriver till en fil så använder man fopen och fwrite.
Okej, ska kolla upp fopen och fwrite. Men kan du ge en förklaring till varför du skulle använt en databas? Vad ger det för fördelar?
pakmannen:
En fördel med en databas är att det är lättare att lagra data i en databas.
Sen är det enkelt att sortera och hämta bara valda delar.
En databas kan även indexera innehållet så att det blir snabbare att söka efter data.
Om du istället vill spara all data i en textfil så måste du antingen skapa ett eget system för lagring, läsning sökning osv osv. En databas (MySql t ex) har detta redan.
Du måste givetvis lära dig hur man skapar och arbetar med databaser.
Själv så skulle jag nog välja att arbeta med en databaser, än att pilla med text-filer.
Det finns säkert färdiga lösningar för att bearbeta data lagrad i text-filer.
Har du inte tillgång till en databas (SQL, access) så får du "nöja dig" med att lagra i text-filer.
Sökning av data från en databas är i större sammanhang effektivare om datan lagras i en databas.
EDIT: några stavfel
Är det variablar kan man ju sparar de i en vanlig php-fil som man inkluderar som vanligt och på så sätt kommer åt de enkelt. Vill man sedan ändra i den filen går det att lösa med fopen/fwrite. Jag brukar lösa det så när det gäller variablar som ändras sällan (aldrig) men används ofta. :)
Givetvis använder jag databaser till det mesta. Qimen beskriver ungefär det jag vill. Jag kan ge ett mer konkret exempel:
Gör en större webshop kan man säga, och vill att administratören skall kunna välja vilken valuta som skall skrivas ut. Alltså om det ska stå "SEK", "£" eller "$" tex. Detta bör ju då läggas i en variabel så jag kan skriva ut det varje gång jag ska skriva ut ett pris. Typ.
Personligen tycker jag inte det känns bra att ha PHP-filer som är skrivbara.
Är det endast enkla uppgifter du ska spara, så kan det vara värt att ta en titt på parse_ini_file.
Du får variablerna i en array, som sedan är lätt att ändra och med en loop spara till textfilen.
Matte skrev:
Personligen tycker jag inte det känns bra att ha PHP-filer som är skrivbara.
Jag har funderat en del på det men har kommit fram till att det inte är så farligt sålänge man har filen utanför webbroten? Fast jag kanske har fel. :)
Matte skrev:
Personligen tycker jag inte det känns bra att ha PHP-filer som är skrivbara.
Är det endast enkla uppgifter du ska spara, så kan det vara värt att ta en titt på parse_ini_file.
Du får variablerna i en array, som sedan är lätt att ändra och med en loop spara till textfilen.
Parse_ini verkar helt klart intressant. Den används bara för att läsa från en ini fil eller? Man skriver med fwrite?
Du kan skriva med fwrite om du sätter skrivrättigheter på filen. Det är bara en vanlig textfil.
Du får bara se till så att du ställer upp den i rätt format. Men det är det enkelt att skriva en funktion som fixar.
Dock har parse_ini_file en hel del begränsningar. Det blir bl.a. problem om du ska lagra citationstecken. Även några andra tecken kan ge problem, kommer dock inte nu ihåg vilka.
Men ska du lagra enkla värde så är parse_ini_file ett utmärkt alternativ.
Får följande meddelande när jag använder parse_ini_file:
Warning: parse_ini_file(): SAFE MODE Restriction in effect. The script whose uid is 37748 is not allowed to access /customers/tjoff.com/tjoff.com/httpd.www/ehandel/projekt owned by uid 0
Hittade något om safe_mode på php.net, men det verkar ligga i php.ini som jag inte tror jag kan ändra på. Kan man komma runt detta på något sätt?
Sätt CHMOD 666 på filen så du får skrivrättigheter.
Har själv tillämpat detta på sevrar med safe_mode, och det har aldrig varit några problem.