Diskuze: Práce s INI soubory
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Jednoduchý příklad:
<?php
$dbh = dba_open(".htdata.ini", "c", "inifile");
dba_replace("key", "value", $dbh);
dba_close($dbh);
Malé varování: Nevhodnými daty se dá struktura takového souboru snadno rozbít. Proto by do něj návštěvníci neměli zapisovat.
Díky
EDIT: Používám to pro zapsání konfigurace redakčního systému (název šablony, údaje do DB atd.)
Ještě malý dotaz mimo - pro přečtení normálního souboru můžu použít file_get_contents, že ?
INIFILE je obyčejný textový soubor. Nedoporučuji ho moc často modifikovat, ale pokud do něj bude zapisovat jen admin a vstup bude náležitě ošetřen, je to OK. Je určen k zápisu konfigurace, např. přístupových údajů k MySQL.
Pro přečtení celého souboru se obvykle používá funkce
parse_ini_file()
, která z toho udělá hezké asociativní pole,
se kterým si pak můžeš dělat co chceš.
Jj, to vím (to píšeš ve svým článku), já myslel úplně obyčejný
texťák
To je obyčejný texťák, ale proč bys ho tak měl číst? Není k tomu důvod. Co s ním pak chceš po načtení dělat?
Warning: dba_open(/var/www/projekt1/.htdata.ini): failed to open stream: Permission denied
public static function update($key,$newvalue)
{
$ini = dba_open($_SERVER['DOCUMENT_ROOT'] . "/.htdata.ini", "c", "inifile");
dba_replace($key, $newvalue, $ini);
dba_close($ini);
}
Nemáš právo vytvářet soubory v adresáři. Na to jsem kdysi také narazil a poradil jsem si. Zkus se nad tím trochu zamyslet a přijdeš na to.
Oprava: Apache nemá právo zápisu do toho adresáře.
Přepsal jsem složce práva a už to jede
Btw. když mám INI soubor rozdělený na víc sekcí, jak to tam nastavit ?
Nedělej to jako statickou funkci, ale jako třídu. Ušetříš si bolení hlavy.
Zobrazeno 13 zpráv z 13.