[ 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 | 5
NapísalOffline : 29.08.2008 12:16 | Vyhladavaci skript

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ý: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 29.08.2008 13:13 | Vyhladavaci skript

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 | 5
Napísal autor témyOffline : 29.08.2008 13:27 | Vyhladavaci skript

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ý: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 29.08.2008 13:39 | Vyhladavaci skript

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 | 0
NapísalOffline : 29.08.2008 15:53 | Vyhladavaci skript

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 | 5
Napísal autor témyOffline : 29.08.2008 18:57 | Vyhladavaci skript

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: 1719
Témy: 0 | 0
NapísalOffline : 29.08.2008 20:53 | Vyhladavaci skript

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 | 17
NapísalOffline : 04.09.2008 10:04 | Vyhladavaci skript

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 | 0
NapísalOffline : 04.09.2008 10:27 | Vyhladavaci skript

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 | 27
Bydlisko: KE
NapísalOffline : 04.09.2008 21:38 | Vyhladavaci skript

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ý: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 05.09.2008 13:47 | Vyhladavaci skript

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 | 5
Napísal autor témyOffline : 22.09.2008 21:59 | Vyhladavaci skript

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: 1772
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 22.09.2008 22:44 | Vyhladavaci skript

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 | 5
Napísal autor témyOffline : 23.09.2008 0:13 | Vyhladavaci skript

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 | 5
Napísal autor témyOffline : 22.10.2008 22:04 | Vyhladavaci skript

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: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 22.10.2008 22:14 | Vyhladavaci skript

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ď
 [ Príspevkov: 16 ] 


Vyhladavaci skript



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

375

21.10.2007 22:05

Bananslovak

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

Binarniy vyhladavaci strom [C]

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

1

229

28.10.2014 18:18

BX

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

Cookiebar text vo vyhladavaci Google

v HTML, XHTML, XML, CSS

2

145

12.10.2016 8:29

neopagan

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

pozicia vo vyhladavaci /google.sk/

v Internetový marketing, SEO, reklama

29

2895

06.12.2007 14:14

pa3ck

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

210

27.07.2012 16:56

mtxd

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

2288

22.06.2009 19:33

Tominator

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

Ako sa zobrazovat na mape vo vyhladavaci?

v Ostatné

1

83

19.06.2017 13:33

ado130

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

skript

v PHP, ASP

10

891

05.09.2006 20:25

programator

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

Skript

v Ostatné

10

199

09.01.2014 18:38

fikaps

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

1526

08.10.2009 23:08

sillyounguy

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

Nepripustny skript

v PHP, ASP

15

551

09.03.2008 18:23

djsulo

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

Download skript

v Redakčné systémy

4

573

19.12.2006 23:06

JanoF

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

zacykleny skript

v PHP, ASP

1

291

29.10.2007 20:07

qacer

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

1487

30.06.2008 14:06

dadmtb

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

countdown skript

v JavaScript, VBScript, Ajax

1

628

31.08.2007 17:26

KaktusBR

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

PHP skript

v PHP, ASP

1

131

02.11.2012 14:05

MasterMatoSK



© 2005 - 2017 PCforum, edited by JanoF