Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.06.07
Prihlásený: 23.10.08
Príspevky: 28
Témy: 5
Príspevok NapísalOffline : 29.08.2008 12:16

ahojte. chcel by som si napisat skript, co by vyhladaval subory na FTP serveroch.

a nejak ma nenapada ziaden rozumny sposob, ako by to mohlo fungovat. nejde mi tu teraz o nic konkretne, len nejaky vseobecny princip, pomocou akeho by to mohlo fungovat. mozno vas nieco napadne, co mna nie :rolleyes:


Offline

Užívateľ
Užívateľ
Vyhladavaci skript

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 29.08.2008 13:13

môžeš si spraviť script, podobný scriptu na výpis adresára, v ktorom nebudeš vypisovať mená všetkých súborov, ale iba tých, ktoré zodpovedajú zadaným kritériam :)







_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.06.07
Prihlásený: 23.10.08
Príspevky: 28
Témy: 5
Príspevok Napísal autor témyOffline : 29.08.2008 13:27

no to je jasne, lenze problem je v tom, ze taky FTP server ma x adresarov a x podadresarov a tie maju x podadresarov atd... :loony:

no a s tym ma problem, nejakym sposobom mu musim povedat, aby prehladaval vsetke adresare, podadresare atd. popri tom musi ukladat vsetke subory do nejakej premennej, aby som ich vedel porovnat na zhodnost s vyhladavanym retazcom :)

nejak neviem, ako na to...


Offline

Užívateľ
Užívateľ
Vyhladavaci skript

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 29.08.2008 13:39

buďto dáš do scriptu, kde všade má vyhľadávať, v akých adresároch, alebo to spravíš pomocou cyklu.. keď kontroluješ súbor, vieš zistiť, či je to adresár alebo súbor. ak je to adresaár, tak ho otvoríš a aj tam sa bude vykonávať cyklus, a ak aj v tom podadreasri je adresar, tak aj tam bude vyhľadávať. a tak ďalej a ďalej.

a na to ukaldanie máš tiež dve možnosti. môžeš ukladať hneď iba vyhovujúce súbory do pola, a potom ich vypíšeš, alebo tam uložiť všetky a potom odfiltrovať. a







_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 28.08.08
Prihlásený: 30.08.08
Príspevky: 4
Témy: 0
Príspevok NapísalOffline : 29.08.2008 15:53

povedal by som, ze jedine schodne riesenie je ukladat nazvy suborov do databazy a potom hladat v nej, tam je to bezproblemove. o co konkretne ide, ked chces hladat priamo vo filesysteme?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.06.07
Prihlásený: 23.10.08
Príspevky: 28
Témy: 5
Príspevok Napísal autor témyOffline : 29.08.2008 18:57

chcem spravit script, ktory bude vyhladavat subory a zlozky na FTP serveroch...


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 29.08.2008 20:53

Tak taký skript urob. :)

Stačí, ak si urobíš funkciu, ktorá bude mať ako parameter url toho ftp. Pomocou curl načítaš zoznam súborov a adresárov a postupne ich budeš spracovávať. Ak tam bude adresár, tak rekurzívne zavoláš tú funkciu a k url pridáš názov toho adresára (to spôsobí, že sa načíta obsah podadresára).


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.09.08
Prihlásený: 23.01.13
Príspevky: 81
Témy: 17
Príspevok NapísalOffline : 04.09.2008 10:04

ako sa da rozlisit zlozka od suboru na FTP serveri?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.09.08
Prihlásený: 13.09.08
Príspevky: 8
Témy: 0
Príspevok NapísalOffline : 04.09.2008 10:27

IS_DIR ... http://sk.php.net/is_dir


Offline

Užívateľ
Užívateľ
Vyhladavaci skript

Registrovaný: 10.02.07
Prihlásený: 14.08.09
Príspevky: 255
Témy: 27
Bydlisko: KE
Príspevok NapísalOffline : 04.09.2008 21:38

to sa da iba indexovanim do databazy, prip suboru..

prechadzas celu suborovu strukturu a ukladas cesty..







