Autor | Zpráva | ||
---|---|---|---|
krteczek Profil * |
#1 · Zasláno: 28. 1. 2005, 18:00:05
mám konkrétní problém:
Ze souboru načtu obsah do proměnne, převedu ji na pole podle oddělovníku pomocí explode(), to umím a potrebuji v tom poli smazat určitý řádek, ale nevím jak, navíc potrebuji to pole zpátky uložit do toho souboru(přepsat puvodní data) mohli byste mi pls poradit? krteczek |
||
centi Profil |
#2 · Zasláno: 28. 1. 2005, 18:09:23
<?php
$riadok = 5; $data_new = ""; $data = file("subor.txt"); for($i=0;$i<count($data);$i++) { if ($i!=$riadok-1) { $data_new.=$data[$i]; } } $fp = fopen("subor.txt","w"); fputs($fp, $data_new); fclose($fp); ?> Snad som sa nikde nekopol... |
||
krteczek Profil * |
#3 · Zasláno: 28. 1. 2005, 18:40:39
Díky,jestli sem to správně pochopil, tak stačí jen:
je to tak správně??? krteczek |
||
centi Profil |
#4 · Zasláno: 28. 1. 2005, 18:47:13
Explode je tam zbytocne, pretoze $data = file("subor.txt"); nacita subor do pola. Kazda polozka toho pola reprezentuje jeden riadok.
Ja by som to vsak robil inak (tak ako som napisal). V tom priklade nacitam subor do pola $data, jeho polozkami pomocou FOR prejdem a kazdu polozku (okrem tej ktoru nechcem - $riadok) pripisem do premennej $data_new. Ta bude na konci obsahovat cely subor okrem nechceneho riadku. |
||
krteczek Profil * |
#5 · Zasláno: 28. 1. 2005, 19:15:01
centi : musím načítat přes explode, protože nemůžu zajistit že 1 řadek v souboru se = 1 položka,proto mám položky oddelené stredníkem a načítám přes explode.
ale zbytek máš líp vyřešené, takže to použiji :o) Děkuji nebo jsem něco pochopil špatně a i pres file() jsem schopen načíst data podle oddělovníku? |
||
centi Profil |
#6 · Zasláno: 28. 1. 2005, 19:18:27
Tak potom file() nemozno pouzit, pretoze ten rozdeluje riadky podla znaku konca riadku.
Nacitaj teda subor pomocou fget() do $data a potom pomocou toho explode() rozdel do riadkov. Zbytok uz mozes pomocou for() spracovat ako som pisal. |
||
Leo Profil |
#7 · Zasláno: 28. 1. 2005, 20:01:03
Zkuste se podivat na zoubek databazim, tam jsou takovehle veci uplna malina, soubor je jen pro nouzi nejvyssi, Leo
|
||
krteczek Profil * |
#8 · Zasláno: 28. 1. 2005, 20:52:51
To Leo:
no jde o to že dělám relativně jednoduchou knihu, kde se učím jak zpracovat data, jak je změnit, a jde mi o to NEPOUŽÍT Databázi právě kvůli použití lidmi, kteří databázi nemohou, neummí, nebo nechtějí použít.ted řeším administraci boardu, to znamená úpravu a mazání příspěvků, k tomu jsem potřeboval to odmazání řádku. To centi: Díky moc za pomoc a vysvětlení postupu, to s otevřením a zavřením souboru mám vyřešeno pres file_open , fread a fwrite... |
||
krteczek Profil * |
#9 · Zasláno: 29. 1. 2005, 11:19:07
No tak se mi to nějak nedaří :(((
když se to uloží, tak se mi uloží prázdný soubor :(
co mám špatně??? díky krteczek |
||
krteczek Profil * |
#10 · Zasláno: 29. 1. 2005, 11:30:55
jé sorry tohle ani nejede kvuli tomu get...
tohle jede, ale uloží prázdný soubor už mne napadlo ro prohnat pres smyčku a uložit postupne každy ředek z pole, ale to taky nevím jestki je to pravé ořechové... |
||
centi Profil |
#11 · Zasláno: 29. 1. 2005, 15:52:33
1. if ($i!=$radek) - pozor, $i zacina od nuly, mozno nebude sediet s cislom nechceneho riadku
2. $nove_data=$prispevky[$i]; - toto vzdy ulozi do premennej $nove_data premennu $prispevky[$i], ta sa vsak kazdym krokom (for) meni, takze nakoniec sa ulozi len posledna hodnota (a ta je mozno prazdna, prazdny riadok na konci). Ty vsak chces riadky PRIDAVAT, preto: $nove_data.=$prispevky[$i]; //bodka pred = znamena pridavanie (nabalovanie) |
||
krteczek Profil * |
#12 · Zasláno: 30. 1. 2005, 02:52:39
aha.... díííkes já myslel že ta tečka je tam omylem...to by mne nenapadlo děkuji MOC
takže v podstatě ten výraz znamená tohle :$nove_data=$nove_data.$prispevky[$i] mne ani tohle hned nenapadlo... až jak jsi mi to vysvětlil tady jsem si vspomnel že když přidávám do knihy záznam,tak musím načíst to co uz je v knize a k tomu to pričíst... ted vidím že jsem to mnel špatně... nísto pridat jsem daval prepsat :o((( jdu testovat díky krteczek |
||
krteczek Profil * |
#13 · Zasláno: 30. 1. 2005, 14:56:24
Jejda ještě jeden dotaz... pri explode mi to začíná načítat od 0 a ja bych to potreboval od jedna.ted to mám proste jeste jeden skriptík ktery mi to přenačte až od 1ale to není to prave... notmálně jde použít =>1 ale u explode mi to vyhazovalo chybu...
buď to nejde, nebo jsem měl špatný zápis :( krteczek |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0