从字符串中替换PHP Escape序列字符

时间:2014-05-26 16:53:10

标签: php

我有一串带编码的google poly line的URL。它有一些时间字符与PHP转义序列(http://php.net/manual/en/regexp.reference.escape.php)相同,如\ v和其他。当我调用此URL从远程服务器下载图像时,URL字符串被更改并且不起作用。

如何处理Escape Sequence以让php脚本正确下载图像。

DB中的URL:

http://maps.googleapis.com/maps/api/staticmap?size=275x270&sensor=true&markers=-31.95099,115.86053&markers=-31.952055,115.865051&path=weight:4%7Ccolor:0x0000FF%7Cenc:tl_bEi_dbUVol@gTug@aG_j@qe@_Le]_ZtO_i@tLsm@xd@sPdTu\sZeOq_@nZy_@wDsTah@_Dyl@cEg_@uImf@mKqU{WgJaEwd@mIs_@y[k]k^g[qi@GaUy\_Eqj@qi@aB{g@uJwi@uBe_@sYk^c_@ef@uOci@|A_h@_M}h@}Hcg@{Oi`@k]kIeh@tQsg@lKwa@fKs]~Fse@vi@@v`@oIti@Dbc@fKza@aIrEe`@dh@hBvi@Q`[mOb^{Mpa@eYpP_k@Eah@e@an@xFwl@jBmn@Zaq@bAmp@nFap@gGon@_Iio@m@{p@nCgp@eE_p@~Hko@hBaq@jB}p@lYyXpe@mJv`@i\nc@}Wpg@_Obi@Dve@`S~d@bR~F~i@dVdd@|WpShJic@db@nKzGvo@ne@`Et^rXyE`o@mRhi@iCvp@oZrd@eJvo@lVdg@hKrn@cFzn@v[pMfh@\xCfYiX|Sf@~n@eNld@}V`]qNjZs`@hYwa@rQeXrUcNxf@}Ipn@lApp@rUzf@|h@rAvi@Ydi@mBvf@tQvb@rWbHzo@~Gjo@r]tb@vWlg@rXzd@eBbj@eTvi@uSzj@{Fdp@uJ~m@k\nc@i]fb@c]jb@o]~a@c^ra@ySfd@yQve@gZrUu\lLc`@x]aItm@fAxi@nHtl@pRjh@

PHP下面的URL输出:

http://maps.googleapis.com/maps/api/staticmap?size=275x270&sensor=true&markers=-31.95099,115.86053&markers=-31.952055,115.865051&path=weight:4%7Ccolor:0x0000FF%7Cenc:tl_bEi_dbUVol@gTug@aG_j@qe@_Le]_ZtO_i@tLsm@xd@sPdTu\sZeOq_@nZy_@wDsTah@_Dyl@cEg_@uImf@mKqU{WgJaEwd@mIs_@y[k]k^g[qi@GaUy\_Eqj@qi@aB{g@uJwi@uBe_@sYk^c_@ef@uOci@|A_h@_M}h@}Hcg@{Oi`@k]kIeh@tQsg@lKwa@fKs]~Fse@vi@@v`@oIti@Dbc@fKza@aIrEe`@dh@hBvi@Q`[mOb^{Mpa@eYpP_k@Eah@e@an@xFwl@jBmn@Zaq@bAmp@nFap@gGon@_Iio@m@{p@nCgp@eE_p@~Hko@hBaq@jB}p@lYyXpe@mJv`@ic@}Wpg@_Obi@Dve@`S~d@bR~F~i@dVdd@|WpShJic@db@nKzGvo@ne@`Et^rXyE`o@mRhi@iCvp@oZrd@eJvo@lVdg@hKrn@cFzn@v[pMfh@%C3%8FYiX|Sf@~n@eNld@}V`]qNjZs`@hYwa@rQeXrUcNxf@}Ipn@lApp@rUzf@|h@rAvi@Ydi@mBvf@tQvb@rWbHzo@~Gjo@r]tb@vWlg@rXzd@eBbj@eTvi@uSzj@{Fdp@uJ~m@kc@i]fb@c]jb@o]~a@c^ra@ySfd@yQve@gZrUu\lLc`@x]aItm@fAxi@nHtl@pRjh@

来自数据库的URL显示路径正确,其中从PHP输出时相同的URL根本不显示路径。当从PHP输出时,url的长度也会减少。

感谢

Waqas

1 个答案:

答案 0 :(得分:0)

如果您有权访问该代码,则可以使用良好的旧base64encode对URL进行编码,并在存储到数据库之前。使用空间增加33%,但有助于避免头痛。 PHP - Base64 Encode