对HTML的Shell命令仅适用于某些输入

时间:2017-11-05 16:20:11

标签: php html shell

我使用HTML页面将pigpiod shell命令发送到我的Raspberry Pi 3,以使用pigpiod更改RGB条带的颜色,并且它可以正常工作。 现在我想使用相同的php / shell脚本实现文本到语音,但它不能作为pigpiod脚本。

我认为问题出现在变量中,但我不知道在哪里。

我设置变量并在index.php文件的最开头查找它们

<?php

$c=$_GET['c'];
$r=$_GET['r'];
$g=$_GET['g'];
$b=$_GET['b'];
$testo=$_GET['testo'];

if($c == 1)
{
        $execute = shell_exec("pigpiod");
        $execute = shell_exec("pigs w 12 0");
        sleep(1);
        $execute = shell_exec("pigs w 12 1");
        header('Location: http://192.168.2.123/cancello/');
}

if($r != "" AND $g != "" AND $b != "")
{
        $execute = shell_exec("pigpiod");
        $execute = shell_exec("pigs p 22 $r");
        $execute = shell_exec("pigs p 27 $g");
        $execute = shell_exec("pigs p 17 $b");
        header('Location: http://192.168.2.123/cancello/');
}

if($testo != "")
{
        $execute = shell_exec("./speech.sh $testo");
        header('Location: http://192.168.2.123/cancello/');
}

?>

然后在其他代码之后我得到RGB输入(有效)和文本到语音一(不是)

    <a href="index.php?r=0&g=100&b=100"  class="button0 buttonacqua"></a>
    <a href="index.php?r=100&g=100&b=100"  class="button0 buttonbianco"></a>

    <form action="index.php" method ="get">
    <br>
    <input type="text" value="text" name="text">
    <br>
    <input type="submit" value="Submit">
    </form>

我看到表单,我可以输入文字,但是当我确认它不起作用时。

这是当我通过控制台使用“./speech.sh和一些文字说话”来运行时运行的speech.sh代码

#!/bin/bash
INPUT=$*
STRINGNUM=0
ary=($INPUT)
for key in "${!ary[@]}"
  do
    SHORTTMP[$STRINGNUM]="${SHORTTMP[$STRINGNUM]} ${ary[$key]}"
    LENGTH=$(echo ${#SHORTTMP[$STRINGNUM]})
    #echo "word:$key, ${ary[$key]}"
    #echo "adding to: $STRINGNUM"
    if [[ "$LENGTH" -lt "100" ]]; then
      #echo starting new line
      SHORT[$STRINGNUM]=${SHORTTMP[$STRINGNUM]}
    else
      STRINGNUM=$(($STRINGNUM+1))
      SHORTTMP[$STRINGNUM]="${ary[$key]}"
      SHORT[$STRINGNUM]="${ary[$key]}"
    fi
done
for key in "${!SHORT[@]}"
  do
    #echo "line: $key is: ${SHORT[$key]}"
    NEXTURL=$(echo ${SHORT[$key]} | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g')
    mpg123 -q "http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=$NEXTURL&tl=It-it"

done

0 个答案:

没有答案