【问题标题】:How to remove a double Forward Slash from the end of a URL if there is one如果有一个 URL,如何从 URL 末尾删除双正斜杠
【发布时间】:2017-09-10 23:38:34
【问题描述】:

我需要有关从用户输入的 URL 中删除双斜杠的帮助。这是针对 WordPress 前端的。

我可以选择让用户输入任何链接。一旦他们在值字段中输入/粘贴链接,我需要在该链接的末尾添加我的会员代码,并使用我的会员 ID 显示最终输出(完整链接)。

这是我使用的代码。

<form onsubmit="return false" oninput="txtfullurl.value = txturl.value +'/affiliateid'">
URL : <input type="text" name="txturl" /> <br><br>
Full URL : <input type="text" name="txtfullurl"  > <br><br>
</form>

问题是用户输入的 URL 结尾可能有也可能没有“/”(正斜杠)。

因此,如果链接在我的会员 ID 前有一个双斜杠,我需要删除一个。

我该怎么做?

【问题讨论】:

  • 这是代码
    URL :

    完整网址:

  • $userInput = rtrim($userInput,"/"); 删除 userInput 的最后一个正斜杠
  • @LasVegasCoder... 错误。这将删除所有正斜杠,而不仅仅是最后一个...
  • @patrick 虽然你是对的,但我认为 LasVegasCoder 的建议实际上对 OP 来说是一个可行的选择——我的理解是他们想去掉任何尾随斜杠,这样他们就可以在附加他们的附属ID...他们只是从未考虑过可能有多个。

标签: php html wordpress


【解决方案1】:

您应该在服务器上进行任何类型的清理或验证。最灵活的解决方案是使用wp_parse_url函数,与http_build_query结合使用。

例子

$url = 'https://www.google.com//somethingelse';
$parsed_url = wp_parse_url($url);
$query_string = http_build_query([
    'affiliate_id' => 'my_id',
]);
$affiliate_link = $parsed_url['scheme'] . '://' . $parsed_url['host'] . '/?' . $query_string;

【讨论】:

  • 感谢您的帮助。这个还没试过。我会告诉你一次尝试。顺便说一句,我看到一个回答说使用“trailingslashit()”我也尝试这样做。我会更新你们。 !!! :)
【解决方案2】:

您可以使用trailingslashit() 函数来实现这一点。

来自 WordPress Codex,这个函数

附加一个斜杠。 如果在添加尾部斜杠之前已经存在,将删除尾部斜杠。这可以防止双斜线字符串或路径。

【讨论】:

  • 嗨,Hareesh,感谢您的回复。老实说,我不擅长编码。你能不能多指导我一点。假设我需要对我的一个页面使用上述选项。在我把我的代码放在那个特定的页面之后,我应该在哪里使用这个 trailingslashit() 函数。你能给我一个jsfiddle的例子吗?
猜你喜欢
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
相关资源
最近更新 更多