php中的尴尬回归行为 - 斜杠混合

时间:2013-12-02 09:47:56

标签: php return

我有一个将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;

这样更好吗?所以我无法使用一种方法返回到处处?

1 个答案:

答案 0 :(得分:4)

这是一个非常有效的 JSON编码斜杠return或其他任何内容都没有错,它是 JSON编码

作为旁注:DIRECTORY_SEPARATOR代表/\,取决于您的系统。 /同义,并且不需要在此处使用它。像这样写image/jpeg