使用 preg_replace() 进行动态替换
Get dynamic replacement with preg_replace()
这是我的 url:
ftp://dynamic_text:user_password@my-ftp-domain.com/so-on/param
我的正则表达式会把它变成这样:
ftp://*****:*****@my-ftp-domain.com/so-on/param
请注意,url 可以以 ftp
或 http
开头。
正则表达式:
无论我的 url 是否以 http
开头,我下面的正则表达式总是 return ftp
。
preg_replace('@(ftp|http)://(.*:.*)\@@', 'ftp://****:****@', $url);
现在我的问题是:如何修改我的代码,以便根据我的 url 的启动方式动态地 return ftp
或 http
。
我读到 Named Groups,但我无法解决它。
只需将替换中的 ftp
部分更改为 </code> 即可获得第一组的值,例如 </p>
<pre><code>preg_replace('@(ftp|http)://(.*:.*)\@@', '://****:****@', $url);
//^^
这是我的 url:
ftp://dynamic_text:user_password@my-ftp-domain.com/so-on/param
我的正则表达式会把它变成这样:
ftp://*****:*****@my-ftp-domain.com/so-on/param
请注意,url 可以以 ftp
或 http
开头。
正则表达式:
无论我的 url 是否以 http
开头,我下面的正则表达式总是 return ftp
。
preg_replace('@(ftp|http)://(.*:.*)\@@', 'ftp://****:****@', $url);
现在我的问题是:如何修改我的代码,以便根据我的 url 的启动方式动态地 return ftp
或 http
。
我读到 Named Groups,但我无法解决它。
只需将替换中的 ftp
部分更改为 </code> 即可获得第一组的值,例如 </p>
<pre><code>preg_replace('@(ftp|http)://(.*:.*)\@@', '://****:****@', $url);
//^^