» »

[php]Spreminjanje included datoteke

[php]Spreminjanje included datoteke

sash69 ::

Torej, imam en problemček. V svoj class (mojclass.php) includam neko php datoteko (data.php), v kateri je samo en array s podatki (iz datoteke data.php bere podatke nek drug, zelo obširen modul). Sedaj želim iz tega svojega classa spremeniti vrednosti v tistem array-u includane datoteke . Kako? :)

data.php
<?php
   $custom_data = array (
   'custom_data1' => 'neki, se neki',
   'custom_data2' => 'primer1, primer2');
?>


mojclass.php
<?php
class mojclass extends parentclass
{
   function change()
   {
      include_once('data.php');
      $temp_data1 = $custom_data['custom_data1'];
      $temp_data2 = $custom_data['custom_data2'];
      //podatke se iz arraya v $temp_data1 in $temp_data2 prebere normalno
      //torej imata sedaj vrednosti: $temp_data1 = 'neki, se neki' in $temp_data2 = 'primer1, primer2'
      //sedaj bi rad spremenil $temp_data1 ali $temp_data2,
      //in želel da se spremembe odražajo in shranijo v originalnem ($custom_data) arrayu v data.php
   }
}
?>


Nekako takole naj bi zgledalo vse skupaj. Nikakor mi ne rata naresti tako, da bi se spremenil vsebino arraya $custom_data v data.php. Poskusil sem tudi z generiranjem stringa z vsebino nove, spremenjene datoteke data.php in shranjevanjem oz. prepisom originalne datoteke...
function overwriteData()
{
   $newDataPhp = "
   <?php
       $custom_data = array (
       'custom_data1' => 'blabla, test, test2, test3',
       'custom_data2' => 'primer1');
   ?>";
   //unlink('data.php');
   $fh = fopen('data.php', 'w);
   fwrite($fh, $newDataPhp);
   fclose($fh);
}

...vendar to tudi ne dela. Čeprav se ti ukazi uspešno izvedejo, originalna datoteka ostaja nespremenjena (sploh ni potrebno gledati vsebine, čas zadnje spremembe ostaja nespremenjen). Sicer sem prišel do neke grde rešitve tako, da predno zapišem $newDataPhp string, izbrišem originalno datoteko (kar je v zgornji kodi v komentarju) in nato ustvarim novo z istim imenom. Tako stvar deluje kakor želim :) a je to res zelo grd način in verjamem,da obstaja boljši.
  • spremenil: sash69 ()

keworkian ::

A nebi bilo bolj preprosto da bi imel kakšen xml ali pa txt file?

AndrejS ::

Morda web server proces nima pravic za spreminjanje te datoteke.

sash69 ::

keworkian je izjavil:

A nebi bilo bolj preprosto da bi imel kakšen xml ali pa txt file?


Ja sej to sem pozabil dodat. :) Dejansko bi bilo bolj pametno uporabiti XML datoteko, ampak to pomeni tudi spreminjanje tistega modula, ki to datoteko dejansko uporablja za svoje delovanje, tega pa ne bi ravno rad počel. Saj drugače mi ni problem, z DOM ali pa simpleXML se taksna datoteka enostavno generira in bere, pač, rad bi pustil sestavo in ostale datoteke tistega modula nedotaknjene.

AndrejS je izjavil:

Morda web server proces nima pravic za spreminjanje te datoteke.

Mja, kar je pa zanimivo je to, da lahko datoteko brutalno pobrišem brez težav, prepisati je pa ne morem. :)

keworkian ::

Rajše "spremeni" ta modul, ker s telim si delaš sranje2.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344320513 (60516) Macketina
»

UJP Eracuni - B2B

Oddelek: Programiranje
142782 (1106) matmul
»

PHP davčna blagajna

Oddelek: Programiranje
187708 (5732) brble
»

Visual C# problem

Oddelek: Programiranje
302939 (2111) mladec
»

Jasper subreport

Oddelek: Programiranje
131542 (1291) nightrage

Več podobnih tem