Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Активные темы » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код, который я пытаюсь разрабатывать в действительности, мне не нужно видеть видеоплеер
Мне нужно проверить, присутствуют ли видео в папке или переименованы с другим именем
Я пытался с "file_exists", fopen и file_get_contents
Но это не работает
Я не могу написать код традиционным способом, потому что они находятся в «Ajax Server Side»
Я должен написать все в «Array»
Это новая техника для меня, мощная, потому что есть много данных (4 миллиона), и я не хочу загружать их все сразу, потому что он замедляет загрузку
 
 
 
Добавлено:
Решено с file_exists
Путь был неверным

Цитата:
../../trailer/

Спасибо, в любом случае
 
 

Код:
 
 
$sub_array[] = $row["trailer"]  
 =  
 file_exists('../trailer/' . $row['trailer'])  
 ? '<a href="../../trailer/' . $row['trailer'] . '" target="_blank"' . '>' . $row['trailer'] . '</a>'
 : 'Video not aviable</br>' . '<a href="../../trailer/' . $row['trailer'] . '" target="_blank"' . '>' . $row['trailer'] . '</a><br>';
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 20:17 14-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 16:17 16-08-2023 | Исправлено: zagorisback, 16:50 16-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет
У меня проблема с этим сценарием
Что я хочу получить, и название видео и путь, чтобы получить адрес для Ffrobe и загрузки метаданных, внимания, только имя, файл не должен загружаться
 
Это работает частично, только небольшие видео в режиме загрузки
Но если я войду по пути в сценарии PHP, я также получаю метаданные для отличных видео
 
пример:
Он работает для небольших видео
 
 

Код:
<?php
$file = $_FILES['file'];
$fileNameDisk = $_FILES['file']['name'];
$filePath = $file['tmp_name'];
//echo $file.$filePath.$filename;
 
$command = "ffprobe -v quiet -print_format json -show_format -show_streams {$filePath}";
....
?>

 
 
пример:
Он работает для больших видео
 

Код:
 
$filePath = 'Phenomena.1985.ITA-ENG.BDRip.720p.x264.L43.mkv';
 
// Execute FFprobe command to retrieve metadata
$command = "ffprobe -v quiet -print_format json -show_format -show_streams {$filePath}";
 

 
 
index.php
 

Код:
 
<input id="fileInput" type="file" name="file" />
<button id="uploadButton">Upload</button>
<div id="message"></div>
<p>Uploaded file: <span id="filename"></span></p>
 
 
<script>
$("#uploadButton").on("click", function() {
  var fileData = $("#fileInput").prop("files")[0];
  var formData = new FormData();
  formData.append("file", fileData);
 
  $.ajax({
    url: "parse.php",
    type: "POST",
    data: formData,
    contentType: false,
    processData: false,
    success: function(response) {
      $("#message").html('<p class="success">File has been uploaded successfully. Click to upload another file.</p>');
      $("#message").append('<input type="hidden" name="filename" value="' + response + '">');
      $("#filename").text(response);
    },
    error: function() {
      $("#message").html('<p class="error">File upload failed. Please try again.</p>');
    }
  });
});
</script>
 
 

 
 
parse.php
 
 

Код:
 
<?php
$file = $_FILES['file'];
$fileNameDisk = $_FILES['file']['name'];
$filePath = $file['tmp_name'];
//echo $file.$filePath.$filename;
?>
 
<?php
 
//$filePath = 'Phenomena.1985.ITA-ENG.BDRip.720p.x264.L43.mkv';
 
// Execute FFprobe command to retrieve metadata
$command = "ffprobe -v quiet -print_format json -show_format -show_streams {$filePath}";
$output = shell_exec($command);
 
// Parse the JSON output
$metadata = json_decode($output, true);
 
// Access the desired metadata fields
$codec = $metadata['streams'][0]['codec_name'];
$bitrate = $metadata['format']['bit_rate'];
$durationFormatted = gmdate("H:i:s", $duration);
$title = $metadata['format']['tags']['title'];
$videoCodec = $metadata['streams'][0]['codec_name'];
$dimension = $metadata['streams'][0]['width'] . 'x' . $metadata['streams'][0]['height'];
$kbps = round($bitrate / 1000);
$frameRate = $metadata['streams'][0]['r_frame_rate'];
 
