Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z funkcją opendir...
marconni
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 25.02.2008

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


Witam wszystkich,
Mam problem, jestem oczywiście początkującym koderem i próbuje napisać skrypt który by wczytywał wszystkie pliki z danego folderu do bazy danych mysql, pliki zawierają teksty piosenek, chodzi mi o to aby skrypt dodawał wszystkie pliki z folderu do bazy danych wraz z nazwa wykonawcy piosenki i tytulem, kazdy plik zawiera w pierwszej linijce wykonawce , w drugiej linijce tytul piosenki pozniej spacje a następnie tekst piosenki, o to kod i błąd jaki mi się wyświetla
[b]Warning: opendir(http://localhost/~piosenki/piosenki) [function.opendir]: failed to open dir: not implemented in C:\Program Files\WebServ\httpd-users\piosenki\plikizfolderu.inc.php on line 10

Warning: readdir(): supplied argument is not a valid Directory resource in C:\Program Files\WebServ\httpd-users\piosenki\plikizfolderu.inc.php on line 12

Warning: closedir(): supplied argument is not a valid Directory resource in C:\Program Files\WebServ\httpd-users\piosenki\plikizfolderu.inc.php on line 17[/b] i kod funkcji plikizfolderu:
Kod
<?php
function plikizfolderu ($folder,$rozszerzenia){
$katalog = opendir($folder);
$plikiwynikowe = array();
while ($kolejnyplik = readdir($katalog))
{
if (is_file($folder."/".$kolejnyplik) && ereg($rozszerzenia,$kolejnyplik)) // co z tym znakiem / jest nie tak
  $plikiwynikowe[]=$kolejnyplik; // w tej linii tez z tym []
}
closedir($katalog);
sort($plikiwynikowe);
return $plikiwynikowe;
}
?>
</b></div><div><b>

i kod programu głównego:
Kod
</b></div><?php
include_once ("plikizfolderu.inc.php");
$folder='http://localhost/~piosenki/piosenki';
$pliki= plikizfolderu ($folder,'\.txt );
$tmpcount = count($pliki);

for ($i=0; $i< $tmpcount; $i++) {
$fd= fopen ('$pliki[$i]', 'r');
$contents = strtoupper (fread($fd, filesize('$pliki[$i]')));
fclose ($fd);
$piosenka= file('$pliki[$i]');
$piosenka[0]= mysql_escape_string (trim ('piosenka[0]'));
$piosenka[1]= mysql_escape_string (trim ('piosenka[1]'));
$contents= mysql_escape_string (trim ($contents));

mysql_connect ("localhost","root","") or die (mysql_error());
mysql_select_db ("twojepiosenki") or die (mysql_error());
mysql_query ("INSERT INTO piosenki (wykonawca, tytul, tekst) VALUES ($piosenka[0], $piosenka[1], $contents)");
}
?>
<div><b>


Proszę Was o pomoc:-) już sam nie wiem co mam w tym kodzie poprawić
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
em1X
post
Post #2





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


Folder musi być po stronie lokalnej, a nie otwierany zdalnie:

  1. <?php
  2. $folder='http://localhost/~piosenki/piosenki';
  3.  $pliki= plikizfolderu ($folder,.txt );
  4. ?>


(do kodu php używaj znaczników [php])

Ten post edytował em1X 25.02.2008, 21:40:35
Go to the top of the page
+Quote Post
nevt
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


tu masz błąd
  1. <?php
  2. $folder='http://localhost/~piosenki/piosenki';
  3. ?>

jako ścieżkę ustawiasz odwołanie http:// a powinno być file:// - poza tym twój serwer w ogóle może nie pozwalać na odwołania typu url więc najbezpieczniej jest użyć ścieżek względem pliku .php:
  1. <?php
  2. $folder='file://localhost/~piosenki/piosenki';
  3.  //albo
  4. $folder='./~piosenki/piosenki';
  5. // o ile twój plik php jest w doc_root serwera....
  6. ?>

powodzenia

Ten post edytował nevt 25.02.2008, 21:46:48
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 15.09.2025 - 09:54