如何使用php获取url字符串的一部分
我正在使用一个文件管理系统来保护url。不允许操纵url字符串,这会导致页面被终止。 当我删除文件时,我想破例 删除文件时,url字符串始终如下所示:如何使用php获取url字符串的一部分,php,Php,我正在使用一个文件管理系统来保护url。不允许操纵url字符串,这会导致页面被终止。 当我删除文件时,我想破例 删除文件时,url字符串始终如下所示: example.com/sfm?delete=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b/folder1 或 或 因此,字符串的最小值始终包含: example.com/sfm?delete=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b (散列是用户I
example.com/sfm?delete=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b/folder1
或
或
因此,字符串的最小值始终包含:
example.com/sfm?delete=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b
(散列是用户ID的md5散列)
那么,我如何获取最小的url字符串呢?我只会使用。即使散列大小不同,如果您遵循相同的结构,我也会这样做:
$delete = explode("/", $_GET["delete"]);
print_r($delete);
输出至:
Array
(
[0] => uploads
[1] => sfm
[2] => c4ca4238a0b923820dcc509a6f75849b
[3] => folder1
)
$delete[2]
将给我哈希值。我想这将是最好的方式,即使URL发生了变化。我只会使用。即使散列大小不同,如果您遵循相同的结构,我也会这样做:
$delete = explode("/", $_GET["delete"]);
print_r($delete);
输出至:
Array
(
[0] => uploads
[1] => sfm
[2] => c4ca4238a0b923820dcc509a6f75849b
[3] => folder1
)
$delete[2]
将给我哈希值。我想这将是最好的方法,即使URL发生变化。使用内爆
,数组切片
,分解
Explode将把字符串提取到数组中,数组切片将数组剪切到第四个项目,而Inclode将把数组项目抓取到一个新字符串中
$str = 'example.com/sfm?delete=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b/folder1 ';
echo $output = implode('/', array_slice(explode("/", $str), 0, 4)); //example.com/sfm?delete=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b
使用
内爆
,阵列片
,分解
Explode将把字符串提取到数组中,数组切片将数组剪切到第四个项目,而Inclode将把数组项目抓取到一个新字符串中
$str = 'example.com/sfm?delete=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b/folder1 ';
echo $output = implode('/', array_slice(explode("/", $str), 0, 4)); //example.com/sfm?delete=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b
1.散列的大小总是一样的吗?2.
uploads/sfm/
是否总是出现?是的,哈希值始终具有相同的字符数,并且uploads/sfm始终位于字符串1中。散列的大小总是一样的吗?2.uploads/sfm/
总是出现吗?是的,散列总是有相同数量的字符,而且uploads/sfm总是在字符串中array\u slice
在这里做什么?array\u slice
获取数组的选定部分。这里的索引从0到4。您已经将分解限制为4
,对吗?我是说,我刚刚注意到了。实际上,您可以使用explode(“/”,$str,4)
将其限制为4
。可能是这样,但我是这样做的。稍后我会尝试。这里array\u slice
做什么?array\u slice
获取数组的选定部分。这里的索引从0到4。您已经将分解限制为4
,对吗?我是说,我刚刚注意到了。实际上,您可以使用explode(“/”,$str,4)
将其限制为4
。可能是这样,但我是这样做的。我以后再试试。