Wątek przeniesiony 2016-01-31 19:53 z PHP przez dzek69.

php poprawa kodu do kamerki zapisującej na ftp

0

Witam, na wstępie zaznaczę, że jestem kompletnie zielony w php. Mam kamerkę ip która wrzuca pliki co kilkadziesiąt sekund na darmowy serwer ftp do głównego katalogu. Udało mi się przeszukując internet poskładać skrypt, który pokazuje mi ostatnie 4 zdjęcia ($limit = $no_pictures-3; //chyba pętla) wraz z ich nazwami, odświeża się co 20 sekund (co tyle ustawiłem wysyłanie pliku z kamerki), i drugi skrypt który kasuje pliki jpg starsze niż godzina. Wszystko działa, ale chciałbym móc wpisać ile najnowszych zdjęć ma być wyświetlonych (trzeba chyba jakoś dodać zmienną którą będzie można wprowadzić), i móc zaznaczyć, czy strona ma się sama odświeżać. Wklejam to, co udało mi się poskładać, o dziwo działa:

 

<html> 
<head> 
  <meta content="text/html; charset=ISO-8859-2" 
http-equiv="content-type"> 
  <title></title> 
</head> 
<body> 
<BR> 
<?PHP 
header('refresh: 20;'); 
$pictures = glob("./*.jpg"); 
$no_pictures = count($pictures)-1;  // was missing ; 
$limit = $no_pictures-3;            // was missing ; 
for( $i = $no_pictures; $i >= $limit; $i--){  // removed ; after $i-- 
echo ".$pictures[$i]."; 
echo "<BR>"; 
echo "<img src=\"".$pictures[$i]."\" />\n"; 
echo "<BR>"; 

}  
?> 

<?PHP 

//definiujemy katalog z którego chcemy usunąć pliki 
$dir = "./"; 

//pobieramy liste plików 
//jeśli chcesz usunąć wyłącznie pliki w jednym formacie zamiast * użyj np. *.jpg etc... 
foreach (glob($dir."*.jpg") as $file) { 

//usuwamy pliki starsze niż 24 godziny 
if (filemtime($file) <= strtotime('-1 hours')) { 

//możemy również użyć czasu w sekundach 86400 sekund to 24 godziny 
//if(filemtime($file) < time() - 86400) 

unlink($file); 
} 
} 

?> 
</body> 
</html> 



0

$_GET lub $_POST :)

0

Dzięki, liczbę pętli mogę już ustawić, ale nie umiem tego odświeżania włączyć lub wyłączyć.


<html> 
<head> 
  <meta content="text/html; charset=ISO-8859-2" 
http-equiv="content-type"> 
  <title></title> 
</head> 
<body> 

<form action="start.php" method="get">
  Podaj liczbe obrazkow: <input type="text" name="liczba" />
  <input type="submit" value="Wyslij" /><br />
  Podaj czas odswiezania: <input type="text" name="czas" />
  <input type="submit" value="Wyslij" /><br />

</form>
<BR> 

<?PHP 
header('refresh:$_GET['czas']'); 
$pictures = glob("./*.jpg"); 
$no_pictures = count($pictures)-1;  // was missing ; 
$limit = $no_pictures-$_GET['liczba'];;            // was missing ; 
for( $i = $no_pictures; $i >= $limit; $i--){  // removed ; after $i-- 
echo "$pictures[$i]"; 
echo "<BR>"; 
echo "<img src=\"".$pictures[$i]."\" />\n"; 
echo "<BR>"; 
 
}  
?> 
 
<?PHP 
 
//definiujemy katalog z którego chcemy usunąć pliki 
$dir = "./"; 
 
//pobieramy liste plików 
//jeśli chcesz usunąć wyłącznie pliki w jednym formacie zamiast * użyj np. *.jpg etc... 
foreach (glob($dir."*.jpg") as $file) { 
 
//usuwamy pliki starsze niż 24 godziny 
if (filemtime($file) <= strtotime('-12 hours')) { 
 
//możemy również użyć czasu w sekundach 86400 sekund to 24 godziny 
//if(filemtime($file) < time() - 86400) 
 
unlink($file); 
} 
} 
 
?> 
</body> 
</html> 

 

i mam Parse error: syntax error, unexpected T_STRING in /start.php on line 19

czyli w

header('refresh:$_GET['czas']'); 
0
header('refresh: '.$_GET['czas']); 
0

Wszystko już mi działa, bardzo dziękuję za pomoc, a teraz pytanie z innej beczki. Jak nie będę regularnie wchodził na tę stronę, to przestanie mi się czyścić katalog z tymi zdjęciami. Czy jeżeli wyjmę ten skrypt do czyszczenia:

 <?PHP 
 
//definiujemy katalog z którego chcemy usunąć pliki 
$dir = "./"; 
 
//pobieramy liste plików 
//jeśli chcesz usunąć wyłącznie pliki w jednym formacie zamiast * użyj np. *.jpg etc... 
foreach (glob($dir."*.jpg") as $file) { 
 
//usuwamy pliki starsze niż 24 godziny 
if (filemtime($file) <= strtotime('-12 hours')) { 
 
//możemy również użyć czasu w sekundach 86400 sekund to 24 godziny 
//if(filemtime($file) < time() - 86400) 
 
unlink($file); 
} 
} 
 
?> 

i zapiszę go jako np czysc.php to mi wyczyści jak go odpalę niepotrzebne pliki? Czytam, że istnieje coś takiego jak crone, ale na darmowym koncie w serwisie gdzie korzystam podobno tego nie ma. Czy istnieje jakiś darmowy godny polecenia serwis który mi zdalnie odpali ten skrypt? Chodzi mi o wykonanie 2 akcji raz na dobę, bo 2 kamerki tak chciałbym czyścić.

0

Na pytanie wyżej znalazłem już odpowiedź, mam jeszcze pytanie odnośnie kodu php.

Chciałbym jednak to zrobić na jednym serwerze ftp, a nie na 2, żebym w jednej karcie na komórce widział co się dzieje. Jak z tego jednego skryptu zrobić 2, żeby jeden wyszukiwał najnowsze pliki o nazwie abc*.jpg a drugi xyz*.jpg? abc i xyz to w moim przypadku numery seryjne kamerek. Natomiast w miejscu gwiazdki jest data w formacie 20160201210920_9. Jak obie kamerki ładują pliki na jeden serwer, to skrypt pokazuje mi pliki tylko z jednej kamerki.

<?PHP 
header('refresh:$_GET['czas']'); 
$pictures = glob("./*.jpg"); 
$no_pictures = count($pictures)-1;  // was missing ; 
$limit = $no_pictures-$_GET['liczba'];;            // was missing ; 
for( $i = $no_pictures; $i >= $limit; $i--){  // removed ; after $i-- 
echo "$pictures[$i]"; 
echo "<BR>"; 
echo "<img src=\"".$pictures[$i]."\" />\n"; 
echo "<BR>"; 
 
}  
?>  

1 użytkowników online, w tym zalogowanych: 0, gości: 1