// Output the metadata
echo "Codec: {$codec} <br>";
echo "Bitrate: {$bitrate} bps <br>";
echo "Duration: {$durationFormatted} <br>";
echo "Title: {$title}<br>";
echo "Video Codec: {$videoCodec}<br>";
echo "Dimension: {$dimension}<br>";
echo "Bitrate: {$kbps} kbps <br>";
echo "Frame Rate: {$frameRate}<br>";
 
?>
 
 

 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 11:33 17-08-2023 | Исправлено: zagorisback, 11:34 17-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
метаданные без заливки файла на сервер? вообще не php
https://github.com/buzz/mediainfo.js

Всего записей: 15118 | Зарегистр. 20-09-2014 | Отправлено: 20:22 19-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 22:08 20-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
еще вариант
https://jsfiddle.net/gavinfoley/9saxaoak/

Всего записей: 15118 | Зарегистр. 20-09-2014 | Отправлено: 06:21 21-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
еще вариант
https://jsfiddle.net/gavinfoley/9saxaoak/

 
http://forum.ru-board.com/topic.cgi?forum=31&topic=18534&start=2220#6
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 10:07 21-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я не понимаю, этот код должен работать, но по какой -то темной причине он этого не делает
 

 
На практике он должен удалить видео из папки, а затем обновить поле «videoname» с «NULL»
 
index.php
 

Код:
 
<?php
 
include "connessione.php";
 
// Verifica della connessione
if (!$conn) {
    die("Connessione fallita: " . mysqli_connect_error());
}
 
// Query di selezione dei dati dal database
$sql = "SELECT * FROM video";
$result = mysqli_query($conn, $sql);
 
// Creazione della tabella HTML con i dati
echo '<table class="table table-striped table-hover table-bordered">';
echo  
"<tr>
<th>ID</th>
<th>Titolo</th>
<th>VideoName</th>
<th>Elimina</th>
</tr>";
while ($row = mysqli_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td>" . $row["id"] . "</td>";
    echo "<td>" . $row["title"] . "</td>";
    echo "<td>" . $row["videoname"] . "</td>";
    echo "<td><a href='delete_video.php?id=" . $row["id"] . "'>Elimina</a></td>";
    echo "</tr>";
}
echo "</table>";
 
// Chiusura della connessione
mysqli_close($conn);
 
?>
 

 
 
delete_video.php
 

Код:
 
<?php
 
include "connessione.php";
 
 
 
// ID del record da aggiornare
$id = $_POST["id"];
 
// Query di selezione del percorso del file video dal database
$sql = "SELECT videoname FROM video WHERE id = $id";
$result = mysqli_query($conn, $sql);
 
var_dump($result);
 
if ($result && mysqli_num_rows($result) > 0) {
    $row = mysqli_fetch_assoc($result);
    $video = $row["videoname"];
    $path = 'video/';
     
     
    // Elimina il file video dalla cartella
    if (unlink($path.$video)) {
        // Aggiorna il campo video nel database impostandolo su NULL
        $updateSql = "UPDATE video SET videoname = NULL WHERE id = $id";
        if (mysqli_query($conn, $updateSql)) {
            echo "Campo video aggiornato con successo";
        } else {
            echo "Errore durante l'aggiornamento del campo video nel database: " . mysqli_error($conn);
        }
    } else {
        echo "Errore durante l'eliminazione del file video dalla cartella";
    }
} else {
    echo "Record video non trovato nel database";
}
 
// Chiusura della connessione
mysqli_close($conn);
echo '<br>';
echo "<a href='index.php'>Torna alla pagina principale</a>";
 
 
?>
 

 
 
sql database
 

Код:
 
 
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
 
