Cześć,
Ostatnio pytałem o ffmpeg i rozwiązałem problem z waszą pomocą.
Dziś chciałbym zrobić listowanie katalogu, w którym jest skrót filmu kilka sekund. Nazwa plików to id z bazy danych, mam listowanie ale nie wiem jak pobrać ścieżkę dostępu gdzie znajduje się film i później zrobić update bazy danych.
$dir = 'filmy'; $dh = http://www.php.net/opendir($dir); while (false !== ($fileName = http://www.php.net/readdir($dh))) { $ext = http://www.php.net/substr($fileName, http://www.php.net/strrpos($fileName, '.') + 1); if(http://www.php.net/in_array($ext, http://www.php.net/array("mp4"))) $files1= $fileName; http://www.php.net/echo" $files1</br>";
$dir = 'filmy'; $dh = http://www.php.net/opendir($dir); while (false !== ($fileName = http://www.php.net/readdir($dh))) { $ext = http://www.php.net/substr($fileName, http://www.php.net/strrpos($fileName, '.') + 1); if(http://www.php.net/in_array($ext, http://www.php.net/array("mp4"))) $files1= $fileName; http://www.php.net/echo" $files1</br>";
<?php $ca = http://www.php.net/dir('filmy'); $ro = '.mp4'; $tab = http://www.php.net/array(); while((false!==($pl=$ca->read()))) { if($pl!="."&&$pl!="..") { if(http://www.php.net/substr($pl,-http://www.php.net/strlen($ro))==$ro) { $tab[] = $pl; }; }; }; while(list(,$val) = http://www.php.net/each($tab)) { http://www.php.net/echo 'adres/katalog/' . $val . '<br>'; } ?>
foreach (http://www.php.net/glob("filmy/*.mp4") as $filename) { http://www.php.net/echo $filename; }
Dziękuję za pomoc, przepraszam że dopiero teraz ale wcześniej nie miałem czasu.
Problem w tym że nie wiem jak przypisać pętle do zmiennej
$rest = http://www.php.net/substr($pl, 0, -4); // zwraca nazwe pliku bez rozszerzenia foreach (http://www.php.net/glob("filmy/*.mp4") as $filename) { http://www.php.net/echo $filename; }
SELECT * FROM baza WHERE OCTET_LENGTH(tag) == 0
patrz moj przyklad.
$tab;
$files = http://www.php.net/glob("filmy/*.mp4"); http://www.php.net/array_walk($files, function (&$item) { $item = http://www.php.net/pathinfo($item, PATHINFO_FILENAME); }); http://www.php.net/var_dump($files);
$tab;
$files = http://www.php.net/glob("filmy/*.mp4"); http://www.php.net/array_walk($files, function (&$item) { $item = http://www.php.net/pathinfo($item, PATHINFO_FILENAME); }); http://www.php.net/var_dump($files);
Przepraszam może jeszcze raz od początku.
Dałeś przykład że moża użyć tablicy array jako zapytania dodającego rekord do bazy. Wszystko fajnie ale czy mógłbym prosić o inny przykład lub kawałek kodu, jak ma wyglądać kod? bo z tego linka
średnio rozumiem jak to zrobić.
Obecnie tak wygląda moja tablica.
http://www.php.net/array ( [0] => 1031fa769bd163249a55c53f894edadd.mp4 [1] => 38a199f634e3618042da9468256bffa1.mp4 [2] => 3ca18948d15b7f0530d5b78511885778.mp4 [3] => 4843634a4f99f3bef247c89c6ca58be9.mp4 [4] => 6d6f24a34dcdf70e3126c138a39bc064.mp4 [5] => 74cc24692dac38f0730b81df49c32980.mp4 [6] => 75735a9f3c2c84776603c389ddd1dee5.mp4 [7] => 82651b85cbff6833bc3c40bed59787a4.mp4 [8] => 865b93d1f1d2273dd9d9bc05a7426410.mp4 [9] => 91f0e89ee468989e321895caa0b78bc2.mp4 [10] => ad1ff05c60d55e3f72341d40cfcb545e.mp4 [11] => cf668c61fb4c1196a31b69f823492a00.mp4 [12] => d7b6748d54ab1c3ee0b5afb035c029a5.mp4 [13] => eccecd0522d2b978003e00c0b0120134.mp4 )
Jesli nie radzisz sobie z tym to moze to:
Zrobic to mozna przy pomocy pętli.
https://www.sitepoint.com/community/t/insert-array-into-database/1773
lub
https://stackoverflow.com/questions/54043173/insert-array-values-into-mysql-through-loop
Mam nadzieje ze teraz zrozumiesz
$data = http://www.php.net/array(); foreach($tab as $team) $data[] = "" . http://www.php.net/addslashes($team) . ""; $data = http://www.php.net/implode("," , $data); for($test = 0; $test <= 7; $test++) { $conn = mysqli_connect('localhost', 'root', '', 'test') or http://www.php.net/die('Error connecting to mysql'); $zapytanie=mysqli_query($conn, "UPDATE `baza` SET `tag`='test/$data' WHERE id='$rest'"); mysqli_close($conn); }
A po co to addslashes robisz? W moim przykładzie na array_walk też możesz robić od razu insert.
<?php $tab = http://www.php.net/array( 'jeden', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć', 'siedem', 'osiem', 'dziewięć', 'dziesięć' ); $t = http://www.php.net/array(); foreach($tab as $k) { $t[] = $k . ','; } $x = ''; for($i=0; $i<count($t); $i++) { $x .= $t[$i]; } http://www.php.net/echo http://www.php.net/substr($x, 0, -1); ?>
czy zapytaniu ma być $rest czy $test?
@dublinka jak rozumiem miales na mysli:
polaczenie do bazy ma byc jedno a nie w petli
tylko po grzyba kasowac posta? Zawieral dobra rade tylko cie sie jezyk zaplatal...
$data = http://www.php.net/array(); foreach($tab as $team) $data[] = "" . http://www.php.net/addslashes($team) . ""; $data = http://www.php.net/implode("," , $data); for($test = 0; $test <= 7; $test++) { $conn = mysqli_connect('localhost', 'root', '', 'test') or http://www.php.net/die('Error connecting to mysql'); $zapytanie=mysqli_query($conn, "UPDATE `baza` SET `tag`='test/$data' WHERE id='$rest'"); mysqli_close($conn); }
Uprościłem kod do minimum
<?php include ('db/connection.php'); $katalog = 'test'; $ca = http://www.php.net/dir(''.$katalog.'/'); foreach (http://www.php.net/glob("$katalog/*.mp4") as $filename) { http://www.php.net/echo $filename; } while((false!==($plik=$ca->read()))) { if (($plik != '.') AND ($plik != '..')) { $file = http://www.php.net/pathinfo ($plik); # echo $file['filename'] . '<br />'; } } $data = http://www.php.net/array(); foreach($file as $team) $data[] = "" . http://www.php.net/addslashes($team) . ""; $data = http://www.php.net/implode("," , $data); $data = http://www.php.net/array(); foreach($file as $team) $data[] = "" . http://www.php.net/addslashes($team) . ""; $data = http://www.php.net/implode("," , $data); $conn = mysqli_connect('localhost', 'root', '', 'test') or http://www.php.net/die('Error connecting to mysql'); $zapytanie=mysqli_query($conn, "UPDATE `baza` SET `tag`='test/$filename' WHERE id='$data'"); ?>
$files = http://www.php.net/glob("$katalog/*.mp4"); http://www.php.net/array_walk($files, function ($item) { $id = http://www.php.net/pathinfo($item, PATHINFO_FILENAME); $query = http://www.php.net/sprintf('UPDATE `baza` SET `tag`= \'%s\' WHERE id=%d', $item, $id); mysqli_query($conn, $query); });
$files = http://www.php.net/glob("$katalog/*.mp4"); http://www.php.net/array_walk($files, function ($item) { $id = http://www.php.net/pathinfo($item, PATHINFO_FILENAME); $query = http://www.php.net/sprintf('UPDATE `baza` SET `tag`= \'%s\' WHERE id=%d', $item, $id); mysqli_query($conn, $query); });
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)