2015-09-19 56 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。所以如果你不希望這個字符串出現 - 不要序列化值。