getaudio.php версия 1
<?php
$youtubeUrl = $_GET['url'];
$content = shell_exec("youtube-dl -j $youtubeUrl ");
$meta=json_decode($content);
$file= $meta->{'_filename'};
$fileWithoutExtension = explode(".",$file)[0];
$extension = ".m4a";
$file = $fileWithoutExtension . $extension;
header("Content-Disposition: attachment; filename=\"$file\"" );
header("Content-Type: application/octet-stream");
passthru("youtube-dl -f 140 -o - $youtubeUrl");
?>
getaudio.php версия 2
<?php
$youtubeUrl = $_GET['url'];
$file = shell_exec("youtube-dl -f 140 --get-filename $youtubeUrl ");
header("Content-Disposition: attachment; filename=\"$file\"" );
header("Content-Type: application/octet-stream");
passthru("youtube-dl -f 140 -o - $youtubeUrl");
?>
если
URL знак равно https://www.youtube.com/watch?v=bvYtKY-UMxA тогда мы получим $ файл знак равно
Deewana Kar Raha Hai Полная песня 1080p HD Raaz 3 2012 YouTube-bvYtKY-UMxA.m4a
мой вопрос getaudio.php версия 1 работает нормально но getaudio.php версия 2 не ….
getaudio.php версия 2 загружается, но файл поврежден ….
когда $ файл то же самое для обоих файлов PHP, то как это возможно, что второй не работает
Подсказка: скачать YouTube-dl.exe(для окон) & место это с два php файлы & запустить в localhost
<?php
$youtubeUrl = "https://www.youtube.com/watch?v=bvYtKY-UMxA";
$content = shell_exec("youtube-dl -j $youtubeUrl ");
$meta=json_decode($content);
$file= $meta->{'_filename'};
$fileWithoutExtension = explode(".",$file)[0];
$extension = ".m4a";
$file1 = $fileWithoutExtension . $extension;
$file2 = shell_exec("youtube-dl -f 140 --get-filename $youtubeUrl ");
echo $file1,"NO SPACE HERE";
echo "<br>";
// have extra space at the end
echo $file2,"SPACE HERE";
echo "<br>";
echo "length of \$file1 is :".strlen($file1); // 77
echo "<br>";
echo "length of \$file2 is :".strlen($file2); // 78
?>
ВЫХОД
Deewana Kar Raha Hai Полная Песня 1080p HD Raaz 3 2012
YouTube-bvYtKY-UMxA.m4a — ПРОСТРАНСТВО НЕ БУДЕТDeewana Kar Raha Hai Полная Песня 1080p HD Raaz 3 2012
YouTube-bvYtKY-UMxA.m4a — ПРОСТРАНСТВО ЗДЕСЬдлина $ file1 составляет: 77
длина $ file2 составляет: 78
Видите, что после пробела .m4a за $ file1 но для $ file2 после пробела .m4a.
что делает их две разные строки
РЕШЕНИЕ:
Используйте функцию trim () для файла $ в getaudio.php версия 2
$file = trim($file);
Других решений пока нет …