Переменная не устанавливается, когда sh Script вызывается с помощью PHP shell_exec () - PullRequest
0 голосов
/ 11 февраля 2011

В настоящее время у меня есть скрипт sh:

    location=$1
    imageNumber=$2
    keyword=$3
    page=$4
    imagesInPage=$5
    imagesToGet=$6
    imageUrls=`curl -s "http://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=[MYAPIKEY]&text=$keyword&per_page=$imagesInPage&media=photos&license=1,2,4,5,7&page=$page" | sed '1,3d' | sed 'N;$!P;$!D;$d' | ./xml_to_urls 2> /dev/nul`

    currentImage=0

    for url in $imageUrls
    do
            if [ $currentImage -ne $imagesToGet ]
            then
                    curl -s "$url" > "$location/$imageNumber.jpg"
            else
                    break
            fi
            currentImage=`expr $currentImage + 1`
            imageNumber=`expr $imageNumber + 1`
    done

..., который в основном запрашивает Flickr API для списка изображений, соответствующих аргументам.Затем я перебираю URL-адреса изображений, сохраняя каждый из них в указанном каталоге.

PHP-скрипт, который вызывает это, довольно длинный, но вот строка, которая его вызывает:

shell_exec("./get_images \"" . $dir . "\" " . $currentImageNumber . " \"" . $keyword . "\" " . $page . " 500 500");

Когда я запускаю команду (например: ./get_images "temp / 0.75456300 1297381201" 0 "moose" 1 500 500), никаких проблем не возникает.Однако при запуске сценарием PHP переменная $ imageUrls никогда не устанавливается.Я могу повторить команду, для которой я устанавливаю imageUrls, и она отображает URL-адреса на странице, которую создает PHP, но, насколько я могу судить, переменная self не указана.это было бы здорово!Пожалуйста, скажите мне, если я должен добавить что-нибудь еще или если мой вопрос вводит в заблуждение, это мой первый пост: D!Спасибо!

1 Ответ

0 голосов
/ 07 марта 2011

попробуйте добавить dbl-кавычки вокруг вывода вашей переменной для imageList

imageUrls="`curl -s "http://www.flickr.com/services/rest/....."

Надеюсь, это поможет.

P.S. поскольку вы выглядите новым пользователем, если вы получаете ответ, который поможет вам, не забудьте пометить его как принятый или дать ему + (или -) как полезный ответ

...