Mam plik dane.txt o takiej treści:
4||Wrocław||Wroc
3||Gdańsk||Gda
42||Kraków||Krak
I nie wiem jak zrobić, żeby po wywołaniu skryptu zwiększał on np. w drugiej linijce wartość 3. Wiem, że trzeba to jakoś zrobić z funkcją explode, ale nie wiem jak :-(.
Pomocy!!!!!!
Jabol
20.05.2003, 20:56:43
[php:1:fea3148687]<?php
$_2linia=exlpode('||', ($dane=file('path/file')));
$_2linia[0]++;
$dane[1]=implode('||', $_2linia);
file_put_contents('path/file', implode('', $dane));//to działa jak tryb w, czy jak np. w+?
?>[/php:1:fea3148687]
Grzesiek
20.05.2003, 21:01:38
Można to zrobić tak:
[php:1:2126c7d1a6]
$plik=file(dane.txt); // zapisuje dane w tablicy
for($i=0; $i<count($plik); $i++) {
list($id, $miasto, $skrot_miasto) = explode("||", $linia[$i]);
if($id==//coś tam dalej
[/php:1:2126c7d1a6]
Jeżeli chcesz to potem, zapisać do pliku to musisz go wyczyścić i jeszcze raz wpisać wszystkie wartości, które masz w tablicy.
[KaMeLeOn]: Proszę używać znaczników [php]...
Jabol - Twój kod nie działa. Wyskakuje taki komunikat:
Fatal error: Call to undefined function: exlpode() in c:apachehtdocszapisz.php on line 2
rogeros
22.05.2003, 19:27:39
[php:1:0fa0d01964]<?php
$_2linia=explode('||', ($dane=file('path/file')));
?>[/php:1:0fa0d01964]
exlpode != explode
rogeros
22.05.2003, 19:38:59
Masz gotowca.
[php:1:df7558512d]<?php
$ktora_linijke_zmienic="2";
$plik=file("dane.txt"); // otwierasz plik
$dane=explode("||",$plik[$ktora_linijke_zmienic]); // dzielisz linijke miedzy "||" czyli $dane[0]=3,$dane[1]=Gdańsk,$dane[2]=Gda
$dane[0]++; // powiekszasz liczbe o 1. w tym przypadku 3+1
$plik[$ktora_linijke_zmienic]=$dane[0]."||".$dane[1]."||".$dane[2]; // łączymy wszystko w jedna linijke.
$plik_zap=fopen("dane.txt","w"); //otwierasz plik dane.txt do zapisu
for($i=0;$i<count($plik);$i++){
fputs($plik_zap,$plik[$i]); //zapisujesz do pliku wszystkie linijki
}
fclose($plik_zap); // zamykasz plik. FINITO
?>[/php:1:df7558512d]
DeyV
22.05.2003, 21:36:59
file_get_contents i file_put_contents - ciekawe funkcje - i jeszce ich nie widziałem.... Ciekawe czemu

[pewnie dla tego => (php 4 >= 4.3.0)

]
scanner
22.05.2003, 21:52:22
Albo są dla PHP5 - Jabol chyba na takim właśnie siedzi.
Jabol
23.05.2003, 06:25:00
siedze na php5, ale staram sie podawać rozwiązania dla php4, którego wersje używam 4.3.1
DeyV
23.05.2003, 07:53:30
to który php to obłsuży, to już sprawa drugoplanowa. Problem jednak w tym, że funkcje te pojawiły się odpiero w najnowżych wersjjach dokumentacji - jestem niemal pewnien, że jeszcze w marzec - kwiecień w chm ich nie było

(Ciekawe ile takich cacek w ten sposób można przeoczyć.)
[fisher]
23.05.2003, 09:20:31
Cytat
Jabol - Twój kod nie działa. Wyskakuje taki komunikat:
Fatal error: Call to undefined function: exlpode() in c:apachehtdocszapisz.php on line 2
Gratuluje poczucia humoru
ano
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.