ohjeita web-sivuston tekijälle
Usein tulee tarvetta lukea jotain palvelimella olevista tiedostoista tai kirjoittaa niihin jotain. Monet pistävät esimerkiksi skriptit pitämään lokia web-sivuston tapahtumista.
Seuraava ohjelma lukee tiedostosta luvun, kasvattaa lukua yhdellä, tulostaa sen selaimelle ja tallentaa uuden luvun tiedostoon. Kyseessä on siis primitiivinen sivulatauslaskuri.
$tiedosto = "laskuri.dat"; // fopen avaa tiedostokahvan, jonka kautta avattuun // tiedostoon voidaan myöhemmin ohjelmassa viitata // Tiedosto avataan luettavaksi ja kirjoitettavaksi (r+). $kahva = fopen($tiedosto,"r+"); // Luetaan tiedostosta ensimmäiset 16 merkkiä // (tai tiedoston loppuun) $numero = fgets($kahva,16); // Kasvatetaan numeroa yhdellä ja tulostetaan se selaimelle $numero++; print $numero; // Tiedoston lukemisen johdosta tiedostokahvan sisäinen // osoitin siirtyi 16 merkin päähän tiedoston alusta. // Rewind-komennolla se siirtyy takaisin alkuun. rewind($kahva); // Kirjoitetaan uusi numero tiedostoon. fputs($kahva,$numero); // Suljetaan tiedostokahva fclose($kahva);
esimerkit/tiedosto.php
lähdekoodi
Seuraava sivu: Sähköpostin lähetys.
Näin voi sitten lukea merkkijono kerralla:
$tiedosto = file("a.txt");
print $tiedosto[0]; // Luetaan rivi 1
print $tiedosto[1]; // Luetaan rivi 2
print $tiedosto[2]; // Luetaan rivi 3
Miten voi kirjoittaa tietylle riville?
28.2.2004 15:20Suoraan tietylle riville kirjoittamiseen ei tietääkseni ole valmista välinettä. Kirjoittaaksesi riville numero n sinun täytyy ensin lukea koko tiedosto muistiin, sitten kirjoittaa tiedostoon rivit alusta riville numero (n-1), sitten haluamasi rivi, ja lopuksi loput alkuperäiset rivit.
1.3.2004 19:57Onko mahdollista luke jokin teksti esim sanojen "muu" ja "mää" välistä?
2.3.2004 13:42Lyhyesti: jos jotain on johonkin tallennettu, se voidaan lukea.
File-funktiolla luet tiedoston rivit taulukkoon ja array_search-funktiolla etsit tiettyä alkiota.
Miten voidaan lukea tekstitiedostosta samalta riviltä eri tietoja? esim:
02;Zyxel Prestige 645MP-A1;60,17
josta 02 on tieto jolla haetaan kyseisen nimi joka on seuraava ; merkin jälkeen ja osan hinta joka on ; merkin jälkeen!!!
Tämä liittyy enemmän merkkijonofunktioihin.
Explode-funktiolla voidaan "hajottaa" merkkijono taulukoksi. Esimerkiksi kysytty rivi "02;Zyxel Prestige 645MP-A1;60,17" voitaisiin hajottaa seuraavasti:
list($id,$tuote,$hinta) = explode(';',$rivi);
Hintatiedot kannattaa muuten kirjata aina pisteellä, ei pilkulla. Tämä siksi, että desimaaliluvut esitetään aina nimenomaan pisteellä ja näin hinnoilla voidaan suorittaa laskutoimenpiteitä ohjelmassa. Jos hinnat halutaan tulostaa selaimelle pilkkumuodossa, voi käyttää lausetta str_replace('.',',',$hinta); .
miten voi tallentaa merkkijonon uudelle riville
niin ettei se mene aina edellisen perään??
Samuli: Kirjoita rivinvaihtomerkki (esim. \n) siihen väliin, mihin haluat rivinvaihdon.
6.5.2004 18:49kiitos.
tiedän että tuo oli nyt aika
yksinkertainen homma mutta aloittelen tässä
vasta php-ohjelmoitia ja tuommoisia perus käskyjä
on hankala löytää
anteeksi nyt taas mutta minulla se \n ei oikein
toimi. minulla on tämmöinen että
$tiedosto= fopen (jotain.dat, 'a');
$uusirivi = jotain tekstiä muutama muuttuja ynm.;
fputs ($tiedosto, $uusirivi);
fclose ($tiedosto);
enkä haluaisi että kaikki menisi samalle riville peräkkäin esim. jotain.dat näyttää tältä
jotain tekstiä muutama muuttuja jotain tekstiä muutama muuttuja jotain tekstiä muutama muuttuja
jotain tekstiä muutama muuttuja jotain tekstiä muutama muuttuja jotain tekstiä muutama muuttuja
siis kaikki samalla rivillä peräkkäin
siis toimiiko tuo \n tuossa vai onko siihen jokin muu
Kyllä toimii \n, kunhan laitat ne tuplalainausmerkkeihin ("). Eli seuraavasti:
$uusirivi = "jotain tekstiä\nmuutama muuttuja";
ai no kiitos
13.6.2004 21:18miten saisi tiedostonimestä välilyönnit pois
esim "petteri. txt" olisi "petteri.txt"
Merkkijonoja voi muuttaa funktiolla str_replace. Seuraava esimerkki poistaa muuttujan $txt kaikki välilyönnit.
$txt = 'petteri. txt';
$txt = str_replace(' ','',$txt);
Terve,
onko PHP:llä mahdollista lukea Excel taulukosta infoa ja tulostaa ne sen jälkeen? Taulukon soluissa on ihan tekstiä/lukuja, ei kaavoja.
mitenkä saisin sillee, et tiedostoon lisäis rivin niin, että eka rivi pyyhkiytyy pois. eli jos olis vaikka tällänen tiedosto:
rivi1
rivi2
rivi3
rivi4
niin siihen pitäs lisää "rivi5" nii että tiedosto olis sen jälkeen näin:
rivi2
rivi3
rivi4
rivi5
osaisko joku kertoo miten laitetaan flash peli sellaseks, et ku rekisteröi oman ukon siihen pelii, ni aina pelin jälkee se tallentuu ittellään ku lopettaa pelaamisen.???
15.1.2005 16:02mä teen peliä nettiin, osaisko joku kertoo miten laitetaan flash peli sellaseks, et ku rekisteröi oman ukon siihen pelii, ni aina pelin jälkee se tallentuu ittellään ku lopettaa pelaamisen.???