Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] nazwa pliku jako cyfra
Forum PHP.pl > Forum > Przedszkole
lukas22333
Aktualnie mam skrypt ktory po zczytaniu danych z formularza zapisuje je jako plik .php ktory nosi nazwe taka jaka zostanie wprowadzona w jednej rubryce formularza
CODE

<?
$file="$news_title.php";
if(file_exists($file)) { }else{$file2=fopen($file, "w"); fclose($file2); }
?>
, teraz chcialbym zmienic to aby nowopowstaly plik zapisywal sie jako kolejna liczba, np 1.php, 2.php. Jak mialby wygladac przykladowy skrypt?
sticker
1. pobierz dane z katalogu posortowane pod nazwie pliku
2. wez ostatni w kolejności
3. pobierz nazwe
4. pobierz string bez rozszerzenia
5. zinkrementuj otrzymany wynik
6. zapisz nowy plik używając wygenerowanego numer

dir" title="Zobacz w manualu PHP" target="_manual substr" title="Zobacz w manualu PHP" target="_manual file" title="Zobacz w manualu PHP" target="_manual
lukas22333
a moglbym prosic o jakis przykladowy kod?
CrazyProgrammer
Cytat(lukas22333 @ 5.01.2008, 18:04:03 ) *
a moglbym prosic o jakis przykladowy kod?


Proszę bardzo...

Kod
<?php
$twoj_katalog = "./";  // twój katalog
$zawartosc_do_zapisania = "testowe dane w pliku";
// Jeśli katalog istnieje - odczytujemy dane...
if ($op = opendir($twoj_katalog)) {
    while (false !== ($file = readdir($op))) {
        if ($file != "." && $file != ".." && is_file($file))
            { $exist_file[]=$file;
        }
    }
    closedir($op);
}
// jeśli w katalogu nie ma żadnego pliku - żeby uniknąć błedu...
// ustalamy pustą zmienną dla $exist_file
// i wtedy nie bedzie problemu, dla natsort i foreach
// mozna stosować wyciszenie @ - tylko po co :D
if (!is_array($exist_file)){$exist_file[0]="0.php";}
// sortujemy liczby w naturalnej kolejności 1,2,3....10,11
natsort($exist_file);
// wyodrebniamy poszczególne numery plików...
foreach ($exist_file as $no)
{
    // jezeli w katalogu są tez inne pliki - wyodrębniamy tylko numeryczne nazwy
    // z rozszerzeniem .php
if (is_numeric(substr($no,0,-3)) && substr($no,-4)==".php"){$num = substr($no,0,-4);}
}
// dodajemy 1 do nazwy nowego pliku     - lub tworzymy pierwszy plik eg. 0.php +1 => 1.php
$nazwa = ($num+1).".php";


// wyświetla nazwe - w celu sprawdzenia kodu
// ale dostosuj do swoich potrzeb :D

$file2=fopen($nazwa, "w");
fputs($file2, $zawartosc_do_zapisania);
fclose($file2);
?>





----------------------------- EDIT -------------------------------------
Można było skrypt napisać krócej, ale chodziło mi o to,
żeby przedstawić krok po kroku ideę działania skryptu
Zaletą też jest że w tym katalogu można trzymać inne pliki
(nienumerycznie nazywane) np. fotki lub pliki php o nazwach
zawierających litery lub litery i cyfry.

Pozdrawiam, mam nadzieję,że się przyda biggrin.gif
lukas22333
Super!, wszystko działa tak jak powinno yahoo.gif yahoo.gif Dzieki wielkie.
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.