Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie i przetwarzanie
Forum PHP.pl > Forum > Gotowe rozwiązania
piotrdd2
Jakich funkcji należy użyć aby:

var 1. w katalogu znajdują się pliki o nazwach loginu ($login.txt) i ich ilość nie jest określona lub ewentualnie nazwy loginów są zapisane w jakims pliku

Jak zrobić aby te $loginy były pobierane po kolei automatycznie do skryptu który stworzyłem?
Trzeba użyć jakiejś pętli? (bo klikanie w każdym profilu jest męczące laugh.gif )
Jabol
dir
dir->read
dir->close
fopen
filesize
fread
fclose

powinno ci starczyc, jezeli idzie o same funkcjie plikowe. Do tego polecam jeszcze:

while
print[/code]
piotrdd2
Dobrze się sprawuje, tylko powiedz mi jedno.

zapisuje się automatycznie do pliku i wygląda to tak:

123.txt|^^^|5
bbb.txt|^^^|6
aaa.txt|^^^|2

jak zrobić tak aby nie było widać rozszerzenia .txt ?
Jabol
utnij przed zapisaniem, tzn wytnij czesc nazwy o dlugosci strlen-3 zaczynajaca sie na poczatku nazwy.
FiDO
To bedzie malo uniwersalne, lepiej ucinac do ostatniej kropki w nazwie.

Ew. inny sposob wziety z komentarzy na php.net:
[php:1:5e9c9b568b]<?php
$fpath = "/blah/file.name.has.lots.of.dots.ext";
$fext = array_pop(explode('.', $fpath));
$fname = basename($fpath, '.'.$fext);

print "fpath: $fpathn";
print "fext: $fextn";
print "fname: $fnamen";
?>[/php:1:5e9c9b568b]
piotrdd2
Jak użyć tego strlen-3 na tym przykładzie?

[php:1:060bddf54a]<?php
$plik=fopen($file, "a"); // jak wszystko jest ok to zapisuje dane
flock($plik, 2);
fwrite($plik, "$login|^^^|$czekn"); // n- oznacza przejscie do następnej linii...
flock($plik, 3);
fclose($plik);

?>[/php:1:060bddf54a]

Nigdy z takim czymś nie miałem doczynienia
Jabol
[php:1:e09e1f4864]<?php
$plik=fopen($file, "a"); // jak wszystko jest ok to zapisuje dane
flock($plik, 2);
fwrite($plik, substr( $login, 0, ( strlen($login) - 4 ) )."|^^^|{$czek}n"); // n- oznacza przejscie do następnej linii...
flock($plik, 3);
fclose($plik);

?>[/php:1:e09e1f4864]
piotrdd2
nie wiem czamu ale teraz powtarza mi wszystkie wiersze 4 razy?!

wyglada to teraz tak:

bbb|^^^|5
aaa|^^^|2
123|^^^|6
bbb|^^^|5
aaa|^^^|2
123|^^^|6
bbb|^^^|5
aaa|^^^|2
123|^^^|6
bbb|^^^|5
aaa|^^^|2
123|^^^|6
piotrdd2
a można to gdzieś zastosować przy odczycie plików z katalogu?? gdyż teraz tez niedziałają mi pewne funkcje w pętli

[php:1:935c28b9a0]<?php
$dir = "./1/";
$katalog = opendir($dir);
while($login = readdir($katalog)){
$ext = explode(".", $login);
if($ext[count($ext) - 1] == "txt"){

?>[/php:1:935c28b9a0]
Jabol
a pokarz wiekszy kod troche
piotrdd2
Okroiłem go troche, ale i tak to samo co przedtem sad.gif

[php:1:d9d444166c]
<?php

$i = 1;
while ($i <= 10):
$dir = "./1/";
$katalog = opendir($dir);
while($login = readdir($katalog)){
$ext = explode(".", $login);

if($ext[count($ext) - 1] == "txt"){

$nazwapliku="1.txt";
$tablica=2;
for($i=0; $i<count($tablica);$i++)
{
$czesci=explode('||', $tablica[$i]);
}
$naz="1/$login";
$tab=file($naz);
for($i=0; $i<count($tab);$i++)
{
$cze=explode('||', $tab[$i]);
}
$czee = $czesci[0]==$cze[0];
$czee1 = $czesci[1]==$cze[1];
$czee2 = $czesci[2]==$cze[2];
$czee3 = $czesci[3]==$cze[3];
$czee4 = $czesci[4]==$cze[4];
$czee5 = $czesci[5]==$cze[5];
$czee6 = $czesci[6]==$cze[6];
$czee7 = $czesci[7]==$cze[7];

$czek = $czee+$czee1+$czee2+$czee3+$czee4+$czee5+$czee6+$czee7;
$wie= "zw1";

$file="$wie.txt"; //plik z danymi
$tablica=file($file); //robie z pliku tablice
$ile=count($tablica); //licze ilość elementów w tablicy

for($i=0; $i<=$ile-1; $i++){
$czesc=explode("|^^^|", $tablica[$i]); //dziele linie w pliki na kawałki
if(ereg(($login),$czesc[0])){ //sprawdzam czy taki nic ni ejest juz zapisany
echo(" dane sa już zapisane");
exit;
}
}

$plik=fopen($file, "a"); // jak wszystko jest ok to zapisuje dane
flock($plik, 2);
fwrite($plik, "$login|^^^|$czekn"); // n- oznacza przejscie do następnej linii...
flock($plik, 3);
fclose($plik);
echo("WSZYSTKO JEST OK ");
}
}
closedir($katalog);

$i++;
endwhile;
?>[/php:1:d9d444166c]
piotrdd2
WIELKIE DZIEKI ZA POMOC, ODKRYŁEM DLA CZEGO POWIELA WIERSZE!!!!

trzeba było wstawić jeszcze substr( $login, 0, ( strlen($login) - 4 ) )
do funkcji która sprawdza czy dany login jest juz zapisany biggrin.gif biggrin.gif biggrin.gif
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.