Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Práce s INI soubory

PHP PHP Práce s INI soubory American English version English version

Aktivity (1)
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:5.1.2014 13:49

Ahoj,
mám menší dotaz, Kit ve svých článcích ukazuje, jak INI soubory číst. Zajímalo by mě, jak do nich zapisovat (UPDATE). Myslím jak je v SQL - UPDATE něco WHERE.

Díky, Dan.

 
Odpovědět 5.1.2014 13:49
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:5.1.2014 14:03

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.

Editováno 5.1.2014 14:06
Nahoru Odpovědět 5.1.2014 14:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:5.1.2014 14:07

Díky :)

EDIT: Používám to pro zapsání konfigurace redakčního systému (název šablony, údaje do DB atd.)

Editováno 5.1.2014 14:08
 
Nahoru Odpovědět 5.1.2014 14:07
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:5.1.2014 14:09

Ještě malý dotaz mimo - pro přečtení normálního souboru můžu použít file_get_contents, že ?

 
Nahoru Odpovědět 5.1.2014 14:09
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:5.1.2014 14:14

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.

Nahoru Odpovědět 5.1.2014 14:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:5.1.2014 14:17

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š.

Nahoru Odpovědět 5.1.2014 14:17
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:5.1.2014 14:19

Jj, to vím (to píšeš ve svým článku), já myslel úplně obyčejný texťák :)

 
Nahoru Odpovědět 5.1.2014 14:19
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:5.1.2014 14:21

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?

Nahoru Odpovědět 5.1.2014 14:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:5.1.2014 14:22

Warning: dba_open(/var/www­/projekt1/.htda­ta.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);
        }
 
Nahoru Odpovědět 5.1.2014 14:22
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:5.1.2014 14:24

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.

Editováno 5.1.2014 14:26
Nahoru Odpovědět 5.1.2014 14:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:5.1.2014 14:30

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 ?

 
Nahoru Odpovědět 5.1.2014 14:30
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:5.1.2014 14:34

Datibáze INIFILE neumí sekce.

Nahoru Odpovědět 5.1.2014 14:34
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:5.1.2014 14:47

Nedělej to jako statickou funkci, ale jako třídu. Ušetříš si bolení hlavy.

Nahoru Odpovědět 5.1.2014 14:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.