2015-09-19 54 views
2

我使用s3cmd从AWS获取文件到我的Ubuntu服务器。额外的文本来自shell_exec命令从php执行时

s3cmd get s3://bucket/filename newfilename 

它从ubuntu的终端运行时工作正常。

但是,当我从PHP运行像下面

$query1 = 's3cmd get s3://bucket/filename newfilename'; 
$q1 = serialize(shell_exec($query1)); 
$data2 = array('data' => $q1); 
header('Content-type: application/json'); 
echo json_encode($data2); 

它的工作原理,但是从json_encode响应它串联额外的文本。

{"data":"s:122:\"File s3:............ 

什么是s:122以及如何删除它。我不是在寻找sub_string。

+0

为什么要序列化值? 's:122'是'shell_exec($ query1)' –

+0

返回值的长度,如果我dnt序列化值,输出为空 –

+0

shell_exec($ query1)返回什么? –

回答

1

当你serialize某些值 - 在结果字符串中有值和值本身的类型。你问过,说这个数值是长度为122的一个s。所以如果你不希望这个字符串出现 - 不要序列化值。