stream_get_contents用空格替换加号

时间:2012-03-31 22:02:25

标签: php

所以这是我无法找到任何文档的东西。我有一个纯文本字符串,我试图在php中变成一个流。

$myStr = "A bit of text +test +test2";
$stream = fopen('data://text/plain,' . $myStr, 'r');
var_dump(stream_get_contents($stream);

此代码的输出是

A bit of text  test  test2

我尝试使用preg_replace向加号添加转义但是这似乎没有任何效果。还有其他想法吗?感谢

1 个答案:

答案 0 :(得分:3)

您可以使用base64_encode

$myStr = "A bit of text +test +test2";
$stream = fopen('data://text/plain;base64,' . base64_encode($myStr), 'r');
var_dump(stream_get_contents($stream));

Here's an example

问题的原因是它是一个URI,而在HTTP URI中,+是一个编码空间。您的另一个选择是使用urlencodeexample)。