使用PHP调用sh脚本时不设置变量shell_exec()

时间:2011-02-10 23:46:08

标签: php sh shell-exec

我目前有一个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,将每个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设置为的命令,并显示PHP创建的页面上的URL,但据我所知,变量本身为空白。

我能得到的任何帮助都会很棒!请告诉我是否应该添加任何其他内容,或者如果我的问题具有误导性,这是我的第一篇文章:D!谢谢!

1 个答案:

答案 0 :(得分:0)

尝试在imageList

的变量赋值输出周围添加dbl-quotes
imageUrls="`curl -s "http://www.flickr.com/services/rest/....."

我希望这会有所帮助。

P.S。因为您似乎是新用户,如果您得到的答案可以帮助您,请记住将其标记为已接受,或者给它一个+(或 - )作为有用的答案