Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Kopiowanie plikow
Wolfie
post
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam

Zrobilem sobie taka funkcje do kopiowania plikow :

  1. public function copyFiles($dir,$filename) {
  2. $array = file($filename);
  3. if (is_dir($dir)) {
  4. if ($handle = opendir($dir)) {
  5. while (($file = readdir($handle)) !== false) {
  6. if($file!='..' and $file!='.') {
  7. //foreach($array as $val) {
  8. for($i=0; $i<10; $i++) {
  9. if($file == $array[$i]) {
  10. copy($file, 'MySpamIndex/'.$file);
  11. }
  12. }
  13. }
  14. }
  15. closedir($handle);
  16. }
  17. }
  18. }


gdzie $dir , to jest sciezka do katalogu ktory zawiera pliki do skopiowania, a $filename to jest nazwa pliku ktory zawiera nazwy plikow ktore powinny zostac skopiowane.

No i teraz jesli nazwa pliku jest taka sama jak nazwa zmiennej pochodzącej z pliku tekstowego to kopiuj plik od danej nazwie do innego katalogu , czyli :
  1. if($file == $array[$i]) {
  2. copy($file, 'MySpamIndex/'.$file);
  3. }


No ale pozniej zagladam do tego katalogu a tam pusto.....napewno jakies nazwy plikow sie pokrywaja......
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Zakladajac ze nazwy plikow w pliku podanym jako argument masz w takiej postaci:

Cytat
plik.txt

plik2.txt

plik3.txt


  1.  
  2. if($file!='..' and $file!='.') {
  3. //foreach($array as $val) {
  4.   foreach($array as $line) {
  5.   if($file == $line) {
  6.  
  7. if(file_exists('MySpamIndex/'.$file)) unlink('MySpamIndex/'.$file);
  8. copy($file, 'MySpamIndex/'.$file);
  9. }
  10. }
  11. }
  12.  
  13.  
  14.  
  15.  
  16.  


Dlaczego for() z 10 loop?

W pliku masz tylko 10 nazw plikow do skopiowania?Co jesli bedzie ich wiecej, chyba ze jest to stala liczba.




Ale i tak nie rozumiem jak ma dzialac ten kod, ma wczytac nazwy plikow z jakies pliku potem wczytac wszystkie pliki z danego katalogu porownac nazwy z pliku z tymi z tych katalogow i jesli sa takie same skopiowac plik?






--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Wolfie
post
Post #3





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


dokladnie tak wlasnie ma dzialac ten kod,

petla for ma 10 tylko dla celow testowych, normalnie jak widzisz jest foreach, zas array ma 75 tys plikow, wiec nie bede testowal na wszystkich plikach przeciez,

Problem rozwiazalem, funkcja file() pobierala z pliku nazwy razem z niewidocznyn znakiem "\n", napisalem wlasna funkcje :

  1. public function getFilenameArray($filename) {
  2. $array = explode("\n", file_get_contents($filename));
  3. return $array;
  4. }


I teraz wszystko smiga smile.gif
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Zamiast pisac wlasna funkcje trzeba bylo za pomoca str_replace() zamienic znaki nowej lini na puste znaki ale to i tak nie ma znaczenia grunt ze dziala.


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 12:30