Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用preg_match更改URL的方案?_Php_Regex - Fatal编程技术网

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

Php 如何使用preg_match更改URL的方案?,php,regex,Php,Regex,可能重复: 假设我想匹配一个URL,该URL中可能包含http://、https://,或者两者都没有。当我替换它时,如果它在前面,我希望在前面有https://,但是如果它是http://或者什么都没有,我希望在开始时有http:// 我不知道如何用preg_match表达式来解决这个问题,或者对于非PHP函数,使用搜索和替换PHP函数来解决这个问题。您可以使用并编写一个函数来实现这一点。如果您想要一个正则表达式解决方案,类似的方法应该可以奏效 preg_replace(“|^(?:http

可能重复:

假设我想匹配一个URL,该URL中可能包含http://、
https://
,或者两者都没有。当我替换它时,如果它在前面,我希望在前面有
https://
,但是如果它是
http://
或者什么都没有,我希望在开始时有
http://


我不知道如何用preg_match表达式来解决这个问题,或者对于非PHP函数,使用搜索和替换PHP函数来解决这个问题。

您可以使用并编写一个函数来实现这一点。

如果您想要一个正则表达式解决方案,类似的方法应该可以奏效

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


尽管我可能会使用它并将其重新组合起来。

请看。阅读可能会保留您的答案。我的问题在于URL,如
www.stackoveflow.com
,但没有任何http://或https://did 你试过了吗<代码>echo preg_替换(“|^(?:http(s):/)?(.+)$|’,“http\\1:/\\2”,“www.stackoverflow.com”)