如何拆分URL字符串?

3
代码:
<?php
    include('conn.php');
    $student_id = $_SESSION['student_id'];
    $college_name = $_GET['college_name'];
    $college_name22 = explode('(', $college_name);
    if(preg_match('#\((.*?)\)#', $college_name, $match))
    {
        $match[1] = lcfirst($match[1]);
    }
    else
    {
        $match[1] = 'All';
    }

如果url中包含类似于

的字符串
cstest/view.php?college_name=Agra%20Public%20Institute%20of%20Technology%20&%20Computer%20Education,%20Artoni%20(Pharmacy)

我想要拆分以下字符串,即:

Agra%20Public%20Institute%20of%20Technology%20&%20Computer%20Education,%20Artoni%20(Pharmacy)

当我输出$college_name时,它只显示(Agra Public Institute of Technology),而不是完整的名称,即(Agra Public Institute of Technology & Computer Education, Artoni),而$match[1]包含(药房),但在打印$match[1]时没有显示,而是显示'All'。那么,我该如何解决这个问题?
谢谢。

var_dump($_GET)看起来像什么?首先,它不会包含URL编码的字符串。如果您访问带有,(的URL,则您的浏览器会出现问题,它们也将被编码为%2C和%28。 - miken32
1个回答

2
& 在 URL 中有特殊含义。 $_GET['college_name'] 的值恰好是 "Agra%20Public%20Institute%20of%20Technology%20"。 & 标记着一个新参数的开始。
如果 & 符号被正确地转义为 %26,你将更容易操作数据。
你可以尝试插入 var_dump($_GET) 并查看实际工作数据的内容。

我正在使用 var_dump,例如 $college_name = var_dump($_GET['college_name']); 它会给出以下结果,如 string(36) "Agra Public Institute of Technology"。 - kevin
使用var_dump函数输出整个数组$_GET,查看其中还有什么内容。 - Octopus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接