_________________
drahi hackeri! teraz mozete okamzite premazat cely tento server! stlacte skratku ALT+F13
Offline

Užívateľ
Užívateľ
Vyhladavaci skript

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 05.09.2008 13:47

prečo hovoríš, že IBA indexovaním do databázy? čítal si príspevky vyššie? dá sa to aj bez idexovania v DB.. keď to má v DB, je to síce praktické pri vyhľadávaní, ale vždy, keď pridá nejaký súbor na FTP, bude musieť spustiť ten skript, ktorý zapíše všetky súbory do DB (mimochodom, tento istý script môže použiť na vyhľadávanie po menších úpravach, čo je spomínané vyššie), alebo pridávať ručne do DB súbor, vždy jak ho upne na FTP. čo je zas moc nepraktické, ak uploaduje väčšie množstvo súborov.

takže si myslím, že tu je databáza zbytočná.. môj názor... :)







_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.06.07
Prihlásený: 23.10.08
Príspevky: 28
Témy: 5
Príspevok Napísal autor témyOffline : 22.09.2008 21:59

no uz asi viem, ako to spravim, len som narazil na dalsi problem a uz mi z toho asi sibe.

funkcia explode mi nejak nechce rozdelit retazec.

do premennej $files nacitavam obsah zlozky:
Kód:
$files = ftp_rawlist($ftp_conn, $akt_dir);


do premennej $row1 nacitavam prvy riadok zlozky:
Kód:
$row1 = $files[0];


nasledujuci kod:
Kód:
echo '$row1: '.$row1.'<br>';

mi vypise tento vysledok: $row1: drwxrwxr-x 8 ftpadm ftpadm 4096 Sep 7 22:53 .

takze v $row1 mam ulozeny 1 riadok obsahu zlozky

potom pomocou funkcie explode chcem rozdelit riadok $row1
Kód:
$split = explode(' ', $row1);


no a tu sa prejavuje ta chyba.

ak chcem vypisat prvu cast riadku:
Kód:
echo '$split[0]: '.$split[0].'<br>';

tak mi vypise: $split[0]: drwxrwxr-x

ale dalej to uz nejde a $split[1] mi vypisuje prazdny retazec :cry:

Kód:
echo '$split[1]: '.$split[1].'<br>';

$split[1]:


Offline

Skúsený užívateľ
Skúsený užívateľ
Vyhladavaci skript

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 22.09.2008 22:44

Skús tesne pred tým volaním funkcie explode takýto jemný debugovací kód:
Kód:
echo "<pre>".var_export($row1)."</pre>";

A povedz nám, čo ti vypíše...







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.06.07
Prihlásený: 23.10.08
Príspevky: 28
Témy: 5
Príspevok Napísal autor témyOffline : 23.09.2008 0:13

vypise mi to toto:

'drwxrwxr-x 8 ftpadm ftpadm 4096 Sep 7 22:53 .'

cize normalne riadok, ktory vypisat ma. len preco ho explode nevie rozdelit? davam snad zly rozdelovac?


EDIT: no prave som na to prisiel. presne tak, daval som zly rozdelovac.

$split = explode(' ', $row1); -zly zapis, lebo medzi uvodzovkami je medzera
$split = explode(' ', $row1); -dobry zapis, lebo tam je tab

diki za pomoc


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.06.07
Prihlásený: 23.10.08
Príspevky: 28
Témy: 5
Príspevok Napísal autor témyOffline : 22.10.2008 22:04

no uz som nieco napisal, no nechce mi to fungovat. nasiel by sa niekto, kto by mi poradil? :oops:

ide o to, ze mi nefunguje cyklus for na riadku 95. stale sa mi zacykli a do tabuliek mi vpisuje tie iste adresare. ak by bolo nieco nejasne, pytajte sa...

Kód:

