【问题标题】:Replace old URLs in the string to new ones将字符串中的旧 URL 替换为新 URL
【发布时间】:2021-06-30 07:10:17
【问题描述】:

我有一个很长的页面内容字符串,其中包含不正确的链接,我需要将其替换为新链接。

这是一个例子。我需要以下网址,每次出现时都有不同的 ID:

https://oldurl.com/?p=X (X = 更改 ID 号)

收件人:

https://newurl.com?id=Y

(同样,Y = 更改 ID 号)

这意味着每个新的 URL 不会也变成“?go”,否则它有一个新的 ID,不像它改变的那个。

我可以只使用 str_replace,但问题是该字符串中的每个链接都有一个不断变化的 ID。

PHP 中是否有任何可能的方法来“转换”这些?

提前谢谢你。

【问题讨论】:

  • "但问题是该字符串中的每个链接都有一个不断变化的 ID" 有问题吗?你只会替换https://oldurl.com/?p=,而不是ID
  • 新网址中的ID不同。
  • 但是你不会改变 url 中的 id 部分...只是 id-less 部分
  • "新网址中的 ID 不同" 您可能希望在问题中更清楚地说明这一点,现在 X/ID 在您的旧网址中是相同的和新的网址。我认为除非您创建 oldIds 到 newIds 的映射,否则您无法完全自动化此操作。脚本应该如何知道将?p=12 更改为?id=113

标签: php


【解决方案1】:

你可以通过下面的语句简单地做到这一点。

$oldId = str_replace("https://oldurl.com/?p=","",$YOUR_URL);
$newId = "XYZ";
$YOUR_URL = str_replace("https://oldurl.com/?p=","https://newurl.com?id=",$YOUR_URL);
$YOUR_URL = str_replace("?id=".$oldId,"?id=".$newId,$YOUR_URL);

【讨论】:

  • 虽然oldurl.com 不会更改为newurl.com
  • 谢谢你请检查我编辑的代码可能对你有帮助。
  • @Shriji Solutions 如果有很多带有一堆不可预测的 ID 的 URL,我该怎么做?
  • 在这种情况下,您可能需要创建或其他东西
猜你喜欢
  • 1970-01-01
  • 2023-02-06
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2016-01-31
  • 1970-01-01
  • 2018-03-08
相关资源
最近更新 更多