0

假设您有两个网址。

http://testing.org/directory/index.php/arg1/arg2
Array ( [scheme] => http [host] => testing.org [path] => /directory/index.php/arg1/arg2 ) 

或者是这样的:

http://testing.org/index.php/arg1/arg2
Array ( [scheme] => http [host] => testing.org [path] => /index.php/arg1/arg2 ) 

我知道你可以用 parse_array() 分解 url。当我这样做时,路径就是“testing.org”之后的一切。在第一个示例中,数组中的路径变量 1 是“目录”,但在第二个示例中,路径变量 1 是“index.php”。

我想弄清楚做两件事的热度。首先删除 index.php 之后的所有内容,但我一直在摸索。另外,如何从第一个 url 中删除“/directory/”?

但我也想了解如何替换路径的一部分。

4

1 回答 1

1

您可以使用parse_url()和 正则表达式的组合来完成此操作。下面的正则表达式将删除index.phpURL 路径中的所有内容。

$parts = parse_url($url);
$scriptname = preg_replace('#(index\.php)/.*#', '$1', $parts['path']);
$result = $parts['scheme'].'://'. $parts['host'] . $scriptname;

对于给出问题的两个 URL,输出如下:

http://testing.org/directory/index.php
http://testing.org/index.php

演示。

于 2013-11-20T17:36:17.247 回答