Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt menu
Forum PHP.pl > Forum > Gotowe rozwiązania
Visual
Witam!
Jestem początkujący w php (aczkolwiek znam C++ i HTML tongue.gif). Mianowicie mam problem. Wymyśliłem sobie skrypt który z pliku bedzie wczytywal menu. Oto jego kodzik:
  1. <html>
  2. <?php
  3. $i=0;
  4. $wps = fopen (&#092;"$DOCUMENT_ROOT/kupa/menu.txt\", \"r\");
  5. $wp = file($wps);
  6. $linki = count($wp);
  7. if($linki==0)
  8. {
  9. echo &#092;"blad skryptu\";
  10. }
  11.  
  12. for($i=0; $i<$ilosc_zamowien; $i++)
  13. {
  14. $wiersz = explode(&#092;":\", $wp[$i]);
  15. echo '<a href=\"';
  16. echo $wiersz[$i+1];
  17. echo'\">';
  18. echo $wiersz[$i];
  19. echo'</a>';
  20. $i=+1;
  21. }
  22.  
  23. fclose($wps);
  24. ?>
  25. </html>


menu.txt zawiera treść:
Kod
cos:onet.pl
niecos:wp.pl
jajko:dwa_jajka


Plik wrzucam na 100webspace.com (cogia.net). Parser wypluwa taki error:
Kod
Warning: file() expects parameter 1 to be string, resource given in /home/www/visualpl.cogia.net/cosik.php on line 5

Pod spodem pojawia sie takze linia "blad skryptu" wiec zmienna $linki ma wartosc 0.
Wszelka pomoc będzie pomocna cool.gif Najlepiej jakbyscie mi wyjasnili co robie źle i jak lepiej zoptymalizować ten kod.

Pozdro happy.gif

---

tiraeth
mike
Funkcja file() przyjmuje jako parametr nazwę pliku a nie uchwyt do niego.
Visual
W mojej książce (php i MySQL Tworzenie Stron WWW Vademecum Profesjonalisty wyd.2) widze taki kawałek kodu:
Kod
$wp=fopen("DOCUMENT_ROOT/.../zamowienia/zamowienia.txt", 'r');
$tablicapliku=file($wp);

Więc w czym problem ? blink.gif

(to jest na stronie 83, jak ktos chce sprawdzić)
mike
smile.gif Też mam tą książkę i faktycznie się pomylili (sprawdziłem).

Jeżeli chcesz załadować plik do tablicy to robisz tak:
  1. <?php
  2.  
  3. $arrTablicaPliku = file( 'path/nazwa_plik.txt' );
  4. // .. coś tam dalej
  5.  
  6. ?>
Visual
A muszę przedtym otwierać plik ? (fopen etc. ?)
mike
Cytat(Visual @ 2005-08-06 16:23:54)
A muszę przedtym otwierać plik ? (fopen etc. ?)

Nie.

A propo Twojego kodu i jego optymalizacji:
  1. <?php
  2.  
  3. $arrTab = file( &#092;"$DOCUMENT_ROOT/kupa/menu.txt\" );
  4.  
  5. if( count( $arrTab ) <= 0 )
  6. {
  7. echo &#092;"Blad skryptu.\";
  8. }
  9.  
  10. foreach( $arrTab as $strValue )
  11. {
  12. $arrRow = explode( ':', $strValue );
  13. echo '<a href=\"' . $arrRow[ 1 ] . '\">' . $arrRow[ 0 ] . '</a>';
  14. echo '<br />';
  15. }
  16.  
  17. ?>
Visual
No dobra, problem rozwiązany, topic mozna zamknąć winksmiley.jpg
Gibcio
Przykład skryptu menu:
  1. <?php
  2. $menu="menu.txt";
  3. $panel=file($menu);
  4. $total=count($panel);
  5. for($ip=0; $total>$ip; $ip++)
  6. {
  7. $gp=split("|", chop($panel[$ip]));
  8. $mn=explode("||", $panel[$ip]);
  9. print("<a href=$mn[0]>$mn[1]</a><br>");
  10. }
  11. ?>


Plik menu.txt:

index.php||Strona główna||
admin.php||Administracja||
itp.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.