我有一个将JPG或PNG转换为base64字符串的If语句:
$data = file_get_contents($path);
//separator is fine
$base64_image = 'data:image'.DIRECTORY_SEPARATOR.'jpeg;base64,' . base64_encode($data);
$output = [];
$output = $base64_image;
echo json_encode(array('response' => $od1));
return;
此代码输出类似的内容
{"response":["data:image/jpeg;base64 ... ] }
那很好。
但我需要将输出作为单独的方法,因为我多次使用它:
public function returnOutput($message)
{
$output_upload = [];
$output_upload[] = $message;
echo json_encode(array('response' => $output_upload));
return;
}
...和呼叫:
$this->returnOutput($base64_image);
混合斜杠:
{"response":["data:image\/jpeg;base64 ... "]}
从其他方法使用 return 是否有问题?
编辑:
我想将响应直接发送到浏览器,是的。删除了 DIRECTORY_SEPARATOR
这里我改变了,现在很好:
public function returnOutput($message)
{
$output_upload = [];
$output_upload[] = $message;
return json_encode(array('response' => $output_upload));
}
呼唤:
...
echo $this->returnOutput($base64_image);
//I want to terminate the program after the response
return;
这样更好吗?所以我无法使用一种方法返回到处处?
答案 0 :(得分:4)
这是一个非常有效的 JSON编码斜杠。 return
或其他任何内容都没有错,它是 JSON编码。
作为旁注:DIRECTORY_SEPARATOR
代表/
或\
,取决于您的系统。 与/
同义,并且不需要在此处使用它。像这样写image/jpeg
。