php如何在特定位置获取字符串

php如何在特定位置获取字符串,php,regex,Php,Regex,我有这根绳子 我想用这个词mycompanyname 有什么帮助吗 我试过这个: $indexName = preg_match("http://p+:p+/","http://myipaddress:myport/mycompanyname/morethings?lovelyparameter" ); 但我有一个错误: preg_match(): Delimiter must not be alphanumeric or backslash 如果您不想使用preg函数和url中的其他内容

我有这根绳子

我想用这个词
mycompanyname

有什么帮助吗

我试过这个:

$indexName = preg_match("http://p+:p+/","http://myipaddress:myport/mycompanyname/morethings?lovelyparameter" );
但我有一个错误:

preg_match(): Delimiter must not be alphanumeric or backslash

如果您不想使用preg函数和url中的其他内容,您可以使用。它看起来是这样的:

$a = 'http://myipaddress:8080/mycompanyname/morethings?lovelyparameter';
$b = parse_url($a);
print_r($b);
输出:

Array
(
    [scheme] => http
    [host] => myipaddress
    [port] => 8080
    [path] => /mycompanyname/morethings
    [query] => lovelyparameter
)
这样,只需使用以下内容:

$path = $b['path'];
$foo = explode('/', $path)[1];
echo $foo;
输出:

Array
(
    [scheme] => http
    [host] => myipaddress
    [port] => 8080
    [path] => /mycompanyname/morethings
    [query] => lovelyparameter
)
mycompanyname


旁注:

  • 此代码不会检查格式错误的url,因此您应该自己进行一些检查
  • 如果您使用端口号作为字符串测试url(正如您在问题中所做的那样),它将不起作用

可以在一行中完成:

$url = 'http://myipaddress:8080/mycompanyname/morethings?lovelyparameter';
echo explode('/', parse_url($url, PHP_URL_PATH))[1];
输出:

Array
(
    [scheme] => http
    [host] => myipaddress
    [port] => 8080
    [path] => /mycompanyname/morethings
    [query] => lovelyparameter
)
mycompanyname


您可以使用explode作为

$abc = 'http://myipaddress:myport/mycompanyname/morethings?lovelyparameter';

$a = explode('/', $abc);

echo '<pre>';
print_r($a[3]);
echo '</pre>';
$abc=http://myipaddress:myport/mycompanyname/morethings?lovelyparameter';
$a=爆炸(“/”,$abc);
回声';
印刷品($a[3]);
回声';

分解将字符串分成几个部分并返回一个字符串数组,这样您也可以为mycompanyname签入数组。

对于记录,您缺少适当的分隔符:


mycompanyname
是否紧跟在
:myport/
之后?这在某些字符串中是固定位置,例如第三个参数还是其他什么?您可以使用/作为分隔符来标记字符串。@noob它总是在端口后面,但后面还有其他标记,正如您在示例中看到的,后面有一个“morethings”,后面是mycompany@StevenScott是的,它是固定的,我的公司名称总是在港口后面。在某些方面可能会有所帮助…(请注意,您不能将它与string
myport
一起使用-我知道这只是一个示例,但它似乎必须是一个数字)