-- ----------------------------
-- Table structure for video
-- ----------------------------
DROP TABLE IF EXISTS `video`;
CREATE TABLE `video`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `videoname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
 
-- ----------------------------
-- Records of video
-- ----------------------------
INSERT INTO `video` VALUES (1, 'video 1', 'video1.mp4');
INSERT INTO `video` VALUES (2, 'video 2', 'video2.mp4');
INSERT INTO `video` VALUES (3, 'video 3', 'video3.mp4');
INSERT INTO `video` VALUES (4, 'video 4', 'video4.mp4');
 
SET FOREIGN_KEY_CHECKS = 1;
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 00:55 23-08-2023 | Исправлено: zagorisback, 00:56 23-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
    $path = 'video/';

пусть полный, неизвестно где сейчас находится скрипт.
echo getcwd();
покажет от какой папки смотрит.

Всего записей: 15118 | Зарегистр. 20-09-2014 | Отправлено: 01:49 23-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 

Код:
$path = 'video/';

 
Папка и «Видео», а снаружи являются кодами PHP
 
   
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:15 23-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Папка и «Видео», а снаружи являются кодами PHP
 

и что??  CWD может быть где угодно..
 
сделать вывод для себя и посмотреть.
 
плюс это не POST, а GET

Цитата:
$id = $_POST["id"];

Всего записей: 15118 | Зарегистр. 20-09-2014 | Отправлено: 08:23 23-08-2023 | Исправлено: Mavrikii, 08:26 23-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
 
Ты прав, я забыл вставить форму с помощью метода поста
Я исправил вот так, теперь это работает
Спасибо за совет
 
 
index.php обновлять
 

Код:
 
echo "<td><form action='delete_video.php' method='post'><input type='hidden' name='id' value='" . $row["id"] . "'><input type='submit' value='Elimina'></form></td>";
 
 


Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 13:13 23-08-2023 | Исправлено: zagorisback, 13:14 23-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
 
Ты прав, я забыл вставить форму с помощью метода поста

не нужно там через POST, лучше через GET

Всего записей: 15118 | Зарегистр. 20-09-2014 | Отправлено: 20:47 23-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как исправить этот код, чтобы удалить «ноль»(0), если он пуст?
 
Примеры:
 
Это не правильно, ведущий 0 остается
 

Цитата:
$time = "01:01:01";
 
01 hour 01 minute 01 second

 
 
это верно, ведущий 0 удаляется
 

Цитата:
$time = "02:02:02";  
 
2 hours 2 minutes 2 seconds

 
 
 

Код:
 
<?php
$time = "01:01:01";
list($hours, $minutes, $seconds) = explode(':', $time);
$result = '';
if ($hours > 0) {
    $result .= ($hours == 1 ? $hours : ltrim($hours, '0')) . ($hours == 1 ? ' hour ' : ' hours ');
}
if ($minutes > 0) {
    $result .= ($minutes == 1 ? $minutes : ltrim($minutes, '0')) . ($minutes == 1 ? ' minute ' : ' minutes ');
}
if ($seconds > 0) {
    $result .= ($seconds == 1 ? $seconds : ltrim($seconds, '0')) . ($seconds == 1 ? ' second' : ' seconds');
}
if (empty($result)) {
    $result = '0 secondi';
}
echo $result;
?>
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 09:56 25-08-2023 | Исправлено: zagorisback, 09:57 25-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
if ($hours > 0) {
    $result .= ltrim($hours, '0') . ($hours == 1 ? ' hour ' : ' hours ');
}
if ($minutes > 0) {
    $result .= ltrim($minutes, '0') . ($minutes == 1 ? ' minute ' : ' minutes ');
}
if ($seconds > 0) {
    $result .= ltrim($seconds, '0') . ($seconds == 1 ? ' second' : ' seconds');
}

или

Цитата:
if ($hours > 0) {
    $result .= (int)$hours . ($hours == 1 ? ' hour ' : ' hours ');
}
if ($minutes > 0) {
    $result .= (int)$minutes . ($minutes == 1 ? ' minute ' : ' minutes ');
}
if ($seconds > 0) {
    $result .= (int)$seconds . ($seconds == 1 ? ' second' : ' seconds');
}

тут нет ничего из mysql

Всего записей: 15118 | Зарегистр. 20-09-2014 | Отправлено: 10:00 25-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо,
 
замена 1 на 0 тоже работает, который лучше?
 

Код:
 
 
$result .= ($hours == 0  
 
$result .= ($minutes == 0
 
$result .= ($seconds == 0
 
 

 
 
 

Цитата:
тут нет ничего из mysql

 
это php-код
 
в какой раздел форума разместить php код?  
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 10:17 25-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
замена 1 на 0 тоже работает, который лучше?

что??
 

Цитата:
это php-код
 

Простенький вопрос по PHP
Основы PHP...

Всего записей: 15118 | Зарегистр. 20-09-2014 | Отправлено: 10:21 25-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 

Цитата:
что??  

 

Код:
if ($hours > 0) {
$result .= ($hours == 1  
if ($minutes > 0) {  
$result .= ($minutes == 1
if ($seconds > 0) {  
$result .= ($seconds == 1

 
 
замена 1 на 0 тоже работает, который лучше, ваш код с «int»

Код:
if ($hours > 0) {
    $result .= (int)

или этим ниже?  
 

Код:
 
if ($hours > 0) {
$result .= ($hours == 0  
if ($minutes > 0) {  
$result .= ($minutes == 0
if ($seconds > 0) {  
$result .= ($seconds == 0

 
 
 
Добавлено:

Цитата:
Простенький вопрос по PHP
Основы PHP...

 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 10:28 25-08-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
Пытайтесь в голове представлять как работает код.
 
Значения = 0 внутрь условия if не попадут вообще.
Какой смысл тогда такое писать?

Всего записей: 15118 | Зарегистр. 20-09-2014 | Отправлено: 11:03 25-08-2023
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
привет всем, после решения предыдущей проблемы, опубликованной некоторое время назад и оставшейся нерешенной, я решил рабочий код, но с другой проблемой
 
PHP-код начинается
 

Код:
.......
<p class="bioheading">Anno</p><p class="biodata"><?php echo $row->year; ?></p>
        
<p class="bioheading">Genre</p><p class="biodata"><?php echo $row->genere; ?></p>
до этого момента я получаю данны
 
 
отсюда я вижу новый код «длительность»        
<p class="bioheading">Duration</p><p class="biodata">

 

Код:
 
<?php  
        
$row = $row->duration;
$durationArray = explode(' - ', $row);
 
// Array per memorizzare i risultati convertiti per ogni valore di $row
$durationAndConvertedResults = array();
foreach ($durationArray as $value) {
    $value = rtrim($value, ' -');
    preg_match_all('/(\d+)/', $value, $resultime, PREG_PATTERN_ORDER);
    $resultime = $resultime[0];
    $t = $resultime[0]; // hours minutes
    $h = floor($t/60) ? floor($t/60) .' hours' : '';
    $m = $t%60 ? $t%60 .' minutes' : '';
    $durationAndConvertedResults[] = $value . ' - ' . $h . ' and ' . $m;
}
 
// Rimuovi eventuali elementi vuoti dall'array
$durationAndConvertedResults = array_filter($durationAndConvertedResults);
 
// Unisci gli elementi dell'array in una stringa separata da una virgola e uno spazio
$durationAndConvertedResultsString = implode(', ', $durationAndConvertedResults);
 
// Rimuovi l'elemento " - and " alla fine della stringa
$durationAndConvertedResultsString = rtrim($durationAndConvertedResultsString, ' - and');
 
echo $durationAndConvertedResultsString . '<br>';
 
 
?>
 

 
завершил выполнение кода, с этого момента остальные данные исчезнут
 

Код:
</p>
            
<p class="bioheading">Language</p><p class="biodata"><?php echo $row->lingua; ?></p>
        
<p class="bioheading">Country</p><p class="biodata"><?php echo $row->country; ?></p>
        
<p class="bioheading">Color B/N</p><p class="biodata"><?php echo $row->color; ?></p>
        
.....

 
 
   
 
 
Я отключаю код и данные возвращаются
 
   
 
где ошибка в коде продолжительности?

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 20:31 27-08-2023 | Исправлено: zagorisback, 20:32 27-08-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Интернет » Web-программирование » Активные темы » MySql/PHP: общие вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru