Ongelma: tallentaa kansion nimi sekä kansion osoite multiple-dimensional arrayhin. Kansioiden nimet ovat 0, 1, 2, 3, 4, 5,...
Havaintoja:
Kansion nimi ja sen osoite pitää tallentaa luultavasti multiple arrayhin, kuten:
<?php $nameArray = array("Kansiot" => array ( 0=> "Kansio1", 1=> "Kansio2", 2=> "Kansio3"), "KansionOsoite" => array ( 0 => "KansioOsoite1", 1 => "KansioOsoite2", 2 => "KansioOsoite3",) ); ?>
Näin voisi käyttää php.net:in koodia, joka palauttaa arrayn koon:
<?php function count_recursive ($array, $limit) { foreach ($array as $id => $_array) { if (is_array ($_array) && $limit > 0) $count += count_recursive ($_array, $limit - 1); else $count += 1; } return $count; } ?>
Array:n koon avulla voisi näin tallentaa kansion nimen arrayhin:
<?php mkdir("/Applications/MAMP/htdocs/".($count+1), 0700); $nameArray[($count+1)] = ($count+1); ?>
Tapahtuuko tuo uuden kansion talletus tuohon arrayhin näin:
<?php $nameArray[] = array(($count+1) => 'url_newKansio'); ?>
En saanut tuota koodia vielä toimimaan, joten totetustavassa on mahdollisesti vikaa.
Voisit jatkossa panostaa siihen, että selittäisit ajatuksesi ymmärrettävästi. Mikä on kansion nimi ja miten se eroaa osoitteesta?
Joka tapauksessa taulukkosi on huonoin päin. Mieti asiaa loogisesti.
<?php $kansiot = array( 0 => array("nimi" => "Matti", "osoite" => "Mappi Ö"), 1 => array("nimi" => "Liisa", "osoite" => "Mappi L"), ); $seuraava_id = count($kansiot); // 2 // aivan samanlainen array-rivi kuin aiemminkin: $kansiot[$seuraava_id] = array("nimi" => "Pekka", "osoite" => "Mappi P"); $seuraava_id++; echo $kansiot[1]["nimi"]; ?>
Pakko on kysyä: etkö osaa ollenkaan lukea oppaita, vai miksi perusasiat ovat niin hukassa?
@Metabolix: Ensimmäisen kansion nimi on 0, toisen 1, kolmannen 2 jne.
Osoiteella tarkoitan urlia: esimerkiksi "/public_html/files/pdf/1", jossa viimeinen numero on myös kansio nimi.
Olen rakentamassa yksinkertaista koearkistoa, jossa on kurssin nimi ja viite kokeeseen. Arkisto kattaa vain CS:sän.
Onko järkevämpää käyttää tietokantaa vai arrayta tuon toteuttamiseen?
Arrayllä tarkoitan, että php -koodi tallettaa kokeen nimen ja viitteen kokeeseen .txt -fileen array muotoon.
Mitä järkeä sitten on tallentaa se osoite erikseen, jos voit tuottaa sen aina tarvittaessa lisäämällä nimen eteen tekstin "/public_html/files/pdf/"? Eikö riittäisi taulukko
array(0 => "Java-perusteet", 1 => "Javan jatkokurssi")
jne?
Voit tallentaa tiedostoon mitä tahansa, kun muutat sen ensin tekstiksi serialize-funktiolla. Ladatessa se täytyy vastaavasti purkaa unserialize-funktiolla. Lue näistä lisää PHP:n manuaalista.
Aihe on jo aika vanha, joten et voi enää vastata siihen.