Я понимаю, что на этот вопрос был дан ответ, однако в коде есть странная ошибка.Передача переменных PHP с пробелами в bash
Вот Баш код, который получает переменную $ название из PHP сценария:
#!/bin/bash
url=$1
type=$2
bitrate=$3
vidid=$4
title=$TITLE
TMP_FILE="youtube-mp3-$RANDOM.tmp"
youtube-dl --get-title --get-url --get-filename "$url" > $TMP_FILE 2> "/tmp/$TMP_FILE.err"
exec 42< $TMP_FILE
while read video_title <&42 ; do
read video_url <&42
read video_filename <&42
if [ "$type" = "vorbis" ]; then
#youtube-dl -x --prefer-ffmpeg --audio-format vorbis --audio-quality "$bitrate" "$url"
echo "$title" > title-test
else
#youtube-dl -x --prefer-ffmpeg --audio-format "$type" --audio-quality "$bitrate" "$url"
echo "$title" > title-test
fi
done
exec 42<&-
rm -f $TMP_FILE
А вот PHP код, который посылает переменную Баш:
$link = $cmd;
$video_id = explode("?v=", $link);
$video_id = $video_id[1];
$yturl = "http://www.youtube.com/watch?v=".$video_id;
$page = file_get_contents($yturl);
$doc = new DOMDocument();
$doc->loadHTML($page);
$title_div = $doc->getElementById('eow-title');
$title = $title_div->nodeValue;
putenv("TITLE=$title");
Он правильно делает повторите заголовок видео YouTube, чтобы «title-test», но когда он это делает, он отправляет его так: {enter} {пробел} {пробел} {пробел} {пробел} $ title
Итак, есть bla nk перед заголовком видео, что неправильно работает, когда я пытаюсь выполнить mv, rm или cp переменную $ title в bash, и я не знаю, почему это происходит.
Большое спасибо. Trim отлично работает :) – skillascii