adb+php调用,php - 从PHP执行adb shell并转义字符串 - 堆栈内存溢出

我试图将一个工作的bash脚本转换为PHP代码。

#!/bin/bash

phonenumber="$1"

message="$2"

# check the args...

# double quotes inside $message must be escaped. Also prevents code injection.

message=${message//\"/\\\"}

adb shell "am startservice --user 0 -n com.android.shellms/.sendSMS -e \"contact\" $phonenumber -e msg \"$message\""

上面的代码有效。 在PHP中,当消息包含新行时,下一个代码不起作用:

function sendsms ($m, $to, $n) {

echo "About to sent an sms to $to [$n]\n";

// escape some chars in $m

$m = addslashes($m);

adb_shell_exec ("am startservice --user 0 -n com.android.shellms/.sendSMS -e contact \"$to\" -e msg \"$m\"");

}

function adb_shell_exec ($s) {

shell_exec("adb shell " . addslashes ($s));

}

我收到消息错误:

$ php -r "require 'sim-android-v8.php'; sendsms('Message with one double \" quote final solution

and new line','+32*******31','Pierre François');"

About to sent an sms to +32*******31 [Pierre François]

/system/bin/sh: no closing quote

sh: 2: and: not found

我不明白为什么它在bash中工作但在PHP中不工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值