Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Zmienne w ścieżce do pliku
Forum PHP.pl > Forum > Przedszkole
sytluk
Chcę zrobić coś takiego, że w jednym formularzu będę tworzył kategorię artykułów, a w drugim będę tworzył sam artykuł. Skrypt tworzenia kategorii polega na stworzeniu osobnego folderu dla każdej kategorii za pomocą funkcji mkdir.
Niestety mam inny problem. Podczas tworzenia artykułu wpisuję w osobnym polu nazwę kategorii. Chcę, aby artyluł który stworzyłem był zapisany w pliku .php i znajdował się w folderze kategorii. Oto skrypt:

  1. <?php
  2.  
  3. $tytul=$_REQUEST['tytul'];
  4. $nazwa=str_replace(" ","_","$tytul.php");
  5. $znaki=array(" " => "_", "ą" => "a", "ę" => "e", "ś" => "s", "ż" => "z",
  6.  "ź" => "z", "ć" => "c", "ń" => "n", "ó" => "o", "ł" => "l", 
  7. "&" => "and", "/" => "", "'" => "");
  8. $do_wpisu=strtr($tytul, $znaki);
  9. $tresc = $_REQUEST['tresc'];
  10. $kategoria = $_REQUEST["kategoria"];
  11. $folder =".artykuly.$kategoria.$nazwa";
  12.  
  13. if (!file_exists($folder)) {
  14. $plik=fopen(strtr($folder, $znaki),'w');
  15. flock($plik,2);
  16.  
  17. fputs($plik,'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'."n");
  18. fputs($plik,'<html>'."n");
  19. fputs($plik,'<head>'."n");
  20. fputs($plik,'<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">'."n");
  21. fputs($plik,'<meta http-equiv="Creation-date" content="2007-02-07T22:42:35Z">'."n");
  22. fputs($plik,'<LINK REL="stylesheet" HREF="style.css" TYPE="text/css">'."n");
  23. fputs($plik,'<title>'.$tytul.'</title>'."n");
  24. fputs($plik,'</head>'."n");
  25. fputs($plik,'<body>'."n");
  26. fputs($plik,'<?php'."n");
  27. fputs($plik,'include("funkcje.php");'."n");
  28. fputs($plik,'strona();'."n");
  29. fputs($plik,'?>'."n");
  30.  fputs($plik,'<h1>'.$tytul.'</h1>'."n");
  31. fputs($plik, $tresc. "n");
  32. fputs($plik,'<?php'."n");
  33. fputs($plik,'strona1(); '."n");
  34. fputs($plik,'?> '."n");
  35. fputs($plik,'</body>'."n");
  36. fputs($plik,'</html>'."n");
  37.  
  38.  flock($plik,3);
  39. fclose($plik);
  40.  
  41. echo('<font color="#339900"><b>&nbsp;Artykuł został dodany</b></font>');
  42. }
  43. else {
  44. echo('<font color="red">Plik o takiej nazwie już istnieje!</font>');
  45. }
  46.  
  47. ?>

Skrypt jest zły ponieważ nie tworzy pliku w folderze o nazwie kategorii którą podałem w formularzu. Problemem są zmienne które znajdują się w ścieżce do pliku w zmiennej $folder. Reszta kodu jest dobra. Czy ktoś z Was wie jak poprawnie napisać ścieżkę do pliku ze zmiennymi??


------------
do kodu php używaj BBCode php
a nie "code"
~Cienki1980
phpion
Moze zamien \ na / w sciezce.
PS: nie jest dobrym pomyslem wykonywanie fputs() X razy. Lepiej utworzyc sobie zmienna np. $fputs i dopiero na koncu wykonwac fputs($fputs, $plik). Bedzie to z pewnoscia wydajniejsze niz ciagle dopisywanie do pliku.
EDIT:
  1. <?php
  2. $folder =".artykuly.$kategoria.$nazwa";
  3. ?>

Rozumiem ze chodzilo ci o:
  1. <?php
  2. $folder ="./artykuly/".$kategoria."/".$nazwa;
  3. ?>

Ponadto:
  1. <?php
  2. $nazwa=str_replace(" ","_","$tytul.php");
  3. ?>

chyba chodzilo ci o:
  1. <?php
  2. $nazwa=str_replace(" ","_", $tytul);
  3. $tytul .= '.php';
  4. ?>
sytluk
A moze da sie zrobic jakis skrypt ktory otworzy ten folder i zapisze do niego plik. Koniecznie muszą byćtam zmienne, ponieważ pliki będą zapisywane do folderu podanego w formularzu
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-2025 Invision Power Services, Inc.