два кода Теоретически одно и то же, но практически работает по-разному … как это возможно

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

2

Решение

<?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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]