我希望从通过 html input=text 提供的输入中去除 base_url 并从 _POST 中提取。输入本身很可能包含完整的 uri,但也/很可能是一个端口分配,后跟几个路径分隔符。
示例:https: //lab1.sfo1.transparentpixel.com:554/rtmp/ _definst_
我需要最多 3 个结果实例化,这些值最终被放入一个数组中。
因此,为了在一个独立的脚本中进行测试,我最终得到了以下代码:
旧的历史回顾:
<?php
$var1 = "https://lab1.sfo1.transparentpixel.com:1935/rtsp/_definst_";
$var2 = "http://lab1.sfo1.transparentpixel.com:1935/rtmp/_definst_";
$var3 = "lab1.sfo1.transparentpixel.com";
$count = 1;
while ( $count <= 3 )
{
$test[] = 'var'.$count.' = ' . preg_replace(array("#^.*/([^\:]+)\:.*#"), '$1', ${var.$count});
$count++;
}
var_dump($test);
?>
编辑后更正:
<?php
$url1 = "https://lab1.sfo1.transparentpixel.com:1935/rtsp/_definst_";
$url2 = "http://lab1.sfo1.transparentpixel.com:1935/rtmp/_definst_";
$url3 = "lab1.sfo1.transparentpixel.com";
$count = 1;
while ( $count <= 3 )
{
$test[] = 'url'.$count.' = ' . preg_replace(array("#^.*/([^\:]+)\:.*#"), '$1', ${url.$count});
$count++;
}
print_r($test);
?>
我的结果:
$ php tpixel_url_replace.php
Array
(
[0] => url1 = lab1.sfo1.transparentpixel.com
[1] => url2 = lab1.sfo1.transparentpixel.com
[2] => url3 = lab1.sfo1.transparentpixel.com
)
虽然这按我的预期工作,但我肯定会错过一些迭代。有人愿意澄清我可能忽略的事情吗?是的,我知道我可以使用 str_replace,但是在整个方案中运行 preg_ over str_ 的成本是最小的。
我只是在寻找洞察力,因为我 100% 确定我不是任何关于 reg-ex 或 preg_replace 的大师。
输入?