Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> opendir() + udział sieciowy Windows
EraserHead
post 25.01.2005, 22:11:58
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.11.2004

Ostrzeżenie: (0%)
-----


Cześć.
Może ktoś z was uporał się z następującym problemem:

Chcę wyświetlić zawartość udostępnionego folderu Windows, np:

Kod
<?php
$dir = "\\host\share";

if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {
           echo "filename: $file : filetype: " . filetype($dir . $file) . "<br>";
       }
       closedir($dh);
   }
}
?>


Podany przykład działa pięknie z lokalnymi katalogami serwera, ale ze zdalnymi udziałami nie zamierza.
Dodam jeszcze, że:
1. sprawdziłem uprawnienia udziału, oraz uprawnienia NTFS: grupa Wszyscy ma pełne prawa
2. $dir = "\\host\share" - próbowałem wszystkich kombinacji slaszologii: //host/share, \\\\host\\share, ////host/share itp. i nic.

Jakieś pomysły? Z góry dzięki.
Go to the top of the page
+Quote Post
crash
post 25.01.2005, 22:35:11
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Powinno działać, chociaż za wiele o tym w manualu nie wspominają. Spróbowałem katalogu: file://host/zasób/ to dostałem dokładniejsze info: remote host file access not supported... Jedyną rade jaką mogę dać to mapuj ten zasób jako dysk sieciowy...


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 25.01.2005, 22:35:45
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Ja znalazłem 4 przykłady, pewnie nie chciało się szukać?
  1. ?<?php
  2. if($d = opendir('./'))
  3. {
  4. while($f = readdir($d))
  5. {
  6. if(substr($f, -4) == 'html')
  7. {
  8. echo '<a href=\"./'.$f.'\">'.$f.'</a><br/>';
  9. }
  10. }
  11. closedir($d);
  12. }
  13. ?>
  1. <?php
  2. if($d = opendir('./'))
  3. {
  4. while($f = readdir($d))
  5. {
  6. if(substr($f, -4) == 'html')
  7. {
  8. $str = array(&#092;".htm\", \".html\");
  9. $g = str_replace($str, &#092;"\", $f);
  10. echo '<a href=\"./'.$f.'\">'.$g.'</a><br/>';
  11. }
  12. }
  13. closedir($d);
  14. }
  15. ?>
  1. <?php
  2.  
  3. class ExtensionFilter extends FilterIterator
  4. {
  5. protected $strExtension = '';
  6.  
  7. public function __construct( Iterator $objIterator, $strExtension )
  8. {
  9. parent::__construct( $objIterator );
  10. $this->strExtension = $strExtension;
  11. }
  12.  
  13. public function accept()
  14. {
  15. return ( strtolower( end( explode( '.', $this->current() ) ) ) === $this->strExtension );
  16. }
  17. }
  18.  
  19. ?>
  1. <?php
  2.  
  3. foreach( new ExtensionFilter( new DirectoryIterator( './' ), 'html' ) as $objFile )
  4. {
  5. echo '<a href=\"' . $objFile->GetPathname() . '\">' . $objFile . '</a><br>';
  6. }
  7.  
  8. ?>

czyli czytanie zawartości katalogu...


--------------------
Go to the top of the page
+Quote Post
EraserHead
post 26.01.2005, 10:45:39
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 29.11.2004

Ostrzeżenie: (0%)
-----


[crashu]: niestety mapowanie też nic nie daje.

[Kshyhoo]: cóż - co do ostatniego posta to powiem że chciało mi się szukać i takich przykładów znalazłem sporo, tylko jak wspomniałem nie działają z udziałami sieciowymi.
Go to the top of the page
+Quote Post
crash
post 26.01.2005, 14:03:14
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


No niestety na zmapowanym dysku też nie chce działać (dopiero teraz sprawdziłem)... Zostaje chyba tylko czekać aż ekipa php napisze wrapper do obsługi tego... Możesz jeszcze spróbować z http://freshmeat.net/projects/smbwebclient/, ale to już wymaga bardziej Unix'a...


--------------------
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 Wersja Lo-Fi Aktualny czas: 24.06.2025 - 20:59