如何使用preg_match更改URL的方案?

时间:2013-02-05 01:37:14

标签: php regex

  

可能重复:
  How to add http:// if it’s not exists in the URL?

说我想匹配可能包含http://https://或两者都不匹配的网址。当我替换它时,我希望前面有https://,如果它在那里,但是如果它是http://或者我想在开始时只有http://

我无法弄清楚如何使用preg_match表达式来解决这个问题,或者对于非PHP倾向的搜索和替换PHP函数。

2 个答案:

答案 0 :(得分:1)

您可以使用preg_replace_callback,然后编写一个函数来执行此操作。

答案 1 :(得分:0)

如果你想要一个正则表达式的解决方案,这样的东西应该有用。

preg_replace('|^(?:http(s)?://)?(.+)$|', 'http\\1://\\2', $url);

虽然我可能会使用parse_url并将其重新组合在一起。