<?php

  include ('functions.php');
 
  //vypocet, ako dlho bezal skript, cast 1/2
  $time_start = microtime_float();

  $identifier = get_identifier_value(23);
 
  //vygenerovanie identifikacneho retazca
  echo '<b>Search ID:</b> '.$identifier.'<br><br>';

 
  //vytvorenie tabulky v databaze pre konkretne hladanie
  $conn = new mysqli('localhost', 'xxxxx', 'xxxxxxx', 'ftpsearch');
 
  $table_dir = $identifier.'_dir';
  $table_fil = $identifier.'_fil';
  $table_temp = $identifier.'_temp';
 
  $query1 = "CREATE TABLE $table_fil
  (
  id INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY(id),
  name varchar(115),
  path varchar(115)
  )";
 
  $query2 = "CREATE TABLE $table_dir
  (
  id INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY(id),
  name varchar(115),
  path varchar(115)
  )";
 
  $query3 = "CREATE TABLE $table_temp
  (
  id INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY(id),
  name varchar(115),
  path varchar(115)
  )";
 

  //dotazy na databazu - vytvorenie tabuliek MySQL
  $result = $conn->query($query1);
  $result = $conn->query($query2);
  $result = $conn->query($query3);
 
  //pripojenie k FTP serveru
  //login data
  $ftp_server = "ftp.xxxxxxxx.sk";
  $ftp_user_name = "xxxxxxx";
  $ftp_user_pass = "xxxxxxx";
 
  //samotne pripojenie
  $ftp_conn = ftp_connect($ftp_server) or die("neviem sa pripojit na ftp_server");
 
  // login with username and password
  $login_result = ftp_login($ftp_conn, $ftp_user_name, $ftp_user_pass);
 
  $akt_dir = ftp_pwd($ftp_conn);
  $files = ftp_nlist($ftp_conn, $akt_dir);
  $cnt = count($files);
 
  for($i=0; $i<$cnt; $i++)
  {
  $row = $files[$i];
  $fin = str_replace ("/", "", $row);
  echo $fin;
  if(!is_dir($fin))
  {
  if(@ftp_chdir($ftp_conn, $fin) == true)
  {
    echo ' <u>toto je zlozka</u><br>';
    $akt_dir = ftp_pwd($ftp_conn);
    $query = "INSERT INTO $table_dir VALUES ('', '$row', '$akt_dir')";
    $result = $conn->query($query);
    $query = "INSERT INTO $table_temp VALUES ('', '$row', '$akt_dir')";
    $result = $conn->query($query);
   
    ftp_cdup($ftp_conn);
  }
  else
  {
    echo ' toto je <b>subor</b><br>';
    $akt_dir = ftp_pwd($ftp_conn);
    $query = "INSERT INTO $table_fil VALUES ('', '$row', '$akt_dir')";
    $result = $conn->query($query);
  }
  }
  }
 
  for (; ; )
    {
      $query4 = "select * from $table_temp";
      $result = $conn->query($query4);
      $temp_count = mysqli_num_rows($result);
     
      if ($temp_count == 0)
      {
        break;
      }
     
      echo '<br>pripravujem dotaz v cykle for...';
      $query5 = "select * from $table_temp limit 1";
      $result2 = $conn->query($query5);
     
      $row = mysqli_fetch_array($result2);
      echo '<br>***********************************<br>$row[0]: '.$row[0];
      echo '<br>$row[1]: '.$row[1];
      echo '<br>$row[2] '.$row[2].'<br>***********************************<br>';
      $akt_dir = ftp_pwd($ftp_conn);
      echo 'akt_dir = '.$akt_dir.'<br>';
      $cdnow = ftp_chdir($ftp_conn, $row[2]);
      $akt_dir = ftp_pwd($ftp_conn);
      echo 'akt_dir = '.$akt_dir.'<br>';
      $files = ftp_nlist($ftp_conn, $akt_dir);
      $cnt = count($files);
     
      for($i=0; $i<$cnt; $i++)
      {
        $row = $files[$i];
        $fin = str_replace ("/", "", $row);
        echo $fin;
        if(!is_dir($fin))
        {
          if(@ftp_chdir($ftp_conn, $fin) == true)
          {
            echo ' <u>toto je zlozka</u><br>';
            $akt_dir = ftp_pwd($ftp_conn);
            $query = "INSERT INTO $table_dir VALUES ('', '$fin', '$akt_dir')";
            $result = $conn->query($query);
            $query = "INSERT INTO $table_temp VALUES ('', '$fin', '$akt_dir')";
            $result = $conn->query($query);
   
            ftp_cdup($ftp_conn);
          }
          else
          {
            echo ' toto je <b>subor</b><br>';
            $akt_dir = ftp_pwd($ftp_conn);
            $query = "INSERT INTO $table_fil VALUES ('', '$fin', '$akt_dir')";
            $result = $conn->query($query);
          }
        }
      }

      $query = "DELETE from $table_temp where id = '$row[0]'";
      $result = $conn->query($query);
      echo '<br><br>Result: '.$result.'<br>';
    }
 
 
  //toto musi byt na spodku!
  //vypocet, ako dlho bezal skript, cast 2/2 
  $time_end = microtime_float();
  $time = $time_end - $time_start;

  echo "<br><br><b>Script time:</b> $time seconds\n";
