Hi all,

Wat ik doe:
Ik open een file, sla dit op in de database zonder er iets mee te doen. Dan open ik die file en vergelijk ik of de file en de file_get_contents gelijk zijn, indien ja dan mag er niks gebeuren... Maar, het rare is:

file_get_contents($file) = 1000 tekens
$database_content = 900 tekens

En dat zonder ook maar iets te hebben gewijzigd. Heeft iemand een idee hoe dit kan?
Wat is het kolomtype? VARCHAR(900)?
Zo ja, misschien helpt het om kolomtype TEXT te nemen.
Donny Wie weet op 20/09/2015 05:35:48

Maar, het rare is:

file_get_contents($file) = 1000 tekens
$database_content = 900 tekens

En dat zonder ook maar iets te hebben gewijzigd. Heeft iemand een idee hoe dit kan?

heb je al naar de verschillen gekeken? Ik zou dat als eerste doen. ;-)
Gezien topic titel worden spaties en linebreaks verwijderd.
Obelix en Idefix op 20/09/2015 13:28:22

Gezien topic titel worden spaties en linebreaks verwijderd.

Zonder code, brontekst en resultaattekst blijft het gissen wat er gebeurt.
Ik heb gekeken naar de verschillen en die zijn er niet... Mijn database table is een longtext, dit omdat je nooit weet hoe lang het bestand is en dat risico wil ik niet nemen. Ik gebruik het Laravel MVC 4.2


public function init()
    {
        $except = ['blocks', '.', '..', '.DS_Store'];
        $scandir = scandir($this->dir);

        //Loop trough the directory
        foreach ($scandir as $key => $value) {
            if (!in_array($value, $except) && is_file($this->dir . '/' . $value)) {
                //Get the file
                $file = file_get_contents($this->dir . '/' . $value);
                //Data to search for
                $data = ['filename' => $value, 'product_key' => $this->current_template];
                //Run model query
                $version = Version::where($data)->first();

                return dump(strlen($version->content), strlen($file));
                //If the version doesnt exist or the version content is not equal to the current version
                if ($version == null || $version->content != $file) {
                    //Create a new version
                    Version::create($data + ['content' => $file]);

                }
            }
        }

        return $this->redirect('template.cms.version.index', ['message' => 'Initialized']);
    }
En wat wordt opgeslagen in de database? De returnwaarde van dump()? Hoe luidt deze (de returnwaarde, en hoe ziet de definitie van dump() er uit)? Of gebeurt dit in Version::create()?

Tis volgens mij een kwestie van het kruimelpad volgen.
Stom stom stom... $model->first(); betekend natuurlijk: pak het EERSTE wat je tegenkomt... Mn database kwam dus andere data files eerst tegen... Een order_by->created_at en desc was genoeg, we keren daarmee de tabel natuurlijk om :)

Reageren