Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam!! Borykam sie z takim problemem odnośnie kodu php.
Otwieram plik z danymi linia po lini. Tych lini jest z 20. I teraz tak - chciałbym żeby np w każdej z tych lini dokłanie po 30 znaku wstawiał mi kropkę! Czy da sie to jakoś zrobić?? BYł bym wdzięczny za jakiekolwiek informacje.
Offline
Mozna np. tak:
$fd = fopen("dane.txt","r"); while(!feof($fd)) { $linia = fgets($fd,1024); $zKropka = substr($linia,0,30).".".substr($linia,30); echo $zKropka."<br>"; }
Offline
Ja mam tak:
<?php // Otwierany plik $plik = "dozapisu.php"; // Czy da sie zapisywac do pliku if( is_writable( "dozapisu.php" ) ) { // otwieram plik( do zapisu i odczytu, wlasciwie w tym miejscu mozna otworzyc tylko do odczytu ) $uchwyt = fopen($plik, 'r+'); if( $uchwyt ) { // czytam plik do tablicy while(!feof($uchwyt)) { $dupa[] = fgets($uchwyt); } // zamykam plik i ponownie otwieram do odczytu i zapisu i zeruje go fclose($uchwyt); $uchwyt = fopen($plik, 'w+'); foreach( $dupa as $klucz => $wartosc) { // Podmieniam zawartosc $wartosc = substr($wartosc,0,9) . "." . substr($wartosc, 9,strlen($wartosc) - 1); fwrite($uchwyt, $wartosc); } fclose($uchwyt); } else { echo "Dupa, nie moge zapisac do pliku."; } } ?>
Offline
fajnie! elegancko!:) dzięki wielkie. Ale pytanie mam jeszcze jedno gdybym drugą kropke chciał zrobić w 35 lini?? czyli 2 kropki w 30 i 35
Offline
korzystałem z tego pierwszego skryptu
Offline
tzn :
$fd = fopen("dane.txt","r");
while(!feof($fd))
{
$linia = fgets($fd,1024);
$zKropka = substr($linia,0,30).".".substr($linia,30).substr($linia,0,35).".".substr($linia,35);
echo $zKropka."<br>";
}
niestety nieda oczekiwanego efektu
Offline
substr($linia,0,30).".".substr($linia,30, 5) . "." . substr($linia,35);
Zgodnia za manualem( http://pl.php.net/manual/pl/function.substr.php )
string substr ( string $string, int $start [, int $length] )
w funkcji substr podaje się string do pocięcia, index początkowy, od którego chcemy zacząć wycinanie( pamiętając że pierwszy znak ma index 0 ) i opcjonalnie długość jaką chcemy wyciąć z tego stringa.
Offline
No i poszło bez problemu!! dzieki!! tylko problem którey sie pojawił to:
mam ten skrypt:
$fd = fopen("dane.txt","r");
while(!feof($fd))
{
$linia = fgets($fd,1024);
$zKropka = substr($linia,0,30).".".substr($linia,30, 5) . "." . substr($linia,35);
echo $zKropka."<br>";
}
i jest ok wyswietla kropki tam gdzie ma wyświetlać. Ale dlaczego jak mu zmienie z ilości wyswietlamych znaków - 1024 ($linia = fgets($fd,1024);) na np 65 ponieważ chcę żeby wszystko po 65 znaku sie niewyświetlało w tych liniach - to on zamiast ucinać od tego momentu to w tej lini ucina a resztę wrzuca do następnej lini.
np:
to jest teks to jest nowy tekst test testowy teeeestt
chcę uciąć samo teeeeestt - podaje mu od którego znaku i wyswietla mi:
to jest teks to jest nowy tekst test testowy
teeeestt
zamiast całkownicie go niewyswietlać.
Offline
debbie napisał(-a):
Ale dlaczego jak mu zmienie z ilości wyswietlamych znaków - 1024 ($linia = fgets($fd,1024);) na np 65 (...) to on zamiast ucinać od tego momentu to w tej lini ucina a resztę wrzuca do następnej lini.
Dzieje sie tak bo to 1024 to taki bufor na linie, jezeli ustawisz na 65 znakow to on i tak przejdzie po wszystkich znakach ale potraktuje normalna 1 linie jako 2 bo nie zmiesci calej w tych 65 znakach.
Jezeli chcesz wyciac wszystko powyzej 65 znaku mozesz uzyc takiego kodu:
$fd = fopen("dane.txt","r"); while(!feof($fd)) { $liniaCala = fgets($fd,1024); $linia = substr($liniaCala,0,65); $zKropka = substr($linia,0,30).".".substr($linia,30, 5) . "." . substr($linia,35); echo $zKropka."<br>"; }
Offline
Strony: 1