?>





tu je functions.php

Kód:

<?php

  function get_identifier_value($numbercount)
    {
   
      for ($i = 0; $i < $numbercount; $i++)
        {
          $j = rand(0,1);
         
          if ($j == 0)
          {
            $cache = rand(0,9);
          }
          else
          {
            $cache = chr( ord("a") + rand(0, 25) );
          }       
       
          $number .= $cache;
         
         
       
        }
      return($number);
    }
 
 
 
  function microtime_float()
    {
      list($usec, $sec) = explode(" ", microtime());
      return ((float)$usec + (float)$sec);
    }

?>



Offline

Užívateľ
Užívateľ
Vyhladavaci skript

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 22.10.2008 22:14

PHP zaciatocnik píše:
$split = explode(' ', $row1); -zly zapis, lebo medzi uvodzovkami je medzera
$split = explode(' ', $row1); -dobry zapis, lebo tam je tab

toto je zaujimave, ja to s medzerou pouzivam uplne bezne a vzdy to islo.. akurat, ze davam " " miesto ' ' (typ uvodzoviek) ale to by nemal byt rozdiel...







_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Odpovedať na tému [ Príspevkov: 16 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Vyhľadavací robot

v PHP, ASP

8

640

21.10.2007 22:05

Bananslovak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Binarniy vyhladavaci strom [C]

v Assembler, C, C++, Pascal, Java

1

529

28.10.2014 18:18

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc s úpravou vo vyhľadávači

v Internetový marketing, SEO, reklama

1

552

21.11.2021 14:57

void Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Cookiebar text vo vyhladavaci Google

v HTML, XHTML, XML, CSS

2

395

12.10.2016 8:29

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pozicia vo vyhladavaci /google.sk/

v Internetový marketing, SEO, reklama

29

3342

06.12.2007 14:14

pa3ck Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vyhladavaci string heureka.sk pre Operu

v Sieťové a internetové programy

2

387

27.07.2012 16:56

mtxd Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pozicia vo vyhladavaci pre rozne prehliadace

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Internetový marketing, SEO, reklama

41

2821

22.06.2009 19:33

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako sa zobrazovat na mape vo vyhladavaci?

v Ostatné

1

381

19.06.2017 13:33

ado130 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Skript

v Ostatné

10

507

09.01.2014 18:38

fikaps Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. skript

[ Choď na stránku:Choď na stránku: 1, 2 ]

v HTML, XHTML, XML, CSS

35

1946

08.10.2009 23:08

sillyounguy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. skript

v PHP, ASP

10

1168

05.09.2006 20:25

programator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Download skript

v Redakčné systémy

4

904

19.12.2006 23:06

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zacykleny skript

v PHP, ASP

1

482

29.10.2007 20:07

qacer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. kalendar skript

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

30

2051

30.06.2008 14:06

dadmtb Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. countdown skript

v JavaScript, VBScript, Ajax

1

929

31.08.2007 17:26

KaktusBR Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP skript

v PHP, ASP

1

307

02.11.2012 14:05

MasterMatoSK Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra