Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 8 Dołączył: 8.12.2010 Ostrzeżenie: (0%)
|
Witam
Mam wykonany skrypt do tworzenia i edycji postów i mam pewien problem. Mianowicie kod do edycji postów nie edytuje prawidłowo treści, nie umiem tego za bardzo wyjaśnić, ale na przykładzie to wyjaśnię. A to kod edycji postów:
A to kod w .txt który jest przed edycją:
I jeśli chcę zmienić tytul w pierwszej linii, to kod pobiera ta linie i wpisuje w formularz, po zmianie danych np. z "tytul" na "tytul2", to zamiast edytować w tej pobranej linii edytuje w całym pliku to słowo i wtedy kod wygląda tak:
A więc jak zrobić aby edytowało tylko z wybranej linii? Trochę pomieszałem w kodzie, ale mam nadzieję, że ktoś z was pomoże mi ten kod jakoś prawidłowo zedytować. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Czytałeś co robi str_replace ? Zamienia każde słowo na inne. Więc normalnie że zamienia. Zmodyfikuj skrypt i przed każdym postem(na początku każdej lini) wstawiaj jakiś unikalny ID lub posługuj się numerem lini. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 8 Dołączył: 8.12.2010 Ostrzeżenie: (0%)
|
No wiem, że zmienia każde słowo. Tylko nie wiem jak zrobić żeby zmieniało tak jak tego chce.
No własnie tak robie że posługuje się nr'em linii. Wiem jak wyciągąć z odpowiedniej linii do formularza za pomocą którego zedytuje sobie daną zawartość danej linii, ale nie wiem jak zrobić by zmieniało właśnie tylko wtej wybranej linii, a nie że jak zapisuje to zmienia mi w całym pliku (IMG:style_emoticons/default/sad.gif) edytuje każdą linię w taki sposób: penel.php?edytuj3=nrlinii np. penel.php?edytuj3=1 i edytuje mi linię pierwszą, ale to chyba widać, z resztą za pomocą i oraz Ten post edytował ZeTu 31.12.2011, 16:25:53 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%)
|
To skoro wiesz która linia to znasz jej treść przed edycją i po edycji. Nie możesz zamienić całej lini?
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 8 Dołączył: 8.12.2010 Ostrzeżenie: (0%)
|
Ale w jaki sposób mam to zrobić?, np. w taki:
Ten post edytował ZeTu 31.12.2011, 16:54:08 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%)
|
$ad1 i $ad2 to tylko tytuły tak? więc nie tak. Musisz pobrać całą zawartość lini przed explode i tą linię zastąpić nową linią. Czyli $file[0] zastępujesz nową linią ($_POST z tytułem i treścią łączysz do odpowiedniego formatu)
@up tak dokładnie jak poprawiłeś Ten post edytował buliq 31.12.2011, 16:56:12 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 8 Dołączył: 8.12.2010 Ostrzeżenie: (0%)
|
I teraz będzie na pewno dobrze?
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%)
|
Sprawdź (IMG:style_emoticons/default/smile.gif) Nic nie jest pewne (IMG:style_emoticons/default/smile.gif)
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 8 Dołączył: 8.12.2010 Ostrzeżenie: (0%)
|
No nie jaki żal
Zmieniłem jeszcze z na i teraz zamiast zapisać to usuwa wszystkie linie i zapisuje tylko to co jest w formularzu ;/ |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%)
|
Przypisz dla tych postów unikalne ID, po tym parsuj plik. Pobieraj całą zawartość pliku, dziel na posty, znajdź po ID interesujący cię post, potem przenieś całą wczytaną tablicę postów na powrót do pliku. To samo z usuwaniem i dodawaniem. Str_repleace zapewne będzie 100x szybsze przy naprawdę dużych plikach (kilka tysięcy linii) ale skoro już wybrałeś zapis do pliku. .txt zamiast bazy danych to przy okazji przekonałeś się dlaczego znakomita większość korzysta jednak z zapisu do DB.
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 8 Dołączył: 8.12.2010 Ostrzeżenie: (0%)
|
Z usuwaniem i dodawanie to nie problem.
Czyli w jaki sposób mam edytować daną linijkę? Mam zrobić tak samo jak tutaj: tylko zamiast
dać nr id? A właśnie czemu mam dawać to id? Nie może być tak, że nr'em id jest nr linii? Bo teraz jak mam dopisywać do tego pliku .txt jeszcze id, to będę musiał od nowa pisać ten kod php. A robię na plikach .txt bo jestem początkujący, a jak obczaje bardziej .php + .txt to wtedy przejdę na .php + MySQL Ten post edytował ZeTu 31.12.2011, 17:41:10 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%)
|
Używasz jakiegoś kodowania/szyfrowania do zapisu treści post'a ? Jeżeli nie to numer linii zmieni się gdy w poście będzie zawarty znak nowej linii.
Co do tego że jesteś początkujący, lepiej zacznij od baz danych zamiast pllików tekstowych, jest to imho o wiele łatwiejsze w implementacji. A po drugie mają one niezliczoną ilość zalet. Ten post edytował Uriziel01 31.12.2011, 18:04:58 |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 8 Dołączył: 8.12.2010 Ostrzeżenie: (0%)
|
A dobra, nie to nie. kurde jak dodaje kolejny post to dodaje go na końcu pliku czyli id się nie zmienia!
Ok już sobie poradziłem zrobiłem to tak:
Ten post edytował ZeTu 31.12.2011, 19:05:29 |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 4.09.2011 Ostrzeżenie: (0%)
|
zakoncz kazdy rekord jakims znakiem i pobieraj az do jego napotkania, kazde wystapienie tego znaku to kolejny post.
id | tresc |autor | data ; pobierasz do ; pozniej explodujeszz linijke za pomoca | zapisujesz sobie numer lini gdzie zaczal sie ten post edytujesz jakie chcesz dane otrzymane po explode i zapisujesz w to samo miejsce albo na koncu nie rozumiem z czym tu masz problem ? W przyszlosci i tak w wiekszosci przypadkow bedziesz parsowal csv'alki albo xmle w ktorych reguly beda sie zmieniac przy kazdym innym zadaniu praktycznie, rzadko kiedy ktos uzywa .txt |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 19:27 |