Urlencode除了斜线之外的一切?

Cob*_*ast 9 php urlencode

是否有任何干净,简单的方法来urlencode()任意字符串但只留下斜杠(/)?

Ida*_*rye 16

  1. 拆分 /
  2. urlencode() 每个部分
  3. 加入 /

  • 作为一个单行:`implode('/',array_map('urlencode',explode('/',$ str))); (13认同)

Ash*_*mar 11

你可以这样做:

$url = "http://www.google.com/myprofile/id/1001";
$encoded_url = urlencode($url);
$after_encoded_url = str_replace("%2F", "/", $url);
Run Code Online (Sandbox Code Playgroud)


Sam*_*ard 5

基本上就是 @clovecooks 所说的,但是 split() 从 5.3 开始已被弃用:

$path = '/path with some/illegal/characters.html';

$parsedPath = implode('/', array_map(function ($v) {
    return rawurlencode($v);
}, explode('/', $path)));

// $parsedPath == '/path%20with%20some/illegal/characters.html';
Run Code Online (Sandbox Code Playgroud)

如果字符串已经编码,也可能需要在编码之前进行解码。