【问题标题】:Plus "+" symbol in href in WebDAV protocolWebDAV协议中href中的加号“+”
【发布时间】:2013-05-23 09:15:49
【问题描述】:

我有一个与 webdav 服务器一起工作的 PHP 脚本。要加载文件夹内容,我使用 PROPFIND webdav 请求。它返回 XML。我从 XML 中提取文件夹/文件列表以及我需要获取名称的每个项目。为此,我获得了 href 选项,然后执行 urldecode,然后执行 basename。

除了一种情况外,这很好用。如果 webdav 服务器上的文件夹/文件的名称中有 +,那么这个加号不会在 href 选项中编码。并且 urldecode 将其解码为空间。所以最后我得到了一个带有空格代替加号的文件夹。

例如,在 webdav 服务器上,我有文件夹 "folder with space and+"。 Href 将是"/folder%20with%20space%20and+/"。在 urldecode 之后,它将是 "folder with space and "

我可以在 urldecode 之前使用 str_replace('+','%2B',$href) 解决这个问题。但我的脚本适用于许多 webdav 服务器。而且我不确定所有 webdav 服务器都以相同的方式工作。

你知道这是否是 webdav 服务器不编码+ 符号的标准吗?或者这取决于服务器软件? 解决此类问题的最正确方法是什么? 谢谢。

【问题讨论】:

    标签: php webdav


    【解决方案1】:

    “+”仅在 URI 的查询部分中是特殊的。它不需要编码,因此服务器行为正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      • 2014-06-19
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      相关资源
      最近更新 更多